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 アドレスを拒否する設定」