2005/03/19(土)qmail-scannerインストール時に遭遇した問題
2005/03/18 25:00
なんか色々あり過ぎて、整理し切れていない。引っかかったところを中心に覚えている限りでメモしておく。作業ログ流れで、通常インストール手順とかぶるところもあり、いい加減なところもあり。
qmail-scannerインストールに関する多くのドキュメントでは、suidperlのパーミッションを変更するように書いているが、debianの場合suidperlはperlへのシンボリックリンクに過ぎない。よってパーミッション設定は不要。弄ると多分perlが動かなくなる。
(×:動かなくなった悪例)
# chmod 4711 /usr/bin/suidperlPerl CGIが全滅した。
# chmod 755 /usr/bin/suidperlで書き戻し。
<qmail-scanner.plの設置等はすでに終わっているとして>
qmail-scannerのsrcフォルダから、
# contrib/test_installation.sh -doit4通のテストメールのうち1通目(通常メール)だけは送られてくるが、2通目でエラーを出して止まってしまう。エラーは以下の通り。
Sending eicar test virus - should be caught by perlscanner module... qmail-inject: fatal: qq temporary problem (#4.3.0) Bad error. qmail-inject diedチェックすべきログは、/var/spool/qmailscan/qmail-queue.logと/var/log/mail.err。
原因としてはclamavが動いていないか、メールデータにアクセス失敗している可能性が高い。
/var/spool/qmailscan/qmail-queue.logを覗くと、
/var/spool/qmailscan/tmp/debian111060900649323497: Access denied. ERRORがたくさん出ている。アクセス権問題であるので、
/etc/clamav/clamd.conf
User clamavを
User qscandに変更。
clamavを再起動しようとすると、
# /etc/init.d/clamav-daemon restartpsで確認しても存在していない。立ち上がっていないようである。
/var/log/clamav/clamav.logを見ると、
Sat Mar 12 18:05:27 2005 -> ERROR: Socket file /var/run/clamav/clamd.ctl could n ot be bound: Permission denied今度はclamavの一時ファイルにアクセスできなくなってしまったようだ。これはパーミッションを弄ってやれば良い。
# chgrp qscand /var/run/clamav # chmod 775 /var/run/clamavclamavの実行ディレクトリグループのみをqscandに変えてパーミッションを775にしてやる。若干荒技になるが、でも777よりはましだろう。
再び再起動
# /etc/init.d/clamav-daemon restart立ち上がった。
# contrib/test_installation.sh -doit4通送信中、2と3(ウイルス入り)が配信されなくなった(1はノーマル、4はスパム。recipsオプションが無かったので配信されなくなった)。しかしこの状態では外部からの通常メールが配信されないことが発覚。以下次項に続く。
(注:この問題はswap再設定によって再現性が無くなった可能性があります)
qmail-scannerインストールの過程で、テスト時に躓いた問題。結論はメモリ問題だが、エラーメッセージが特殊なのでメモ。
<qmail-scanner.plの設置等はすでに終わっているとして>
外部からウイルスなどが含まれない通常のメールを送っても配信されない。QMAILQUEUEの設定を切り替えて、qmail-scanner.plを介さずqmail-queueに渡すように設定する。
QMAILQUEUE="/var/qmail/bin/qmail-queue" export QMAILQUEUEと、きちんと動く(QMAILQUEUEを使っている以外は基本のqmailの挙動と同じ、もちろんウイルスはそのまま)ので、QMAILQUEUEがいけないわけではないらしい。うーん、qmail-scanner-queue.plのどっかで躓いている。
/var/log/mail.errを見ると、
Mar 14 01:38:51 debian X-Qmail-Scanner-1.25: [debian11107319314933436] cannot open /var/spool/qmailscan/quarantine-attachments.db - No such file or directoryもちろん、ファイルは存在している。最初はパーミッション問題かと思ったが、実はメモリ確保が不足している問題。つまずいたところでたまたま出たエラーがNo such~ということのようだ。下記サイトなどを眺めていてやっと分かった。
http://slashdot.jp/journal.pl?op=display&uid=779&id=150799
http://sourceforge.net/mailarchive/message.php?msg_id=6806272
http://qmail-scanner.sourceforge.net/FAQ.php
メモリ確保にはqmailの起動スクリプトのulimit値を上げてやる。
/etc/init.d/qmail
53c53 < ulimit -v 8192 --- > ulimit -v 10240いくつが最適値なのかはちょっと分からない。
#swapが原因だったのか再現性が無くなったようなので、現在ulimitを8192に戻して運用中。