Mail サーバー : Postfix インストール2021/09/14 |
Postfix をインストールして SMTP サーバーを構築します。SMTP は [25/TCP] を使用します。
|
|
[1] | メール不正中継防止に、後述の Dovecot の SASL機能を利用し、送信にも認証が必要なように Postfix を設定します。 |
root@mail:~#
apt -y install postfix sasl2-bin # 一般的な構成設定の選択を求められるが # 当例では後ほど手動設定するため [No Configuration] を選択 +------+ Postfix Configuration +-------+ | General type of mail configuration: | | | | No configuration | | Internet Site | | Internet with smarthost | | Satellite system | | Local only | | | | | | <Ok> <Cancel> | | | +--------------------------------------+root@mail:~# cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf
root@mail:~#
vi /etc/postfix/main.cf # 78行目 : コメント解除 mail_owner = postfix # 94行目 : コメント解除しホスト名指定 myhostname = mail.srv.world # 102行目 : コメント解除しドメイン名指定 mydomain = srv.world # 123行目 : コメント解除 myorigin = $mydomain # 137行目 : コメント解除 inet_interfaces = all # 185行目 : コメント解除 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 228行目 : コメント解除 local_recipient_maps = unix:passwd.byname $alias_maps # 270行目 : コメント解除 mynetworks_style = subnet # 287行目 : 自ネットワーク追記 mynetworks = 127.0.0.0/8, 10.0.0.0/24 # 407行目 : コメント解除 alias_maps = hash:/etc/aliases # 418行目 : コメント解除 alias_database = hash:/etc/aliases # 440行目 : コメント解除 home_mailbox = Maildir/ # 576行目 : コメントにしてその下に追記 # SMTP ソフトウェアの種類やバージョンは非表示にする #smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_banner = $myhostname ESMTP # 650行目 : 追記 sendmail_path = /usr/sbin/postfix # 655行目 : 追記 newaliases_path = /usr/bin/newaliases # 660行目 : 追記 mailq_path = /usr/bin/mailq # 666行目 : 追記 setgid_group = postdrop # 670行目 : コメント化 #html_directory = # 674行目 : コメント化 #manpage_directory = # 679行目 : コメント化 #sample_directory = # 683行目 : コメント化 #readme_directory = # 684行目 : IPv6 もリスンする場合は [all] に変更 inet_protocols = ipv4 # 以下 最終行へ追記 # SMTP VRFY コマンドは無効にする disable_vrfy_command = yes # クライアントに対して HELO コマンドを要求する smtpd_helo_required = yes # 1 メールのサイズを制限する # 下例は 10M バイト message_size_limit = 10240000 # SMTP-Auth の設定 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, rejectroot@mail:~# root@mail:~# systemctl restart postfix |
[2] |
必要に応じて Postfix に以下の設定を追加します。
設定することで、多くのスパムメールを拒否することができます。
ただし、必要なメールを拒否することもしばしばあります。
よって、以下は、自身の SMTP サーバーが特定の SMTP
サーバーとしかやり取りをしない等、使用方法が限定的な場合に限って設定した方がよいでしょう。
特に、接続元の SMTP サーバーの DNS の正引きと逆引きが一致しないサーバーは、企業のサーバーでもよくあります。 大手弁当チェーンのネット注文で送信されてくるメールや、大手ハンバーガーチェーンのネット注文で送信されてくるメール等々は [smtpd_client_restrictions] の設定のみでも全て拒否、大手コンビニチェーンのチケットサイトから送信されるメール等々は [smtpd_helo_restrictions] で全て拒否します。 |
root@mail:~#
vi /etc/postfix/main.cf # 最終行に追記 # 送信元クライアントホストの DNS の正引きと逆引きが一致しない場合は接続要求を拒否する smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, permit # FROM に設定されている送信者アドレスのドメインが DNS 登録にない または # FQDN で登録されていない場合は接続要求を拒否する smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender # HELO コマンドを受信した際に 接続元ホスト名が DNS に登録されていない または # FQDN で登録されていない場合は接続要求を拒否する smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permit systemctl restart postfix |
Sponsored Link |