Postfixに不正アクセス対策(DNSBL)
自宅サーバのmail.logを見てみると、あやしいアクセスがいっぱいあったので、何かしらの対策をしようと調べました。
メアドが流通してないせいでスパムメールはほとんど届かないですが 、SMTPポートにちょっと接続してなにかしらを探っているような痕跡があったので、こちらをメインに対策します。
Postfixに何かしらの機能があったと思ったので調べてみました。
まずは、こちらの「Postfix SMTP リレーおよびアクセス制御」
https://www.postfix-jp.info/trans-2.3/jhtml/SMTPD_ACCESS_README.html
あやしい接続は smtpd_client_restrictions
を設定することにより、接続要求を受けた時点で発動するアクセス制限ができるようです。
マニュアル「Postfix 設定パラメータ」はこちら
https://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html#smtpd_client_restrictions
最終的に smtpd_client_restrictions
の設定はこうなりました。
### Access ristriction, DNSBL settings
smtpd_client_restrictions =
permit_mynetworks,
reject_unknown_client,
reject_rbl_client bl.spamcop.net,
reject_rbl_client zen.spamhaus.org,
permit
この設定は参考にした記事の丸パクリなのですが、なぜか再度探しても見つかりませんでした。
smtpd_client_restrictions
は右辺のコンマで区切られた制限を左から順に評価し、許可または不許可が決定した時点で評価を終了します。
ということで、それぞれの制限は以下のようなものです。
順番 | 制限 | 機能 |
---|---|---|
1 | permit_mynetworks | クライアントの IP アドレスが $mynetworks にリストアップされた ネットワークのいずれかにマッチする場合、要求を許可します。 |
2 | reject_unknown_client | クライアントの IP アドレスが DNS に PTR (アドレスから名前への) レコードを持たない場合や、その PTR レコードがマッチする A (名前からアドレスへ) レコードを持たない場合に、要求を拒否します。 |
3 | reject_rbl_client bl.spamcop.net | 逆にしたクライアントネットワークアドレスが rbl_domain 以下のいずれかの A レコードでリストアップされている 場合に、要求を拒否します。(例:クライアント:1.2.3.4 ⇒ 4.3.2.1.bl.spamcop.net. のAレコード検索) bl.spamcop.netは SpamCop の DNSBL(DNS BlackList)サービスです。 |
4 | reject_rbl_client zen.spamhaus.org | 同上。 zen.spamhaus.org は Spamhaus のDNSBLサービス「禅(Zen)」です。 |
5 | permit | 要求を拒否します。 |
なお、DNSBLサービスはなくなったりすることもあるようなので、定期的に機能しているかどうかを確認する必要があるようです。