ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
SpamAssassin
を導入したにも係わらず最近、SPAMメールの数がひどい。
どうもSPAMメールの量がspamdのSPAMメールの学習に追いつかないらしい…。
とうことで新たな対処法を考えてみました。
今回はqmail+greylistというもの。簡単にいうと、接続してきたSMTPコネクションを一度切断し、再接続してきたSMTPコネクションについては接続を許可する、というもの。
SPAMメールの大半はメール送信効率を上げるために一度切れたら再接続してこないそうです。
ただしメールの遅延が発生します。遅延時間は接続元の再接続時間によります。通常5分縲鰀1時間程度遅延します
設定方法
greylistのダウンロード
qgreylist - simple greylisting for qmailよりダウンロードします。
パッチの適用とインストール
S25Rという接続元のFQDNパターンから接続を拒否する方式と、greylistingという再送要求を出す方式を組み合わせた、Rgreyという方式のqmail版にするためのパッチをダウンロードします。
# tar zxvf qgreylist-0.3.tar.gz
# tar zxvf qgrey-0.1-0.3.tar.gz
# cp qgrey-0.1-0.3/qgrey.patch qgreylist
# cd qgreylist
# patch < qgrey.patch
# cp greylist /var/qmail/bin/
# cd ../qgrey-0.1-0.3
# cp s25r /var/qmail/
# chown qmaild:qmail /var/qmail/bin/greylist
# chmod 775 /var/qmail/bin/greylist
# chown qmaild:qmail /var/qmail/s25r
# chmod 664 /var/qmail/s25r
# mkdir /var/qmail/greylist
# mkdir /var/qmail/whitelist
こんな感じで。
/etc/init.d/qmailの編集
qmailのスタートアップスクリプトに登録します。
以下太字の部分を追加します。
case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
tcpserver -v -R -H -l0 -c100 -u 502 -g 501 -x /etc/tcpserver/tcp.smtp.cdb \
0 smtp /var/qmail/bin/greylist /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
tcpserver -v -H -R -l0 -c10 0 pop3 \
/var/qmail/bin/qmail-popup www.kamata-net.com \
/bin/checkpassword /usr/sbin/relay-ctrl-allow \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /var/qmail/bin/splogger pop3d 3 &
echo
touch /var/run/qmail
;;
/var/log/maillogに以下のようなログが出るようになればOKです。
Jan 1 22:29:04 kamatamail1_in greylist[7525]: SMTP: RCPT: 450 Rcpt to
Jan 1 22:29:05 kamatamail1_in greylist[7525]: SMTP: connection closed
Jan 1 22:29:05 kamatamail1_in greylist[7529]: SMTP: RCPT: 450 Rcpt to
Jan 1 22:29:12 kamatamail1_in greylist[7531]: SMTP: RCPT: 450 Rcpt to
Jan 1 22:29:13 kamatamail1_in greylist[7531]: SMTP: connection closed
Jan 1 22:29:14 kamatamail1_in greylist[7532]: IP 82.208.84.253 back too soon - temp error again
Jan 1 22:29:16 kamatamail1_in greylist[7532]: SMTP: EHLO: 250 hello
メンテナンス
/var/qmail/whitelist配下にすぐに受け入れたいIPアドレスを並べることでSMTPコネクションの切断が発生しないのでメール配送の遅延が発生しません。
# pwd
/var/qmail/whitelist
# ls -l
合計 4
-rw-r--r-- 1 qmaild qmail 0 12月 31 20:20 124.147.39.
-rw-r--r-- 1 qmaild qmail 0 12月 31 20:20 124.211.47.3
…