Qmail-ScannerとClam Antivirusのインストール
かねてからメールサーバレベルでのウイルス対策を依頼されているので、とりあえず自前サーバで実験してみることにした。ワクチンソフトはオープンソースのClam Antivirus(ClamAV)をチョイス。qmailからはQmail-Scannerを使ってClamAVのデーモンを呼び出すことにした。qmailでQmail-Scannerを使うためにはqmailqueue-patchなるパッチを当ててコンパイルする必要があるが、netqmail-1.05でインストールしているため既に当該パッチは当ててある。
Qmail-Scannerおよびそれに付随するものは、以下から入手。
/etc/clamav.confはとりあえずデーモンの実行ユーザのみ変更。具体的にはUser clamdをUser qscandに書き換えただけ。
clamdデーモンの起動とブート時の自動起動設定。
# /etc/rc.d/init.d/clamd start # chkconfig clamd on
とりあえず、ウイルスパターンのファイルを手動でアップデート。
# freshclam
有効化するためには、qmailおよびtcpserverを一旦落とす。全部落とす必要はないようだが、とりあえず。後で知ったが、tcpserverによってsmtpdが起動される前にQMAILQUEUEが適宜指定されればいいようだ。しかしながら、起動スクリプトに追記してもうまく動作しなかったので、今回は手動で以下のコマンドを実行した。
# QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" # export QMAILQUEUE
qmailとtcpserverを起動させれば万事オーケーのはずだったが、SMTPを使ってメールを送信しようとすると「qq temporary problem」なるエラーが発生。しばらく悩むが、これは単にsuidperlがないことに起因するものだと分かった。RedHat系ではperl-suidperlというパッケージで配布されている。
# yum install perl-suidperl
これで解決。トレンドマイクロのウェブサイトからテストウイルスを入手し、これを添付したメールを自分自身に送信してみたところ、ちゃんと通知メールが届いた。しかしながら、サブジェクトが文字化けしているので、/var/qmail/bin/qmail-scanner-queue.plのメール送信関連のサブルーチンに、nkfを仕込むことで解決。具体的には、サブルーチンemail_senderとemail_recipsの「open(SM, "|$qmailinject -h ……」部分を「open(SM, "|/usr/bin/nkf -j|$qmailinject -h ……」のように追記するだけ。
続きはまた後で。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Qmail-ScannerとClam Antivirusのインストール
このブログ記事に対するトラックバックURL: http://somin.heteml.jp/mt/mt-tb.cgi/4276
コメントする