taRgrey – S25R + tarpitting + greylisting (tarpit + greylist policy server)

taRgrey – S25R + tarpitting + greylisting (tarpit + greylist policy server)

postgrey 0.28 向けのパッチを頂いたので仕込中。

/usr/local/etc/pkgtools.conf でパッチファイルを それっぽい名前で /usr/ports/mail/postgrey/files/ の下にコピーさせる。

BEFOREBUILD = {
      'mail/postgrey'         => 'cp /local/work/targrey-0.23-postgrey-1.28.patch /usr/ports/mail/postgrey/files/patch-targrey' ,
}

あとは sudo portinstall mail/postgrey でプログラム自体のインストールは完了

daemontools 向け run スクリプト。unixドメインソケットを利用して高速化&一般ユーザには使わせないぞ設定にした。
postgrey の –unix オプションで作られるソケットファイルは、誰でも読み書き可能状態だったので chmod g+rw,o= を利用してpostfix以外からはアクセスできないように。
このソケットファイルのパーミッション設定は clammilter の時の設定をほぼ流用だ。

#!/bin/sh
user=postgrey
socketdir=/var/run/postgrey
sockfile=$socketdir/postgrey.sock
if [ \! -d $socketdir ]; then
        mkdir $socketdir >/dev/null 2>&1
fi
chown -R $user $socketdir
chgrp -R $user $socketdir
chmod 755 $socketdir
chownpipe () {
  while [ \! -S $sockfile ];
  do
    sleep 1
  done
  chgrp postfix $sockfile
  chmod g+rw,o= $sockfile
}
case $1 in
  --chownpipe) chownpipe; exit 0;;
esac
rm -f $sockfile
daemon $0 --chownpipe
exec 2>&1
exec softlimit -c 0 \
        envdir ./env \
        /usr/local/sbin/postgrey --unix=$sockfile --group=postfix --tarpit=125 --delay=1800 --retry-count=2

postgrey(targrey)自体のオプションに –targrey がないのは、頂いたパッチが targrey-0.27 相当だったため。
今まで postgrey を使っていた訳ではないので特に問題はない。

/usr/local/etc/postfix/main.cf の該当部分が以下のようにした。

smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        reject_unknown_recipient_domain
        check_sender_access hash:/usr/local/etc/postfix/sender_access
        reject_unknown_sender_domain
        check_client_access    regexp:/usr/local/etc/postfix/permit_client_nots25r
        check_policy_service   unix:/var/run/postgrey/postgrey.sock
        warn_if_reject reject_unverified_sender
        permit

smtpd_data_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        check_sender_access hash:/usr/local/etc/postfix/sender_access
        check_client_access    regexp:/usr/local/etc/postfix/permit_client_nots25r
        check_policy_service   unix:/var/run/postgrey/postgrey.sock
        permit

address_verify_map = btree:/var/run/postfix_verify
strict_rfc821_envelopes = yes

/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

まだMXを向けてないので外部からメールはほとんど来てないけど、とりあえず動くところまでいった。

ここ mimori.org にも仕掛けてみたけど、グラフを見てもすぐにはよくわからんな。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。