さくらのVPS(CentOS8)にメールサーバーを構築する【Postfix編】。
Postfix をインストールして SMTP サーバーを構築してみる。
postfixのインストール
dnf -y install postfix
main.cfとmaster.cfをバックアップ
# cp -p /etc/postfix/main.cf /etc/postfix/main.cf.backup # cp -p /etc/postfix/master.cf /etc/postfix/master.cf.backup
main.cfを編集
# vi /etc/postfix/main.cf
example.comというドメイン名の場合、ホスト名は(FQDN名)「mail.example.com」のようになる。
#myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = mail.example.com
#mydomain = domain.tld mydomain = example.com
inet_interfacesの項目に利用するインタフェースを設定
inet_interfaces = all ←行頭の#を削除 #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = 127.0.0.1 ←行頭に#を追加
独自ドメイン宛のメールを受信できるように設定
#mydestination = $myhostname, localhost.$mydomain, localhost ←行頭に#を追加 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, #mail.$mydomain, www.$mydomain, ftp.$mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ←追加
メール格納形式をMaildir形式にする
#home_mailbox = Mailbox home_mailbox = Maildir/
SMTP認証の設定。最終行へ追加する。
smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
master.cfを編集
Submissionポート(587番ポート)を設定
# vi /etc/postfix/master.cf
smtp inet n - n - - smtpd #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog #tlsproxy unix - - n - 0 tlsproxy submission inet n - n - - smtpd ← 行頭の#を削除 #-o syslog_name=postfix/submission #-o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes ← 行頭の#を削除
新規ユーザー追加時に自動でMaildir形式メールボックス作成
# mkdir -p /etc/skel/Maildir/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/
SASLの設定
cyrus-saslをインストールして、SMTP認証ができるようにする。
# dnf -y install cyrus-sasl
インストール後の確認
# dnf list installed | grep sasl
cyrus-sasl.x86_64 2.1.27-1.el8 @BaseOS cyrus-sasl-lib.x86_64 2.1.27-1.el8 @anaconda
不足しているパッケージがあるので、インストールする
# dnf install cyrus-sasl-md5 # dnf install cyrus-sasl-plain # dnf install cyrus-sasl-devel
SASLの起動と自動起動を設定。
# systemctl start saslauthd # systemctl enable saslauthd
SMTP認証の設定
/etc/sasl2/smtpd.confの編集
# vi /etc/sasl2/smtpd.conf
#pwcheck_method: saslauthd ← 行頭に#を追加 pwcheck_method: auxprop ← 追加 mech_list: cram-md5 plain login ← cram-md5を追記
設定ファイルのチェック
# postfix check
エラーが表示されなければ、完了。
root権限がないと次のエラーになる。
$ postfix check postfix: error: to submit mail, use the Postfix sendmail command postfix: fatal: the postfix command is reserved for the superuser
Postfix再起動
再起動と自動起動。
# systemctl restart postfix # systemctl enable postfix