Linuxで自動セキュリティアップデートを設定する方法(unattended-upgrades)
Linuxサーバーのセキュリティを強化するため、unattended-upgradesとcronを使用した自動アップデートの設定方法を初心者向けに解説。
はじめに
Linuxサーバーを運用する上で、セキュリティアップデートの適用は必須です。手動で更新を行うと漏れが発生しやすく、脆弱性を放置するリスクがあります。本記事では、unattended-upgrades パッケージと cron を利用して、Linuxシステムの自動セキュリティアップデートを設定する方法を解説します。
unattended-upgrades とは?
unattended-upgrades は、Debian/Ubuntu系のLinuxディストリビューションで利用できるパッケージです。セキュリティアップデートを自動的にダウンロードし、インストールすることができます。設定ファイルを編集することで、更新の対象やタイミングを細かく制御できます。
事前準備
1. システムの更新
まずはシステムを最新の状態にしておきます。
sudo apt update
sudo apt upgrade -y
2. unattended-upgrades のインストール
sudo apt install unattended-upgrades -y
インストール後、自動更新が有効になっているか確認します。
sudo dpkg-reconfigure --priority=low unattended-upgrades
対話画面で「Yes」を選択します。
自動アップデートの設定
設定ファイルの編集
主要な設定ファイルは /etc/apt/apt.conf.d/50unattended-upgrades です。
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
#### アップデートの対象を指定
デフォルトではセキュリティアップデートのみが有効です。必要に応じて他のリポジトリ(例: updates)を追加できます。
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// 例: 通常のアップデートも自動適用したい場合
// "${distro_id}:${distro_codename}-updates";
};
#### 自動再起動の設定
カーネルアップデートなど、再起動が必要な場合の設定を行います。
// 自動再起動を有効にする
Unattended-Upgrade::Automatic-Reboot "true";
// 再起動を遅らせる時間(例: 02:00)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
#### メール通知の設定(オプション)
アップデートの結果をメールで受け取るには、mail コマンドが必要です。
sudo apt install mailutils -y
設定ファイルに以下を追加します。
Unattended-Upgrade::Mail "your-email@example.com";
Unattended-Upgrade::MailOnlyOnError "false";
自動更新のスケジュール設定
unattended-upgrades は apt のタイマーで定期的に実行されます。通常は /lib/systemd/system/apt-daily.timer と apt-daily-upgrade.timer が設定されています。
タイマーの状態を確認します。
sudo systemctl status apt-daily.timer
sudo systemctl status apt-daily-upgrade.timer
タイマーはデフォルトで有効ですが、タイミングを変更したい場合はオーバーライドします。
sudo systemctl edit apt-daily-upgrade.timer
以下のように記述すると、毎日午前3時に実行されます。
[Timer]
OnCalendar=*-*-* 3:00:00
保存後、タイマーを再読み込みします。
sudo systemctl daemon-reload
sudo systemctl restart apt-daily-upgrade.timer
cron を使った方法(代替)
systemd を使用しない環境では、cron で unattended-upgrades を定期的に実行できます。
sudo crontab -e
以下の行を追加します(毎日午前2時に実行)。
0 2 * * * /usr/bin/unattended-upgrades
動作確認
ドライランでテスト
実際にアップデートを適用せずに、どのパッケージが更新されるか確認できます。
sudo unattended-upgrades --dry-run --debug
ログの確認
アップデートのログは /var/log/unattended-upgrades/ に保存されます。
sudo cat /var/log/unattended-upgrades/unattended-upgrades.log
注意点
まとめ
unattended-upgrades を使用すれば、Linuxサーバーのセキュリティアップデートを自動化でき、管理の手間を減らせます。適切な設定と監視を行うことで、脆弱性のリスクを低減しましょう。
*この記事はArch Linux/btrfs/LUKs環境で実際に検証した内容を基にしています。セキュリティ設定は環境によって異なるため、本番環境への適用前に必ずテスト環境で検証してください。*