今日、FreeBSDのメーリングリストにSecurity Advisory(SA:セキュリティ勧告)が流れていたので知ったのですが、ひさびさに(ってほどでもないかもしれないけど)sendmailにセキュリティホールが見つかったとのことです。
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:13.sendmail.asc
このセキュリティホールで、どんな危険性があるかというと・・・
III. Impact
A remote attacker may be able to execute arbitrary code with the privileges of the user running sendmail, typically root.
ということで、ネットワークの向こうにいる悪意のある人が、root権限で任意のプログラムを実行させることができてしまう、ってことなので、かなりヤバイですね。
うちも、SAのほかにウェブのニュース記事も見て、自宅のFreeBSDサーバでは応急処置として、sendmailを停止させました。
# /etc/rc.d/sendmail stop
帰宅後、さっそくcvsupして、最新ソースコードをダウンロードして、
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:13.sendmail.asc
に書いてある手順を参考にしながら、sendmailをアップデートしました。
# cvsup -g ほにゃらら-supfile
# cd /usr/src/lib/libsm
# make obj && make depend && make
# cd /usr/src/lib/libsmutil
# make obj && make depend && make
# cd /usr/src/usr.sbin/sendmail
# make obj && make depend && make && make install
結局、この作業で、どんなファイルが更新されるかというと、こんな感じです。
# make install
install -s -o root -g smmsp -m 2555 sendmail /usr/libexec/sendmail
install -o root -g wheel -m 444 mailq.1.gz /usr/share/man/man1
install -o root -g wheel -m 444 newaliases.1.gz /usr/share/man/man1
install -o root -g wheel -m 444 aliases.5.gz /usr/share/man/man5
install -o root -g wheel -m 444 sendmail.8.gz /usr/share/man/man8
/usr/share/man/man8/hoststat.8.gz -> /usr/share/man/man8/sendmail.8.gz
/usr/share/man/man8/purgestat.8.gz -> /usr/share/man/man8/sendmail.8.gz
で、最後に忘れずsendmailを再起動させる、と。
# /etc/rc.d/sendmail start
Starting sendmail.
なお、ソースをコンパイルするのではなくて、バイナリだけ更新する手段も、FreeBSDでは「一応」用意されています。portsにある
/usr/ports/security/freebsd-update
がそのためのツールです。
freebsd-updateを使うと、セキュリティホールが見つかった場合に、バイナリファイルだけアップデートできるので、WindowsUpdateとかLinux方面のパッケージ管理ツールのように、とっても気軽にアップデートが行えるみたいです。
でも実は、このfreebsd-updateを、私は使ったことがありません。このツールは、FreeBSD 5.4-RELEASEとか6.0-RELEASEなどの、リリースバージョンしかアップデートできないそうです。私は、リリースされてからしばらく経った、6-STABLEのようなスナップショットバージョンをインストールしているので、freebsd-updateを使うことができません。
まあ、STABLEを使うような人は、自己責任で、STABLEを追っかけ続けなさい、っていうことですかね。
なお、 portupgradeというツールがありますが、こちらは、portsとして提供されているソフトウェアの更新ができます(ソースからコンパイルするだけでなく、バイナリでのアップデートも可能)。今回セキュリティホールが見つかったsendmailは、portsのソフトではなく、最初からインストールされているソフトなので(base system)、portupgradeでアップデートすることはできません。
ただ、sendmailって、portsにも入ってるんですよね。そうか、baseのsendmailを使わずに、portsでインストールしちゃえばいいのかも?!
0 件のコメント:
コメントを投稿