Qgrey - S25R + qgreylist パッチ
S25Rで判定して怪しい場合はgreylistingで再送要求を送るSPAMフィルタ。
負荷ほとんどなし、検出率90〜95%、判断を間違っても相手が再送すれば通す、という感じで一次フィルタには有効ぽい。
pbs4qと相性が悪かったのでpbs4qの一部機能を取り込むよう軽く変更した。
手順
wget -q http://www.jonatkins.com/qgreylist/qgreylist-0.3.tar.gz wget -q http://k2net.hakuba.jp/pub/qgrey-0.1-0.3.tar.gz tar xvzf qgreylist-0.3.tar.gz tar xvzf qgrey-0.1-0.3.tar.gz cd qgreylist patch <../qgrey-0.1-0.3/qgrey.patch vi greylist su cp ../qgrey-0.1-0.3/s25r /var/qmail cp greylist /var/qmail/bin mkdir /var/qmail/greylist chown qmaild /var/qmail/greylist vi /var/service/smtp/run svc -d /var/service/smtp svc -u /var/service/smtp (動作確認..)
runスクリプト
#!/bin/sh exec /usr/local/bin/tcpserver -x /var/service/smtp/rule.cdb -vDRhl0 -c 40 -u 513 -g 513 \ 0 smtp \ /var/qmail/bin/greylist \ /var/qmail/bin/qmail-smtpd 2>&1
diff
diff -Naur greylist.orig /var/qmail/bin/greylist --- greylist.orig Mon Feb 13 08:19:59 2006 +++ /var/qmail/bin/greylist Mon Feb 13 08:46:53 2006 @@ -29,7 +29,7 @@ use Sys::Syslog; - +Sys::Syslog::setlogsock('unix'); openlog "greylist", "pid", "mail"; @@ -398,6 +398,11 @@ { syslog "debug", "Local IP accepted" if $debugmsg; run_next_stage; +}elsif( -e "/var/pbs4q/ip/$ENV{TCPREMOTEIP}" ){ + $ENV{RELAYCLIENT}=""; + run_next_stage; +}else{ + # syslog "err","no RELAYCLIENT. TCPREMOTEIP=$ENV{TCPREMOTEIP}"; }