−25%

Windows 年払い、10月31日まで。 プランを見る

EQVPS

VPS でセキュリティ更新を自動化する方法

Ubuntu/Debian では unattended-upgrades、Rocky/AlmaLinux では dnf-automatic を有効にしてセキュリティパッチを自動適用し、自動再起動をどうするか決めます。

侵入されるサーバーのほとんどは、巧妙な手口で落ちるわけではありません。既知で修正済みの欠陥を持つソフトウェアを動かしていて、誰も修正を入れていなかったのです。セキュリティ更新の自動化は、ログインを覚えておかなくてもその穴をふさいでくれます。新しいサーバーにかける 5 分として、最も効果の高いものの一つです。

Ubuntu と Debian:unattended-upgrades

Ubuntu のイメージには通常最初から入っていますが、Debian には入っていないことがあります。インストールして有効にします。

apt update
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades    # answer "Yes"

これで /etc/apt/apt.conf.d/20auto-upgrades が作られます。

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

2 つの 1 は、毎日パッケージリストを更新し、セキュリティ更新をインストールするという意味です。

再起動をどうするか決める

カーネルのパッチを有効にするには再起動が必要です。静かな時間帯に自動で再起動させるには、/etc/apt/apt.conf.d/50unattended-upgrades を編集して次のように設定します。

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

サーバーが再起動するのは、更新が本当に必要とするとき(/var/run/reboot-required が存在するとき)だけです。

テストする

unattended-upgrade --dry-run --debug

ログは /var/log/unattended-upgrades/ にあります。

Rocky Linux と AlmaLinux:dnf-automatic

dnf install -y dnf-automatic

/etc/dnf/automatic.conf を編集します。

[commands]
upgrade_type = security
apply_updates = yes

タイマーを有効にします。

systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

更新後に再起動が必要か確かめるには、dnf-utils をインストールして needs-restarting -r を実行します。

どの再起動ポリシーが合っているか

カバーされないもの

対象はシステムパッケージだけです。Docker イメージ、言語の依存関係(pip、npm)、手動でインストールしたバイナリは自動では更新されないので、別途スケジュールしてください。また、バージョン内の更新は自動ですが、新しいバージョンへの移行(Ubuntu 22.04 → 24.04)は意図して行う手作業のままです。

万一、不具合のある更新で起動しなくなっても、EQVPS パネルの Web コンソールから SSH なしで入れます。Managed Backups には変更前の復元ポイントもあります。

関連

よくある質問

更新を自動でインストールしても安全ですか?

セキュリティ更新なら安全です。unattended-upgrades が既定でインストールするのはそれで、小さく的を絞った修正です。既知の未修正の脆弱性を放置するリスクは、セキュリティパッチが何かを壊すリスクよりはるかに大きいです。

サーバーは自動で再起動すべきですか?

カーネルや基本ライブラリのパッチは、再起動して初めて有効になります。午前 4 時に 1 分止まっても構わないサービスなら、自動再起動を有効にしましょう。そうでなければ無効のままにし、/var/run/reboot-required が現れたら手動で再起動します。

更新が適用されたことはどう確認しますか?

Debian/Ubuntu では /var/log/unattended-upgrades/unattended-upgrades.log を、Rocky/Alma では 'journalctl -u dnf-automatic' を確認します。'unattended-upgrade --dry-run --debug' で試しに実行すると、今インストールされるものがわかります。

ディストリビューションが新しいメジャーバージョンに上がりますか?

上がりません。unattended-upgrades と dnf-automatic がインストールするのは、現在のバージョン内の更新だけです。たとえば Ubuntu 22.04 から 24.04 への移行は、常に手動の作業です。

Docker コンテナも更新されますか?

されません。対象はシステムパッケージだけです。コンテナイメージは、新しいバージョンを取得してコンテナを作り直すことで、自分のスケジュールで更新します。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。