スパム対策
スパム対策に taRgrey を導入します。
taRgrey は S25R + tarpitting + greylisting の三種類のスパム判定方法を組み合わせたフィルタリング方法です。
一次フィルタに taRgrey 、二次フィルタに Procmail + SpamAssassin を採用すればかなりのスパムメールを弾けることになります。
taRgrey について
tarRgrey を使用するに当たって、下記のサイトには目を通しておいてください。
taRgrey - S25R + tarpitting + greylisting (tarpit + greylist policy server)
Rgrey - S25R + greylisting
Starpitでほぼ誤検出無く98%のスパムを排除 (S25R+tarpittingによるスパム対策) - モーグルとカバとパウダーの日記
阻止率99%のスパム対策方式の研究報告 ―― Selective SMTP Rejection (S25R)方式 ――
パッチについて
taRgrey を使うには Postfix ( 必須ではありません ) と postgrey にパッチを当てる必要があります。
portupgrade をインストールしていればこのパッチを ports に適用することが出来ます。
今回は Postfix にはパッチを当てず、 postgrey にだけ、パッチを当てる事とします。
パッチのダウンロード
ports にパッチを当てる為、パッチをこちらからダウンロードします。
保存場所は /root/patch 以下とし、パッチの更新等もここで行います。
% sudo mkdir /root/patch
% cd /root/patch
% sudo fetch http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.32.patch
postgrey インストール
まずは postgrey のインストールからです。
% sudo portinstall mail/postgrey
パッチが当てられれば下記のように表示されます。
---> Executing a pre-build command for 'mail/postgrey': cp /root/patch/targrey-0.31-postgrey-1.32.patch /usr/ports/mail/postgrey/files/patch-targrey
Whitelist の取得
taRgrey の設定を行う前に、まずはホワイトリストの取得から行います。
ホワイトリスト情報
% cd /usr/local/etc/postfix
% sudo fetch http://www.gabacho-net.jp/anti-spam/white-list.txt
permit_client_nots25r の作成
taRgrey の設定を行う前に、 permit_client_nots25r を作成します。
なお、これはホームページに掲載されている内容とまったく一緒のものです。
% sudo vi /usr/local/etc/postfix/permit_client_nots25r
/\.dip\.t-dialin\.net$/ WARN
/\.dyn\.optonline\.net$/ WARN
...(other dynamic IP FQDN pattern(not match S25R pattern))
!/(^unknown$)|(^[^\.]*[0-9][^0-9\.]+[0-9])|(^[^\.]*[0-9]{5})|(^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z])|(^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9])|(^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\.)|(^(dhcp|dialup|ppp|adsl)[^\.]*[0-9])/ OK
/./ WARN
taRgrey の設定
次にtaRgrey の設定です。
今回はお試し導入 (?) ということで、フィルタリングルールも、ホームページで提唱されているものだけにしました。
% sudo vi /usr/local/etc/postfix/main.cf
#
# taRgrey - S25R + tarpitting + greylisting
#
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_client_access regexp:$config_directory/white-list.txt
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
check_client_access regexp:$config_directory/white-list.txt
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_recipient_restrictions は SASL を有効にした時に既に記述したと思うので、そちらは削除してください。
postgrey の自動起動
postgrey の設定は、自動起動時のフラグの変更を行います。
% sudo vi /etc/rc.conf
postgrey_enable="YES"
postgrey_flags="--pidfile=/var/run/postgrey.pid --dbdir=/var/db/postgrey --user=postgrey --group=postgrey --daemonize --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600"
postgrey の起動
まずは postgrey を起動します。
% sudo /usr/local/etc/rc.d/postgrey start
動作確認の為、 ps で確認します。
27499 ?? Is 0:00.01 /usr/local/sbin/postgrey --pidfile=/var/run/postgrey.pid --dbdir=/var/db/postgrey --user=postgrey --group=postgrey --daemonize --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600 (perl5.8.8)
27507 p0 R+ 0:00.00 grep postgrey
Postfix の再起動
全て問題がなければ Postfix を再起動します。
% sudo /usr/local/etc/rc.d/postfix restart