必要ですか?
もちろん、あなたやあなたの隣人以外は誰も使用しない「サーバー」が1つしかない場合、更新の追跡は非常に簡単です。 数十から数百のサーバーになると、それらを最新の状態に保つ問題が明らかになります。
Debian / Ubuntuパッチのアップデートはほぼ毎日公開されています。 これらすべてを追跡することは非常に困難です。 ここで、以下で説明するプログラムが役立つ場合があります。
アプティクロン
apticronは、利用可能な更新に関する情報を毎日メールで送信する単純なスクリプトです。 操作に必要なのは、設定ファイル/etc/apticron/apticron.confで電子メールを指定することだけです。
EMAIL="mail@example.com"
apticronからの手紙は非常に有益であり、次のようになります。
apticron report [Thu, 06 Aug 2009 16:15:24 +0300]
========================================================================
apticron has detected that some packages need upgrading on:
example.com
[ 127.0.1.1 192.168.0.1 ]
The following packages are currently pending an upgrade:
acpid 1.0.4-5etch1
apache2-utils 2.2.3-4+etch10
========================================================================
Package Details:
Reading changelogs...
--- Changes for acpid ---
acpid (1.0.4-5etch1) oldstable-security; urgency=high
* Added upstream's patch to fix CVE-2009-0798
-- Michael Meskes <meskes@debian.org> Wed, 29 Apr 2009 12:26:56 +0200
--- Changes for apache2 (apache2-utils) ---
apache2 (2.2.3-4+etch10) oldstable-security; urgency=low
* Fix regression: A segfault could happen in mod_deflate in conjunction with
mod_php when a client aborts the connection.
-- Stefan Fritsch <sf@debian.org> Wed, 29 Jul 2009 11:39:06 +0200
========================================================================
You can perform the upgrade by issuing the command:
aptitude dist-upgrade
as root on example.com
It is recommended that you simulate the upgrade first to confirm that
the actions that would be taken are reasonable. The upgrade may be
simulated by issuing the command:
aptitude -s -y dist-upgrade
-- apticron
この手紙から、acpidとapache2-utilsを更新する必要があることは明らかです。 さらに、レターには変更の説明が含まれています。 これは、他のソース(debian-security-announceメーリングリストなど)からこの情報を受け取らない場合に非常に便利です。
cron-apt
cron-aptは、利用可能な更新プログラムに関する情報に加えて、それらをダウンロードしてインストールできる、より高度なユーティリティです。 デフォルトでは、cron-aptはアップデートのみをダウンロードし、インストールはしません。 手紙を受け取るには、/ etc / cron-apt / configファイルで電子メールを指定し、どの条件で手紙を送るかを言う必要があります。
MAILTO="mail@example.com"
MAILON="always"
cron-aptからのメールの例を次に示します。
CRON-APT RUN [/etc/cron-apt/config]: Wed Jul 29 04:00:01 EEST 2009
CRON-APT SLEEP: 1172, Wed Jul 29 04:19:33 EEST 2009
CRON-APT ACTION: 0-update
CRON-APT LINE: /usr/bin/apt-get update -o quiet=2
CRON-APT ACTION: 3-download
CRON-APT LINE: /usr/bin/apt-get autoclean -y
Reading package lists...
Building dependency tree...
Reading state information...
CRON-APT LINE: /usr/bin/apt-get dist-upgrade -d -y -o APT::Get::Show-Upgraded=true
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
dbus dbus-x11 dhcp3-client dhcp3-common libdbus-1-3
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/957kB of archives.
After this operation, 8192B disk space will be freed.
Download complete and in download only mode
cron-aptがダウンロードされたが、インストールされなかった(!)dbusとdhcpの更新が見られます。
無人アップグレード
unattended-upgradeは、aptと連携するためにCanonicalが開発したオプションのスクリプトです。 前述の2つのユーティリティとは異なり、無人アップグレードでは更新プログラムのみをインストールできます。 自動システム更新を有効にするには、まず設定ファイル/etc/apt/apt.conf.d/50unattended-upgradesで正確に更新するものを指定する必要があります。
// allowed (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
"Debian stable Debian-Security";
};
// never update the packages in this list
Unattended-Upgrade::Package-Blacklist {
// "vim";
};
さらに、無人アップグレード::パッケージブラックリストセクションで、更新できないパッケージのリストを指定できます。 この例では、vimがコメント化されています。
その後、無人アップグレードを使用することをaptに伝える必要があります。 これを行うには、ファイル/etc/apt/apt.conf.d/10periodicを作成し、そこに次の行を追加します。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Unattended-Upgrade "1";
その結果、パッケージのリストの毎日の更新、利用可能な更新のダウンロード、インストール済みパッケージのキャッシュからのdebファイルの削除、そして最も重要なのはパッケージの自動インストールを取得します。
無人アップグレードには1つの小さな欠点があります-ユーティリティは、実際に何をしたか(ログファイルを除く)を誰にも通知しません。 彼女が更新したものを見つけるために、ユーティリティlogrotateを利用できます-ログファイルをメールに送信します。 これを行うには、/ etc / logrotate.d / unattended-upgradesファイルに次の行を書き込みます。
/var/log/unattended-upgrades/unattended-upgrades.log {
rotate 7
daily
mailfirst
mail mail@example.com
compress
missingok
notifempty
}
その結果、更新に関する情報を含むログファイルの電子メールコピーを受信します。
2009-08-01 17:50:57,596 INFO Initial blacklisted packages:
2009-08-01 17:50:57,596 INFO Starting unattended upgrades script
2009-08-01 17:50:57,596 INFO Allowed origins are: ["['Debian', 'stable', 'Debian-Security']"]
2009-08-01 17:51:08,294 INFO Packages that are upgraded: libbind9-40 libisc45 libisccfg40 dnsutils libtiff4 liblwres40 bind9-host libisccc40 libdns45
2009-08-01 17:51:08,294 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg_2009-08-01_17:51:08.294492.log'
2009-08-01 17:51:11,169 INFO All upgrades installed
ログからわかるように、詳細(dpkg出力)は別のファイルに書き込まれます:unattended-upgrades-dpkg_2009-08-09_17:51:08.294492.log。
おわりに
上記のユーティリティを使用すると、システム内の更新の可用性について管理者に知らせることができます。 さらに、cron-aptおよび無人アップグレードでは、自動更新をインストールすることもできます。 ただし、すべてに単一の選択肢はありません。 管理者のみが、このサーバーまたはそのサーバーを自動的に更新できるかどうかを決定する必要があります。
PS私自身のために、cron-aptを選択しました。