Postgreyについて

Postgrey

Postgreyとはpostfixを使用する時に初めて来る相手からは一定の待ち時間後に再送が来なければ受信を受け付けないといったもので、phpとかで大量のスパムメールを送りつけてきたのを受診させないためのものになっています。 インストールから使用するまでを簡単にまとめると以下のようになります。

インストール〜使用開始まで(CentOS7系で確認)

# yum install epel-release
# vi /etc/yum.repos.d/epel.repo

enabled=0

# yum –enablerepo=epel install postgrey
# vi /etc/sysconfig/postgrey

POSTGREY_OPTS="--inet=10023 --delay=1800" #メインサーバの設定にあわせる

○postgrey起動
# systemctl start postgrey
# systemctl enable postgrey

グレイリスティングの対象について

上記設定を行うと初めてくる相手からは以下のようにログが出力されるようになっています。

Sep 11 07:52:43 xxx postgrey[31898]: action=greylist, reason=new, client_name=xxx, client_address=xxx, sender=xxx, recipient=xxx

“action=greylist, reason=new"となっていますが、これは初めてメールを送ってきた相手のため一旦受診を拒否したといった内容になっております。ここでいう初めて送ってきた相手についてですが、最近まではメールサーバ間でのやり取りがあったかどうかだと思っていたのですが実際は違っていたようでして、それが確認できるログは以下のようになっています。

Sep 11 08:01:05 xxx postgrey[31898]: action=pass, reason=triplet found, delay=508, client_name=xxx, client_address=xxx, sender=xxx, recipient=xxx

これはPostgreyのデータベース内にtriplet(送信元サーバIP, 送信者アドレス、 受信者アドレスの組み合わせ)が存在したため、グレイリスティングにパスしたということを表しています。自分はこのログを見て気づいたのですがどうやら送信アドレス、受信者アドレス、送信サーバ毎で待ち時間が発生するようです。