メニュー 閉じる

Postfixで接続元IPアドレスを元にアクセス制限を設定

※Centos8 では失敗した?

対応:

# 早口すぎるクライアントをブロックします。
smtpd_data_restrictions = reject_unauth_pipelining

 

以下、本記事

 

 

メールサーバが外部からアクセスを試みされることが多い

その場合、IPを特定し、拒絶することを進める アクセス制限

その為の作業は以下の通り

# vi /etc/postfix/main.cf

最終行に
#SMTP接続制限設定

smtpd_client_restrictions =
permit_mynetworks,
reject_rbl_client all.rbl.jp,
reject_rbl_client bl.spamcop.net,
reject_rbl_client zen.spamhaus.org,
check_client_access hash:/etc/postfix/reject_client,
permit

を記載 説明========================= ■設定内容解説 smtp_client_restrictions SMTPサーバーがクライアントからSMTP接続の要求を受けた際に適用する、オプションのアクセス制限を指定します。

 

詳しい仕様は以下のリンク先のPostfix公式マニュアルを参照してください。

reject_rbl_client
「reject_rbl_client」と記述されている行が5行存在します。
これは「RBL(Real-time Blackhole List)」と呼ばれるスパムメール送信元データベースからREJECT対象の送信元を判別させる為の記述です。
今回はIPアドレスを指定したアクセス制限以外にも、各団体などが管理しているスパムメール送信元リストもアクセス制限の判定条件に加えることします。

RBL(DNSBL)とは、についてはWikipediaの記事を参考にしてください。

今回の設定例に記述したRBLのリストは

の「Multi-RBL Check」処理で利用されていたRBLの一覧から当方で抜粋したものです。

check_client_access
アクセス制限を掛ける接続元のIPアドレスやホスト名などを指定します。
対象行では hash: と記述が続いており、データベース化したファイルを参照する指定内容にしてあります。
データベース化については後述します。

permit
最終行に permit が記述されています。
これはアクセス制限対象か否かを上から順番に評価されていき、上記の各条件に当てはまらなかったら permit(許可)と指定しています。
ただ、実際にはこの permit を記述しなくても許可されます。
視覚的にルールがわかりやすいので、明示的に書いておくことをおススメします。

=================================

 

アクセス制限対象db作成

vi /etc/postfix/reject_client

尚、ファイル「reject_client」は別の名前でも問題ありませんが、その場合は上項の「main.cf」内の「smtp_client_restrictions」でも同じファイルを指定してください。

今回は以前の記事の続きの作業で、接続元がロシアのIPアドレスの場合に制限を掛けようと思います。
その為、ファイル「reject_client」には以下の記述を入れて保存します。

45.142.120.0/24 REJECT

書き方は、ここを参照⇒http://www.postfix-jp.info/trans-2.2/jhtml/access.5.html/

postmap /etc/postfix/reject_client
postfix reload

 

参考ページ:https://www.depthbomb.net/?p=3422