2008年5月13日火曜日

メールサーバはqmailを使用。
spamは、antibadmailと、bsfilterで除去で実施。
bsfilterは誤検知しても後で確認出来るように、サーバ側で処理をして、spam用のmaildirに配信とする。

参考:下記サイトのqmailと連動の部分。
http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD/mail/bsfilter-j.html

外部からのメール送信が必要な場合には、smtp_authを使用する。
メーラはimapを使用してメールをチェック。

cd /usr/ports/qmail
make install
# この時に、smtp_authを有効にする。
/var/qmail/scripts/enable-qmail
これで、/etc/mail/mailer.confが変更されると同時に、/etc/rc.dにsendmail_enable="NONE"が設定される。

cd /usr/ports/mail/courier-imap/
make install clean
この時に、userdbを有効にする為、AUTH_USERDBを有効にする。

cram-md5に対応するパスワードを設定する。
userdb set home= mail= uid= gid=
userdbpw -hmac-md5 | userdb set hmac-md5pw
makeuserdb


tar xvf antibadmail-1.38
make
インストール先は、/var/antibadmailとする。antibadmailは相対パスでqmailのコンフィグを見に行く為、/var/qmail配下にあるqmail設定ファイルの、control/localsやusers/assignのチェックをしてくれない。
symlinkを貼って対処。
cd /var/antibadmail
ln -s /var/qmail/users .
cd /var/antibadmail/control
ln -s /var/qmail/control/locals

antibadmailをtcp-envで使用するには、少々プログラムの改善が必要そう。
元々tcpserverで使用する予定でしたが、tcpserverでは同一IPからの接続回数を制限出来ないので、inetd経由で起動することにする。
/etc/hosts.allowに以下を追加
tcp-env: XXX.XXX.XXX., 127.0.0.1 : setenv = RELAYCLIENT
tcp-env: ALL : setenv = REJECTNODOTHELO

antibadmailのログを出力する為、/etc/syslog.confに以下のエントリーを追加
local1.info /var/log/antibadmail.log

/etc/inetd.confに以下の行を追加
smtp stream tcp nowait/10/2 qmaild /var/qmail/bin/tcp-env tcp-env -R /var/antibadmail/bin/antibadmail /usr/local/sbin/courierpasswd /bin/true

0 件のコメント: