★mail.nhki.net (for qmail + qmail-scanner + clamav) の設定 2006年11月記述
qmail-scannerがうまく動かないこともあって、いろいろ苦労した。ただ、以下の方法は私の独特の設定であるので正しいのかどうか不明だ。でも一応動いている。環境は FreeBSD4.11R+patch (2006年11月現在)
(1)perlのバージョン
portsで「suidperl」のオプションを付けてmake install
> perl -v
This is perl, v5.8.8 built for i386-freebsd-64int
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
(2)qmail-scanner-queue.pl について
chmod 4711 <===パーミッション
-rwsr-xr-x 1 root qscand 96459 3 13 17:01 qmail-scanner-queue.pl
なお、プログラムの中身の「パーミッション
0700」を「0770」に変えた方が良いと思う。
ファイルの中身は「vi」で 置換を行えば一発で変換する。
-----------例 何カ所かある--------------------
if (! -d "$scandir/tmp") {
mkdir("$scandir/tmp",0770) || &error_condition("cannot create $scandir/tmp - $
!");
}
---------------------------------------------
(3)パーミッション関係 qmailscan
/var/spool
drwxrwx--- 2 25 25 512 3 8 2003 clientmqueue
drwxrwxr-x 2 uucp dialer 512 3 20 06:27 lock
drwxr-xr-x 2 root daemon 512 10 9 2002 lpd
drwxr-xr-x 2 root daemon 512 8 10 2004 mqamavis
drwxr-xr-x 2 root daemon 512 10 9 2002 mqueue
drwx------ 2 root daemon 512 10 9 2002 opielocks
drwxr-xr-x 4 root daemon 512 8 17 2003 output
drwxrwxr-x 6 alias qscand 1024 3 20 03:15 qmailscan
drwxrwxr-x 7 uucp uucp 512 3 8 2003 uucp
drwxrwxrwx 2 uucp uucp 512 10 9 2002 uucppublic
/var/spool/qmailscan
drwxrwxr-x 5 alias qscand 512 8 11 2004 archive
-rw-r----- 1 root qscand 4123477 3 20 20:55 qmail-queue.log
-rw-r----- 1 root qscand 283119 3 20 00:00 qmail-queue.log.0.gz
-rw-r----- 1 root qscand 409998 3 19 00:00 qmail-queue.log.1.gz
-rw-r----- 1 root qscand 453184 3 18 00:00 qmail-queue.log.2.gz
-rw-r----- 1 root qscand 492683 3 17 00:00 qmail-queue.log.3.gz
-rw-r----- 1 root qscand 464807 3 16 00:00 qmail-queue.log.4.gz
-rw-r----- 1 root qscand 445740 3 15 00:00 qmail-queue.log.5.gz
-rw-r----- 1 alias qscand 149998 3 14 00:00 qmail-queue.log.6.gz
-rw-rw-r-- 1 alias qscand 45 3 20 03:15 qmail-scanner-queue-version.txt
drwxrwxrwxrwx 5 alias qscand 512 8 11 2004 quarantine
-rw-rw-r-- 1 root qscand 65536 3 13 17:08 quarantine-attachments.db
-rw-rw-r-- 1 alias qscand 4279 8 11 2004 quarantine-attachments.txt
-rw-r----- 1 root qscand 1129 3 20 18:08 quarantine.log
-rw-r----- 1 root qscand 250 3 20 00:00 quarantine.log.0.gz
-rw-r----- 1 root qscand 288 3 19 00:00 quarantine.log.1.gz
-rw-r----- 1 root qscand 692 3 18 00:00 quarantine.log.2.gz
-rw-r----- 1 root qscand 479 3 17 00:00 quarantine.log.3.gz
-rw-r----- 1 root qscand 415 3 16 00:00 quarantine.log.4.gz
-rw-r----- 1 root qscand 643 3 15 00:00 quarantine.log.5.gz
-rw-r----- 1 alias qscand 364 3 14 00:00 quarantine.log.6.gz
drwxrwxrwx 2 alias qscand 512 3 20 20:55 tmp
lrwxrwx--- 1 root qscand 31 3 13 16:42 viruses -> /var/spool/qmailscan/quarantine
lrwxrwx--- 1 root qscand 35 3 13 16:42 viruses.log -> /var/spool/qmailscan/quarantine.log
drwxrwxrwx 5 alias qscand 512 8 11 2004 working
*なお、quarantine 、working の中の tmp new cur なども心配なら
chmod 777 にしておいても良いだろう。
(4)renew.clamav-version.txtをcronで実行
qmail-scannerによるバージョン記述をちゃんと定期的に書き換える。1日1回程度でいいだろう。
------------中身-----------------------
/usr/local/bin/setuidgid alias /var/qmail/bin/qmail-scanner-queue.pl -z ;
chown alias /var/spool/qmailscan/qmail-scanner-queue-version.txt ;
chmod 664 /var/spool/qmailscan/qmail-scanner-queue-version.txt ;
------------------------------------
(5)/usr/local/etc/rc.d/qmail.sh
の中身
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
#exec env - PATH="/var/qmail/bin:$PATH" \
#qmail-start ./Mailbox splogger qmail&
#LANG=C
#export LANG
PATH=/usr/local/bin:/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
export PATH
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl
export QMAILQUEUE
/var/qmail/bin/qmail-start ./Mailbox splogger qmail &
#################################################
# add -HR and softlimit and pop5smtp
# pop5smtp についてはyahooで探してください。
# softlimit をインストールしておきましょう。
# なお、現在私のサーバーは使わないでも正常に動いています。
# もしもメモリーエラーが出るならば有効にしたり、メモリの大きさを変えること。
#exec /usr/local/bin/softlimit -m 20000000 \
/usr/local/bin/tcpserver -HR -u 81 -g 81 0 smtp /var/qmail/bin/pop5smtp \
/var/qmail/bin/qmail-smtpd > /var/log/tcpserver.log 2>&1 &
# add option -HR and pop5smtp
/usr/local/bin/tcpserver -HR 0 pop3 /var/qmail/bin/qmail-popup mail.nhki.net \
/bin/checkpassword /var/qmail/bin/pop5smtp /var/qmail/bin/qmail-pop3d Maildir &
echo "qmail start.";
(6)/etc/tcp.smtp の中身
##################################
:allow
127.0.0.1:allow,RELAYCLIENT=””
###################################
QMAILQUEUE=" /var/qmail/bin/qmail-scanner-queue.pl " を加える場合もあるようだが、
私の場合上記の設定でちゃんと動いている。
(7)aliasのグループについて
vipw を使って /etc/group の qscand のメンバーに alias (qmail のuser ID) を追加しておく。
Alaisの権限でプログラムを動かしても /var/spool/qmailscan 内の作業に支障が出ないため。
でも、実際は必要ないかも。
(8)その他 clamdscan の代わりに clamscan を使う。
ところで、私のサーバーでは
mv clamdscan clamdscan.bak
cp clamscan clamdscan
として実行させている。本来のclamdscanだとどうしてもエラーが出るからだ(原因不明)
この場合、スキャンに多少時間がかかるがエラーは出ない。マシンのスペックの問題?。よく分からない。