1. 概要
送信元の「IP」アドレスが、逆引きできるかどうか、あるいは、逆引きしたドメインが正しいかどうかで、受信拒否することができるようです。
2. 設定
現在の。
/usr/local/etc/postfix/main.cf
に下記の記述がありまして。
smtpd_client_restrictions =
permit_mynetworks,
check_client_access cidr:/usr/local/etc/postfix/ipfilter.cidr,
check_client_access hash:/usr/local/etc/postfix/ipfilter,
permit
「check_client_access」に関しては、前の方の「ドメイン正規表現」による拒否のページを読んでいただくとして。
上記の「permit」の行の前に。
reject_unknown_client_hostname,
あるいは。
reject_unknown_reverse_client_hostname,
という行を加えます。
上の例は、逆引きの結果、アドレスとドメインが一致しないものを拒否します。
下の例は、もう少し緩やかで、逆引きが存在するかのみをチェックして、存在しなければ、拒否します。
3. チェック
前項の設定を行うと、案外メールサーバで設定がうまくされていないものがあったりして、欲しいメールが届かなくなったりする恐れもあります。
チェック用として、前項の代わりに。
warn_if_reject reject_unknown_reverse_client_hostname,
と記述しておくと、受信拒否はしない代わりに、ログに。
Mar 25 11:33:15 ns postfix/smtpd[52545]: NOQUEUE: reject_warning: RCPT from unknown[83.219.250.8]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [83.219.250.8]; from=<oeglvurssy@yahoo.co.jp> to=<oubo@sing.ne.jp> proto=SMTP helo=<122.215.121.34>
てな、行がつけられます。
これをいれて、一定期間ログをチェックして、実際に前項の設定を行うべきかどうかを判断することもできます。
「maillog」を「reject_warning」をキーに「grep」すれば抽出できます。
4. 本番運用
様子を見て。
reject_unknown_reverse_client_hostname,
へ、変更しました。
チェックにかかったログには。
Mar 25 11:33:15 ns postfix/smtpd[52545]: NOQUEUE: reject_warning: RCPT from unknown[83.219.250.8]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [83.219.250.8]; from=<oeglvurssy@yahoo.co.jp> to=<oubo@sing.ne.jp> proto=SMTP helo=<122.215.121.34>
てな、行がつけられます。
grep "Client host rejected: cannot find your reverse hostname" mail_log_path
で、ログをチェックします。
件数をカウントするのであれば。
grep "Client host rejected: cannot find your reverse hostname" mail_log_path | wc -l
ではじいた結果をカウントできます。
5. 参考サイト
本ページは、「Gemini」伍長を参考にさせていただきました。