CentOS7+Postfix+Dovecotでメールサーバ構築(その1)

いろいろ妥協しなければいけない点がありましたが何とか形になったので設定をメモ

まず、注意点として自宅サーバで同様の手順で作った場合、受信はできますが、送信はできません!
前回の記事でもあったOP25Bの影響です!

ただ、同じドメイン宛では送れたり、受信はできるので使えなくはないので興味がある方は参考にして作ってみてもいいかもです。

1.事前準備(DNSの設定)

メールサーバを運用するうえで必要なのがDNSのMXレコードとTXTレコードの登録です。

なんで必要かというと、メールを送る際は以下のような通信のやりとりがあるからです。

1.MXレコードを検索して送り先のドメインのメールサーバを特定。
2.TXTレコードを確認してなりすましなどをしていないか確認。

で、DNSレコードの編集はDDNSの管理画面から行います。
うちのドメインの場合は下図の通りです。

MXレコードの登録状況(インフラ管理用の別ドメインを指定)
TXTレコードの登録状況 迷惑メール扱い防止のためspfの設定を記載

2.Postfixの設定

基本的にはコメントアウトされてるものを解除して、パラメータを変更していくだけでOKです。追記が必要なものについては注釈があります。

●対象ファイル:/etc/postfix/main.cf

ホスト名
myhostname = [メールサーバのFQDN]

ドメイン名
mydomain = [メールを送受信するドメイン名]

中継設定
inet_interfaces = all

待ち受けプロトコル
inet_protocols = ipv4

メールを受け取るドメイン設定
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

メールの保存形式(デフォルトはmailboxファイル1つなので1件1件別ファイルにする)
home_mailbox = Maildir/

送信ソフト表記非表示設定
smtpd_banner = $myhostname ESMTP

メール最大容量設定(20MB) ※末尾に追記
message_size_limit = 20971520

SMTP-AUTH設定 ※末尾に追記
### SMTP-AUTH
smtpd_sasl_auth_enable = yes →メールのリレーにsaslを利用して認証
smtpd_sasl_type = dovecot →認証形式の指定
smtpd_sasl_path = private/auth →認証用ソケットファイル指定
smtpd_recipient_restrictions = permit_mynetworks
→指定されたネットワークからリレー許可
permit_sasl_authenticated →SMTP-AUTHで認証された接続はリレー許可
reject_unauth_destination →SMTP-AUTHで認証されなかったらリレー拒否

SSL通信設定 ※末尾に追記
SSL/TLS Setting
smtp_tls_security_level = may 
→SMTPセッションでSSL/TLSを有効か:mayの場合強制ではない
smtpd_tls_cert_file = /etc/postfix/cert/fullchain.pem  →サーバ証明書のパス
smtpd_tls_key_file = /etc/postfix/cert/privkey.pem  →秘密鍵のパス
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
→通信用キャッシュデータベースの場所
smtpd_tls_session_cache_timeout = 3600s  →通信のキャッシュ保持時間
smtpd_tls_received_header = yes →暗号化情報をReceivedヘッダーに追加
smtpd_tls_loglevel = 1  →通信時のログ出力レベル

●対象ファイル:/etc/postfix/master.cf

smtpsパラメータの変更(コメント解除)

smtps inet n – n – – smtpd <=コメントを外す
# -o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes <=コメントを外す
-o smtpd_sasl_auth_enable=yes <=コメントを外す
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject <=コメントを外す
# -o milter_macro_daemon_name=ORIGINATING

ひとまず、Postfixの設定については以上です。
途中、サーバ証明書と秘密鍵をしていする部分がありましたが、うちの場合はLet’s Encriptを使いました。
取得方法は依然紹介したESXiのSSL入れ替えの中で紹介したページあたりを参照してください。

さすがにメールサーバだけあって設定が多いので残りのdovecotの設定はまた次回にします。

ではー