– unattended-upgrades や cron を使ったセキュリティ更新設定、ログの見方・通知設定まで
Linuxサーバーを運用する上で、セキュリティアップデートの適用漏れは大きなリスクです。特に公開サーバーでは脆弱性を突かれる可能性があり、定期的なパッケージ更新は必須です。
本記事では、Ubuntu/Debian 系でよく使われる unattended-upgrades を利用した自動更新設定や、cron を使った定期実行、さらにログ確認や通知設定までを解説します。
1. 自動アップデートの基本方針
- OSやライブラリは日々脆弱性が報告されるため、自動でセキュリティパッチを適用する仕組みを導入すると安心。
- ただし、サービス影響を考慮し、
- セキュリティ更新のみ自動適用
- 重要度が低い更新は手動確認
の運用が現実的です。
2. unattended-upgrades のインストールと設定
インストール
Ubuntu / Debian 系で以下を実行します。
sudo apt update
sudo apt install unattended-upgrades apt-listchanges
有効化
自動更新を有効化します。
sudo dpkg-reconfigure --priority=low unattended-upgrades
→ 「自動でセキュリティアップデートを行いますか?」で Yes を選択。
設定ファイル
設定は以下にあります。
/etc/apt/apt.conf.d/50unattended-upgrades
例: セキュリティアップデートのみ有効化
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
自動削除や再起動の設定も可能です。
// 不要な依存関係の削除
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// 再起動が必要な場合は自動で再起動
Unattended-Upgrade::Automatic-Reboot "true";
3. 自動実行のスケジュール (cron / systemd)
自動更新は apt-daily
や apt-daily-upgrade
タイマーで実行されます。
確認:
systemctl list-timers *apt*
もし自分で cron を使いたい場合は、例として以下を追加可能です。
sudo crontab -e
0 3 * * * /usr/bin/unattended-upgrade
→ 毎日 3:00 に実行。
4. ログの確認方法
実行結果はログで確認できます。
cat /var/log/unattended-upgrades/unattended-upgrades.log
成功・失敗の記録が残るため、定期的に確認すると安心です。
5. 通知設定(メール・Slackなど)
メール通知
/etc/apt/apt.conf.d/50unattended-upgrades
に以下を追加。
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailOnlyOnError "true";
Slack通知 (例: webhook 利用)
シェルスクリプトで Slack に送信する方法も有効です。
/etc/apt/apt.conf.d/50unattended-upgrades
にフックを仕込み、ログの最後を通知するようにします。
例: /usr/local/bin/notify-upgrade.sh
#!/bin/bash
LOG=/var/log/unattended-upgrades/unattended-upgrades.log
MESSAGE=$(tail -n 20 $LOG)
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"[Security Update Report]\n$MESSAGE\"}" \
https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ
→ 実行権限を付与し、cronや hook から呼び出すとSlackに通知できます。
6. 運用のポイント
- 適用ログを週1で確認(自動適用が成功しているかチェック)
- 大規模アップデート(カーネル更新など)は事前検証後に手動実施
- 通知を入れて「失敗に気付ける仕組み」が重要
まとめ
本記事では、Linuxサーバーでの 自動セキュリティアップデートの仕組み と、ログ・通知による運用管理方法 を解説しました。
- unattended-upgrades を導入すれば、自動でセキュリティ更新が可能
- ログや通知を組み合わせることで「更新漏れゼロ運用」が実現
- 運用ルールを決めて、安心してサーバーを稼働させられる
セキュリティは「設定して終わり」ではなく、仕組みを運用して初めて意味があるので、ぜひ導入してみてください。