| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
「taRgrey」はS25R、tarpitting、greylistingの3つのスパム判定手法を組み合わせたものです。
これだけでもかなりのスパムを弾く事が出来ますが、Yahooメール等のフリーメールや固定IPから送信されたスパムは弾くことが出来ません。
その為、「taRgrey」を1次フィルタとして用い、「SpamAssassin」を2次フィルタとして用いる事により、ほとんどのスパムを弾くことが出来ます。
「SpamAssassin」の設定方法はこちらにあります。
なお、「SMTPサーバ(Postfix)の設定」は終わっているものとします。
「taRgrey」では怪しい送信元に対しtarpitting(応答の遅延)を行いますが、応答待ちですぐに処理が終了しない為、smtpdプロセスが増加します。
そこで「Postfix」にパッチを当てて、遅延している間に相手が接続を切ったら、こちらのsmtpdもすぐに終了するよう、パッチを当てます。
なお、パッチを当てたことによりオリジナルのソースとサイズ等が変わるので、チェックを行わないようにします。
FreeBSD# cd /usr/ports/mail/postfix <= 作業ディレクトリへ移動 FreeBSD# make fetch-recursive <= ソースのダウンロード FreeBSD# cd /usr/ports/distfiles/postfix <= ソースのダウンロードディレクトリへ移動 FreeBSD# tar xzf postfix-2.5.1.tar.gz <= 「Postfix」のソースを展開 FreeBSD# cd postfix-2.5.1 <= 展開したディレクトリに移動 FreeBSD# wget http://k2net.hakuba.jp/pub/postfix-sleep.patch <= パッチのダウンロード FreeBSD# patch -p1 < postfix-sleep.patch <= パッチの適用 FreeBSD# rm -f src/smtpd/smtpd_check.c.orig <= パッチを適用した元のファイルを削除 FreeBSD# rm -f postfix-sleep.patch <= パッチファイルの削除 FreeBSD# cd ../ FreeBSD# rm -f postfix-2.5.1.tar.gz <= 元のソースを削除 FreeBSD# tar czf postfix-2.5.1.tar.gz postfix-2.5.1 <= パッチを当てたソースを圧縮 FreeBSD# rm -rf postfix-2.5.1 <= 展開したソース群の削除 FreeBSD# cd /usr/ports/mail/postfix <= 作業ディレクトリへ移動 FreeBSD# vi Makefile.local <= 設定ファイルの作成 NO_CHECKSUM=yes <= 追加 FreeBSD# make install clean <= 「Postfix」のインストール |
portupgradeの対象から「Postfix」を外します。
FreeBSD# vi /usr/local/etc/pkgtools.conf <= 設定ファイルの編集
HOLD_PKGS = [
'bsdpan-*',
'mail/postfix*', <= 追加
]
|
「taRgrey」を利用する為に「Postgrey」にパッチを当ててインストールします。
こちらもパッチを当てたことによりオリジナルのソースとサイズ等が変わるので、チェックを行わないようにします。
FreeBSD# cd /usr/ports/mail/postgrey <= 作業ディレクトリへ移動 FreeBSD# make fetch-recursive <= ソースのダウンロード FreeBSD# cd /usr/ports/distfiles <= ソースのダウンロードディレクトリへ移動 FreeBSD# tar xzf postgrey-1.31.tar.gz <= 「Postgrey」のソースを展開 FreeBSD# cd postgrey-1.31 <= 展開したディレクトリに移動 FreeBSD# wget http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.31.patch <= パッチのダウンロード FreeBSD# patch -p0 < targrey-0.31-postgrey-1.31.patch <= パッチの適用 FreeBSD# rm -f postgrey.orig <= パッチを適用した元のファイルを削除 FreeBSD# rm -f targrey-0.31-postgrey-1.31.patch <= パッチファイルの削除 FreeBSD# cd ../ FreeBSD# rm -f postgrey-1.31.tar.gz <= 元のソースを削除 FreeBSD# tar czf postgrey-1.31.tar.gz postgrey-1.31 <= パッチを当てたソースを圧縮 FreeBSD# rm -rf postgrey-1.31 <= 展開したソース群の削除 FreeBSD# cd /usr/ports/mail/postgrey <= 作業ディレクトリへ移動 FreeBSD# vi Makefile.local <= 設定ファイルの作成 NO_CHECKSUM=yes <= 追加 FreeBSD# make install clean <= 「Postgrey」のインストール |
portupgradeの対象から「Postgrey」を外します。
FreeBSD# vi /usr/local/etc/pkgtools.conf <= 設定ファイルの編集
HOLD_PKGS = [
'bsdpan-*',
'mail/postfix*',
'mail/postgrey*', <= 追加
]
|
main.cfの設定
当サイトでは、元々記述している部分を1行で記述していますが、ここでは複数行に分けています。
FreeBSD# vi /usr/local/etc/postfix/main.cf <= 設定ファイルの編集
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
以下を追加
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
ここまで
|
「Postgrey」関係の設定
設定ファイルをダウンロードし、指定のディレクトリに配置します。
FreeBSD# wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz <= 設定ファイルのダウンロード FreeBSD# tar xzf postfix.conf.2.tar.gz <= ダウンロードしたファイルの展開 FreeBSD# cp postfix.conf.2/whitelist_client /usr/local/etc/postfix/ <= 設定ファイルのコピー FreeBSD# cp postfix.conf.2/permit_client_nots25r /usr/local/etc/postfix/ <= 設定ファイルのコピー FreeBSD# rm -rf postfix.conf.2 <= 展開したディレクトリの削除 FreeBSD# rm -f postfix.conf.2.tar.gz <= ダウンロードしたファイルの削除 FreeBSD# postmap /usr/local/etc/postfix/whitelist_client <= whitelist_clientファイルのDB化 |
「Postgrey」の起動を有効にし、起動時に「taRgrey」が有効になるように起動オプションを変更します。
ここでは、125秒の遅延を設定し、最初に送信されてから1時間(3600秒)以上開けて、
再送を2回以上されたときのみメールを受け取るように設定しています。
また、上記の設定と合わせ、ポリシーサーバの待ち受けポートを60000に指定しています。
FreeBSD# vi /etc/rc.conf <= 設定ファイルの編集
以下を追加
postgrey_enable="YES"
postgrey_flags="--pidfile=${postgrey_pidfile} \
--dbdir=/var/db/postgrey \
--user=postgrey \
--group=postgrey \
--daemonize \
--inet=127.0.0.1:60000 \
--tarpit=125 \
--targrey \
--retry-count=2 \
--delay=3600"
|
「Postgrey」の起動
FreeBSD# /usr/local/etc/rc.d/postgrey start |
「Postfix」のリロード
「Postfix」の設定をリロードします。
FreeBSD# /usr/local/sbin/postfix reload |