FreeBSD 14
Sponsored Link

Mail サーバー : Postfix インストール2024/04/17

 
Postfix をインストールして SMTP サーバーを構築します。
[1] Postfix をインストールします。
root@mail:~ #
pkg install -y postfix
[2] メール不正中継防止のため、後述の Dovecot の SASL 機能を利用して、送信にも認証を要求するように Postfix を設定します。
root@mail:~ #
vi /usr/local/etc/postfix/main.cf
# 98行目 : コメント解除しホスト名指定
myhostname = mail.srv.world

# 106行目 : コメント解除しドメイン名指定
mydomain = srv.world

# 122行目 : コメント解除
myorigin = $mydomain

# 136行目 : コメント解除
inet_interfaces = all

# 184行目 : コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 227行目 : コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps

# 272, 273行目 : コメント解除 & コメント化
mynetworks_style = subnet
#mynetworks_style = host

# 286行目 : コメント解除して自身のネットワーク追記
mynetworks = 127.0.0.0/8, 10.0.0.0/24

# 410行目 : コメント解除
alias_maps = hash:/etc/aliases

# 420行目 : コメント解除
alias_database = hash:/etc/aliases

# 442行目 : コメント解除 (Maildir 形式)
home_mailbox = Maildir/

# 578行目 : 追記
smtpd_banner = $myhostname ESMTP

# 以下 最終行へ追記
# 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, reject

# sendmail を無効にする

root@mail:~ #
sysrc sendmail_enable="NO"

root@mail:~ #
vi /etc/periodic.conf
# 新規作成

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

root@mail:~ #
install -d /usr/local/etc/mail

root@mail:~ #
install -m 0644 /usr/local/share/postfix/mailer.conf.postfix /usr/local/etc/mail/mailer.conf

root@mail:~ #
postalias /etc/aliases

root@mail:~ #
newaliases

root@mail:~ #
service postfix enable

root@mail:~ #
service postfix start

[3]
必要に応じて Postfix に以下の設定を追加します。
設定することで、多くのスパムメールを拒否することができます。
ただし、必要なメールを拒否することもしばしばあります。
特に、接続元の SMTP サーバーの DNS の正引きと逆引きが一致しないサーバーは、企業のサーバーでもよくあります。
よって、以下は、自身の SMTP サーバーが特定の SMTP サーバーとしかやり取りをしない等、使用方法が限定的な場合に限って設定した方がよいでしょう。
root@mail:~ #
vi /usr/local/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

root@mail:~ #
service postfix reload

関連コンテンツ