2005/03/19(土)qmail-scannerインストール時に遭遇した問題

2005/03/18 25:00 PC(Linux)
qmail-scannerインストール時に遭遇した問題メモ

なんか色々あり過ぎて、整理し切れていない。引っかかったところを中心に覚えている限りでメモしておく。作業ログ流れで、通常インストール手順とかぶるところもあり、いい加減なところもあり。
[1]suidperlのパーミッション設定

qmail-scannerインストールに関する多くのドキュメントでは、suidperlのパーミッションを変更するように書いているが、debianの場合suidperlはperlへのシンボリックリンクに過ぎない。よってパーミッション設定は不要。弄ると多分perlが動かなくなる。

(×:動かなくなった悪例)
# chmod 4711 /usr/bin/suidperl
Perl CGIが全滅した。
# chmod 755 /usr/bin/suidperl
で書き戻し。
[2]qmail-scannerのインストールテストが成功しない問題

<qmail-scanner.plの設置等はすでに終わっているとして>

qmail-scannerのsrcフォルダから、
# contrib/test_installation.sh -doit
4通のテストメールのうち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 restart
psで確認しても存在していない。立ち上がっていないようである。

/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/clamav
clamavの実行ディレクトリグループのみをqscandに変えてパーミッションを775にしてやる。若干荒技になるが、でも777よりはましだろう。

再び再起動
# /etc/init.d/clamav-daemon restart
立ち上がった。
# contrib/test_installation.sh -doit
4通送信中、2と3(ウイルス入り)が配信されなくなった(1はノーマル、4はスパム。recipsオプションが無かったので配信されなくなった)。しかしこの状態では外部からの通常メールが配信されないことが発覚。以下次項に続く。
[3]qmail-scannerを使うと通常のメールが配信されない問題

(注:この問題は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に戻して運用中。
OK キャンセル 確認 その他