SSD Nodes Learn
ガイド Matt Connor著者 Matt Connor ・更新日 2026-07-24

Ubuntu 24.04でunattended-upgradesはデフォルトで有効?

Ubuntu 24.04 Serverではunattended-upgradesが同梱されていますが、20auto-upgradesの設定が必要です。Automatic-Rebootはfalseのままです。設定前にdry runを実行して、どのパッケージが更新されるか事前に確認する方法を解説します。

自動セキュリティアップデートを導入すべき理由

パッチが適用されていないサーバーは、インターネット上で最も容易な攻撃対象となります。小規模サーバーへの侵害の多くは高度な手法によるものではありません。所有者が更新を忘れた古いパッケージの既知の脆弱性が原因です。Ubuntuにはこの問題を解決するツールが付属しています。unattended-upgradesは、ログインすることなく、スケジュールに従ってセキュリティアップデートを自動的にインストールします。これはVPSにおいて最も低コストで効果的なセキュリティ対策であり、Ubuntuでは数分の設定で完了します。

このツールは意図的に保守的な設計になっています。デフォルトでは、すべてのパッケージのアップグレードではなく、セキュリティアップデートのみを適用します。セキュリティパッチはリスクが低いため、確認なしで適用する価値がありますが、機能のアップグレードは依存している動作を変更する可能性があるためです。このデフォルト設定はほとんどのサーバーにとって適切であり、本ガイドでは、変更すべき数少ない設定のみを紹介しながら、この設定を維持する方法を説明します。

Step 1: インストールと有効化

Ubuntu 24.04では、パッケージはインストールされていても、有効になっていない場合があります。以下の手順でインストールと有効化を行ってください。

sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

dpkg-reconfigure のプロンプトでは、安定版アップデートを自動的にダウンロードしてインストールするかどうか、Yes/Noの質問が表示されます。Yesを選択してください。これにより、デイリージョブを有効にするファイルが書き込まれます。

cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

1行目はパッケージリストを毎日更新します。2行目は unattended-upgrade を毎日実行します。両方が 1 に設定されている場合、システムは systemd timer を使用して、ユーザーの操作なしに毎日セキュリティアップデートの確認と適用を行います。

Step 2: 自動適用する範囲の決定

ポリシーは /etc/apt/apt.conf.d/50unattended-upgrades に記述されています。ファイルを開き、上部にある Allowed-Origins ブロックを確認してください。

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-apps-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

重要なのは -security の行であり、これらはデフォルトで有効になっています。これが保守的なポリシーです。セキュリティアップデートは自動で行い、通常の機能アップデートは、ユーザーが任意のタイミングで手動で適用します。すべてのアップデートを自動適用するには "${distro_id}:${distro_codename}-updates" の origin 行を追加できますが、重要なサービスをホストするサーバーでは、セキュリティパッチのみを自動適用する方が安全なデフォルト設定です。特別な理由がない限り、初期設定のままにしておいてください。

Step 3: 再起動の処理

カーネルやコアライブラリなど、一部のアップデートは再起動後にのみ完全に適用されます。unattended-upgrades は、指示がない限りサーバーを再起動しません。そのため、パッチ適用済みのカーネルが、再起動が行われるまで使用されないまま残る可能性があります。再起動の扱い方を決定し、50unattended-upgrades で明示的に設定してください。

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

この設定は、アップデートが必要な場合に限り、午前4時にサーバーを再起動します。フェイルオーバー先のクラスターがない単一のVPSでは、カーネルの修正を最新に保つために、早朝に短時間の再起動を行うのが通常は適切な選択です。予期せぬ再起動を絶対に避けたいサービスを運用している場合は、再起動をオフにし、/var/run/reboot-required を確認した後に手動で再起動することを習慣にしてください。

Step 4: 動作確認

ジョブが実行されているか確認するために、1日待つ必要はありません。何も変更せずに、実際に何が適用されるかを表示する dry run を実行してください。

sudo unattended-upgrade --dry-run --debug

出力には、対象となるパッケージと、それらがどの origin から来ているかがリストされます。これにより、ポリシーが正しく機能しているか確認できます。実際のジョブが少なくとも一度実行された後は、以下の場所に記録が残ります。

cat /var/log/unattended-upgrades/unattended-upgrades.log

このログは「サーバーが実際に自動パッチを適用しているか」に対する答えとなります。スケジュールに従ってセキュリティパッケージがインストールされていることが示されていれば、ジョブは正常に動作しています。

全体像における位置付け

自動アップデートは、サーバーの要塞化(hardening)における一つのレイヤーであり、それだけで全てが解決するわけではありません。自動アップデートは既知の脆弱性が放置されるのを防ぎますが、ログインできるユーザーや公開範囲を制御するものではありません。ブルートフォース攻撃を防ぐための SSH hardening、必要なものだけを許可するデフォルト拒否の UFW firewall、およびアプリが乗っ取られてもシステム全体を制御されないようにするための unprivileged service users と組み合わせて使用してください。パッチ適用は既知の穴を塞ぎ、他のレイヤーは未知の穴による被害を限定します。

FAQ

unattended-upgrades はすべてのアップデートを適用しますか、それともセキュリティアップデートのみですか?

デフォルトでは、セキュリティアップデートのみです。/etc/apt/apt.conf.d/50unattended-upgrades 内の Allowed-Origins ブロックが -security の origin を有効にし、通常の機能アップデートは手動での適用に任せるようになっています。これは意図的な設計です。セキュリティパッチはリスクが低いため自動適用する価値がありますが、機能アップグレードは動作を変更する可能性があるため、ほとんどのサーバーでは保守的なデフォルト設定を維持すべきです。

自動アップデートによってサーバーは再起動しますか?

指示した場合のみ再起動します。設定ファイルで Unattended-Upgrade::Automatic-Reboot "true"Automatic-Reboot-Time を設定すると、カーネルパッチなどのアップデートが必要な場合に、その時刻にサーバーが再起動します。設定をオフにしている場合、パッチ適用済みのカーネルは、ユーザーが手動で再起動するまで待機状態となります。再起動が必要な状態かどうかは /var/run/reboot-required で確認できます。

自動アップデートが実際に動作しているか確認する方法は?

sudo unattended-upgrade --dry-run --debug を実行すると、何も変更せずに現在適用される予定のパッケージを確認できます。過去の実行記録は /var/log/unattended-upgrades/unattended-upgrades.log で確認してください。また、すべての自動インストールは /var/log/apt/history.log にも記録されます。ログにセキュリティパッケージが毎日のスケジュールでインストールされていることが示されていれば、タイマーは正常に動作しています。dry run の結果が No packages found that can be upgraded unattended と表示される場合は、すべてが最新であるか、許可された origin がセキュリティリポジトリと一致しないほど限定的すぎる可能性があります。

unattended-upgrades だけでサーバーのセキュリティを維持できますか?

いいえ、しかし不可欠なレイヤーです。既知の脆弱性が放置されるのを防ぎ、最も一般的な種類の侵害を阻止しますが、アクセス権限や公開範囲を制御するものではありません。真に侵入困難なサーバーにするには、SSH hardening、デフォルト拒否のファイアウォール、および最小権限のサービスユーザーと組み合わせて使用してください。

#unattended-upgrades#ubuntu-24-04#security#updates#hardening