スパム対策(taRgrey)

「taRgrey」はS25R、tarpitting、greylistingの3つのスパム判定手法を組み合わせたものです。
これだけでもかなりのスパムを弾く事が出来ますが、Yahooメール等のフリーメールや固定IPから送信されたスパムは弾くことが出来ません。
その為、「taRgrey」を1次フィルタとして用い、「SpamAssassin」を2次フィルタとして用いる事により、ほとんどのスパムを弾くことが出来ます。
「SpamAssassin」の設定方法はこちらにあります。
なお、「SMTPサーバ(Postfix)の設定」「Postfix」+「Cyrus-SASL」の設定 は終わっているものとします。

「Postfix」のインストール

「taRgrey」では怪しい送信元に対しtarpitting(応答の遅延)を行いますが、応答待ちですぐに処理が終了しない為、smtpdプロセスが増加します。
そこで「Postfix」にパッチを当てて、遅延している間に相手が接続を切ったら、こちらのsmtpdもすぐに終了するよう、パッチを当てます。
また、今後自動でバージョンアップさせないよう、マスクを行います。

Gentoo ~ # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild fetch <= 「Postfix」のソースをダウンロード
Gentoo ~ # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild unpack <= ダウンロードしたソースの展開
Gentoo ~ # cd /var/tmp/portage/mail-mta/postfix-2.4.6-r2/work/postfix-2.4.6 <= 展開したソースのディレクトリへ移動
Gentoo postfix-2.4.6 # wget http://k2net.hakuba.jp/pub/postfix-sleep.patch <= パッチのダウンロード
Gentoo postfix-2.4.6 # patch -p1 < postfix-sleep.patch <= パッチの適用
Gentoo postfix-2.4.6 # rm -f src/smtpd/smtpd_check.c.orig <= パッチを適用した元のファイルを削除
Gentoo postfix-2.4.6 # rm -f postfix-sleep.patch <= パッチファイルの削除
Gentoo postfix-2.4.6 # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild compile <= コンパイル
Gentoo postfix-2.4.6 # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild install <= 一時的な場所にインストール
Gentoo postfix-2.4.6 # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild qmerge <= 現在のファイルシステムにファイルをマージ
Gentoo postfix-2.4.6 # ebuild /usr/portage/mail-mta/postfix/postfix-2.4.6-r2.ebuild clean <= 一時的なディレクトリの削除

アップデート対象から「Postfix」を外します。

Gentoo ~ # vi /etc/portage/package.mask <= 設定ファイルの編集
mail-mta/postfix <= 追加
「Postgrey」のインストール

「taRgrey」を利用する為に「Postgrey」にパッチを当ててインストールします。
ただし、「Postgrey」に依存しているものがありますので、事前に「Postgrey」をemergeでインストールし、その後、再度「Postgrey」をインストールします。
なお、こちらも今後自動でバージョンアップさせないよう、マスクを行います。

Gentoo ~ # emerge postgrey <= 「Postgrey」をemergeでインストール

Gentoo ~ # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild fetch <= 「Postgrey」のソースをダウンロード
Gentoo ~ # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild unpack <= ダウンロードしたソースの展開
Gentoo ~ # cd /var/tmp/portage/mail-filter/postgrey-1.31/work/postgrey-1.31 <= 展開したソースのディレクトリへ移動
Gentoo postgrey-1.31 # wget http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.31.patch <= パッチのダウンロード
Gentoo postgrey-1.31 # patch -p0 < targrey-0.31-postgrey-1.31.patch <= パッチの適用
Gentoo postgrey-1.31 # rm -f targrey-0.31-postgrey-1.31.patch <= パッチファイルの削除
Gentoo postgrey-1.31 # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild compile <= コンパイル
Gentoo postgrey-1.31 # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild install <= 一時的な場所にインストール
Gentoo postgrey-1.31 # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild qmerge <= 現在のファイルシステムにファイルをマージ
Gentoo postgrey-1.31 # ebuild /usr/portage/mail-filter/postgrey/postgrey-1.31.ebuild clean <= 一時的なディレクトリの削除

アップデート対象から「Postgrey」を外します。

Gentoo ~ # vi /etc/portage/package.mask <= 設定ファイルの編集
mail-filter/postgrey <= 追加
「Postfix」の設定

main.cfの設定

当サイトでは、元々記述している部分を1行で記述していますが、ここでは複数行に分けています。

Gentoo ~ # vi /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」関係の設定

設定ファイルをダウンロードし、指定のディレクトリに配置します。

Gentoo ~ # wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz <= 設定ファイルのダウンロード
Gentoo ~ # tar xzf postfix.conf.2.tar.gz <= ダウンロードしたファイルの展開
Gentoo ~ # cp postfix.conf.2/whitelist_client /etc/postfix/ <= 設定ファイルのコピー
Gentoo ~ # cp postfix.conf.2/permit_client_nots25r /etc/postfix/ <= 設定ファイルのコピー
Gentoo ~ # rm -rf postfix.conf.2 <= 展開したディレクトリの削除
Gentoo ~ # rm -f postfix.conf.2.tar.gz <= ダウンロードしたファイルの削除
Gentoo ~ # postmap /etc/postfix/whitelist_client <= whitelist_clientファイルのDB化
「Postgrey」の設定

「Postgrey」の起動時に「taRgrey」が有効になるように起動オプションを変更します。
ここでは、125秒の遅延を設定し、最初に送信されてから1時間(3600秒)以上開けて、 再送を2回以上されたときのみメールを受け取るように設定しています。
また、上記の設定と合わせ、ポリシーサーバの待ち受けポートを60000に指定しています。

Gentoo ~ # vi /etc/conf.d/postgrey <= 設定ファイルの編集
POSTGREY_PORT="10030"
↓
POSTGREY_PORT="60000" <= 変更

POSTGREY_DELAY=300
↓
POSTGREY_DELAY=3600 <= 変更

POSTGREY_OPTS=""
↓
POSTGREY_OPTS="--dbdir=/var/spool/postfix/postgrey --tarpit=125 --targrey --retry-count=2" <= 変更
「Postfix」、「Postgrey」の起動

「Postgrey」の起動

Gentoo ~ # /etc/init.d/postgrey start

「Postfix」の再起動

Gentoo ~ # /etc/init.d/postfix restart
▲ページのトップへ