FreeBSD 14.3 RELEASE - postfix - セキュリティ対策 - 接続許可・拒否


クラウディア 


1. 概要
2. 受信接続許可
3. 送信接続拒否
4. 再起動
5. 確認
6. 参考サイト

1. 概要

 メールサーバを公開していると、わさわさ、不正なアクセスがあります。  受信と送信に関して、接続を許可するアドレス、拒否するアドレスを設定します。  以下、すべて「root」ユーザ権限で。

2. 受信接続許可

 「POP/IMAP」で受信接続するのは、基本的に、ループバックアドレス、ローカルアドレス、ドメイン内アドレス。  その他には、外出先でアクセスするための、外出先のアドレス、携帯のキャリアのアドレスくらいなので・・・。  許可するアドレスの列挙で事足りるはずです。

vi /usr/local/etc/dovecot/conf.d/auth-system.conf.ext

passdb {
  driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
}
 14、15行の間に、接続を許可するアドレスを記述していきます。

  override_fields = allow_nets=127.0.0.1,192.168.0.0/16,...
 編集が終わったら。

doveconf -n
 で、文法的な誤りがないか、チェックしておきます。

3. 送信接続拒否

 「smtp」なり「smtpd」なりの方は、向うから来ますから、あまり制限は加えませんが・・・。  国外からのものは、特に特定の「中〇」とか「露〇」とかからの接続は拒否しなければなりません。  拒否用のファイルを作成します。

vi /usr/local/etc/postfix/ipfilter
 下記の形式で、拒否するアドレスを、改行しつつ列挙します。

196.251.92.11 REJECT
 「IP」アドレスは、ドメイン名でもいけるらしい。  ワイルドカードが使えるかは、まだ、調べていません。 「196.251.92.11/32」の「CIDR」形式は、できません。  詳細は、「メールサーバ(postfix)- 接続許可・拒否」をご参照ください。  このあたり、自動化のスクリプトが必要になりそうですが。  作成し終わったら、下記のコマンドでハッシュ化します。

postmap /usr/local/etc/postfix/ipfilter
 この結果。

/usr/local/etc/postfix/ipfilter.db
 というハッシュ化された、データベースができます。  記述するアドレスは、大量になりますので、ハッシュ化しれくれるのは、ありがたいです。

vi /usr/local/etc/postfix/main.cf
 末尾に、下記を記述します。


# 接続拒否アドレス設定
smtpd_client_restrictions =
  permit_mynetworks,
  check_client_access hash:/usr/local/etc/postfix/ipfilter,
  permit

postfix check
 でチェックします。

4. 再起動

 再起動します。

service dovecot reload

service postfix reload

5. 確認

 さて、設定した内容を確認には、「IP」アドレスを変えつつ、接続してみるしかないですな。

6. 参考サイト

 本ページは、「ChatGPT」くんの意見、「Google」大先生、および、下記のサイトを参考にさせていただきました。
[Ubuntu 20.04] Dovecot/Postfixの 認証可能なIPを制限した #Security」
「Postfix で特定の IP アドレスを拒否する設定

AbemaTV 無料体験