PostfixとDovecotでメールサーバー構築【Postfix編】(CentOS8)

vps
NickbarによるPixabayからの画像

さくらの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
タイトルとURLをコピーしました