Linuxサーバー管理

定期的なセキュリティアップデートを自動化する【unattended-upgrades/dnf-automatic】

Linuxサーバー管理
記事内に広告が含まれています。

セキュリティパッチの適用遅れは重大な脆弱性につながります。この記事ではUbuntu/Debianのunattended-upgradesとRHEL/CentOSのdnf-automaticを使った自動アップデートの設定を詳しく解説します。

Ubuntu/Debian:unattended-upgrades

# インストール
$ sudo apt install unattended-upgrades

# 設定ウィザードで有効化
$ sudo dpkg-reconfigure --priority=low unattended-upgrades

/etc/apt/apt.conf.d/50unattended-upgrades を編集して詳細設定を行います。

# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";   // セキュリティ更新のみ(推奨)
//  "${distro_id}:${distro_codename}-updates";    // 一般更新(コメント外すと有効)
};

// 不要な依存パッケージを自動削除
Unattended-Upgrade::Remove-Unused-Dependencies "true";

// パッケージ削除は慎重に(必要なパッケージを削除しないよう)
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// カーネル更新後の自動再起動(本番は false が安全)
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

// メール通知(設定している場合)
// Unattended-Upgrade::Mail "admin@example.com";
# /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";      // 毎日リスト更新
APT::Periodic::Unattended-Upgrade "1";        // 毎日自動適用
APT::Periodic::AutocleanInterval "7";         // 7日ごとにキャッシュ削除

# ドライラン(実際には適用しない・設定の確認)
$ sudo unattended-upgrades --dry-run --debug

# 手動で強制実行
$ sudo unattended-upgrades -v

# 実行ログを確認
$ sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log

# 再起動が必要なパッケージがあるか確認
$ cat /var/run/reboot-required 2>/dev/null && echo "再起動が必要です"

RHEL/CentOS:dnf-automatic

# インストール
$ sudo dnf install dnf-automatic

# /etc/dnf/automatic.conf を編集
[commands]
upgrade_type = security    # security のみ(推奨)/ default で全更新
apply_updates = yes        # 自動適用
emit_via = motd            # /etc/motd にログを記録

[email]
# email_to = admin@example.com    # メール通知(設定している場合)

# 有効化・起動(timerとして動作)
$ sudo systemctl enable --now dnf-automatic.timer

# タイマーの状態・次回実行時刻を確認
$ systemctl status dnf-automatic.timer
$ systemctl list-timers dnf-automatic.timer

# 手動テスト(実際には適用しない)
$ sudo dnf-automatic --no-install

本番環境での推奨方針

更新種類方針理由
セキュリティ更新自動適用OK脆弱性対応は迅速に行うべき
一般更新手動確認推奨アプリの動作に影響する可能性あり
カーネル更新再起動を計画的にメンテナンス時間を設けて実施

セキュリティ更新の確認方法

# 適用可能なセキュリティ更新を一覧表示(Ubuntu/Debian)
$ apt list --upgradable 2>/dev/null | grep -i security

# 更新の詳細を確認(RHEL/CentOS)
$ sudo dnf check-update --security

# パッケージのCVE情報を確認(RHEL/CentOS)
$ sudo dnf updateinfo list security

まとめ

  • Ubuntu/Debianは unattended-upgrades、RHEL/CentOSは dnf-automatic で自動化
  • セキュリティ更新のみ自動適用し、一般更新は手動確認が安全
  • --dry-run / --no-install で動作確認してから本番適用する
  • Automatic-Reboot = false にしてカーネル更新後の再起動は計画的に行う
  • /var/run/reboot-required で再起動が必要かどうかを確認できる

コメント

タイトルとURLをコピーしました