qmail-scanner

構成
FreeBSD7.0R
2009/6のPorts

1.sendmailを止める。
/etc/rc.conf
+sendmail_enable=”NONE”

2.Portsのインストール
・tcpserver(sysutils/ucspi-tcp)
後々のためにSSLをONでインストール

・spamassassin(mail/p5-Mail-Spamassassin)
インストール後。
vi /etc/rc.conf
+spamd_enable=”YES”
/usr/local/etc/rc.d/sa-spamd start
次のQmail-scannerをmakeするときに起動していないと認識できないようです。

・qmail-scanner(mail/qmail-scanner)
qmailをインストールするときに、SMTP_AUTH、QMAILQUEUE、MAILDIRQUOTAにチェックを入れる

3.qmailの設定
・controlファイル
/var/qmail/control
作成
me
defaultdomain
locals
rcpthosts
・aliasファイル
/var/qmail/alias
適当にあて先指定
・起動ファイル
cp /var/qmail/boot/maildir /var/qmail/rc
・ローカル用sendmail入れ替え(ローカルでMailコマンドを打ったときに届くようにするため)
mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
・qmail-smtpdの起動ファイル
vi /etc/smtp.rule
+:allow
/usr/local/bin/tcprules /etc/smtp.cdb /etc/smtp.tmp <
/etc/smtp.rule
(ここにQMAILQUEUEを入れるという記述をよく見るがやってみた結果。起動時に組み込むと
動作しているので、tcpserver起動時に設定してある。もし条件付けでSPAM設定をONOFFしたいのであれば
smtp.ruleで入れるほうがいいのかもしれない。)
vi /usr/local/etc/rc.d/tcpserversmtp.sh
+#!/bin/sh
+QMAILQUEUE=”/usr/local/bin/qmail-scanner-queue.pl”
+export QMAILQUEUE
+/usr/local/bin/tcpserver -x /etc/smtp.cdb -u 98 -g 98 0 smtp
/var/qmail/bin/qmail-smtpd &
chmod 755 /usr/local/etc/rc.d/tcpserversmtp.sh
自分からスパムメールを送ることはないので外部からのみスパムチェックを行う。
実行ユーザーとグループが98なのは、qmail-scannerを実行するためqscandのユーザーとグループ。

・qmail-scannerの設定
cp /var/spool/qscand/quarantine-events.db.tmp
/var/spool/qscand/quarantine-events.db
cp /var/spool/qscand/quarantine-events.txt.sample
/var/spool/qscand/quarantine-events.txt
chown qscand /var/spool/qscand/*
コピーしなくてtxtの方だけを作成して/usr/local/bin/qmail-scanner-queue.pl
-gでdbの作成可能。
その場合もユーザ変更をしておくこと。
(他のweb等では、sudoなどで実行権限などを変更して実行しろと書かれてあるが出来上がったDBファイルの
所有者だけの問題と思われる。)

・spamassassinの設定
・/usr/local/etc/mail/spamassassinに設定ファイル集があります。
cp /usr/local/etc/mail/spamassassin/local.cf.sample
/usr/local/etc/mail/spamassassin/local.cf
設定の方法は、他のWEBに任せます。