Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証
2022.05.01
この記事は最終更新日から1年以上が経過しています。
前回のUbuntu 20.04 LTS サーバ構築 – Dovecotインストールの続きです。
Postfixで使用できるSASL実装としてはCyrus SASLとDovecot SASLの2つとなり、今回はdovecotを用いてSASL認証を行っていきます。
メニュー
- Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ
- Ubuntu 20.04 LTS サーバ構築 – Nginxインストール
- Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化
- Ubuntu 20.04 LTS サーバ構築 – Postfixインストール
- Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール
- Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証
- Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化
- Ubuntu 20.04 LTS サーバ構築 – DKIM、DMARCを設定する
Postfix SASL認証
認証機能を確認
1 | $ postconf -a |
1 2 | cyrus dovecot |
Postfixの設定編集
/etc/postfix/main.cf を変更します。
1 | $ sudo vim /etc/postfix/main.cf |
最下部に追加
1 2 3 4 5 6 7 8 9 | # SMTP-AUTH smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination |
Postfixの設定確認
1 | $ postconf -n |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes compatibility_level = 2 home_mailbox = Maildir/ inet_interfaces = all inet_protocols = all mailbox_size_limit = 0 masquerade_domains = (ドメイン名) mydestination = $myhostname, (ドメイン名), localhost.localdomain, localhost myhostname = mail.(ドメイン名) mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + smtp_tls_CApath = /etc/ssl/certs smtp_tls_security_level = may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_tls_security_level = may virtual_alias_maps = hash:/etc/postfix/virtual |
Postfixの設定チェック
1 | $ sudo postfix check |
以下の様なエラーが出るが取り敢えず問題ない
1 | postfix/postfix-script: warning: symlink leaves directory: /etc/postfix/./makedefs.out |
Postfixのサブミッションポートを設定
迷惑メール対策設定(OP25B)を行うためサブミッションポートの設定を行っていきます。
/etc/postfix/master.cf を変更します。
1 | $ sudo vim /etc/postfix/master.cf |
1 2 | # コメント解除 & 変更 submission inet n - n - - smtpd |
変更した設定を反映
Postfixを再起動し設定内容を反映。
1 | $ sudo systemctl restart postfix |
Postfixのステータスが Active となっていることを確認
1 2 3 | $ sudo systemctl status postfix Active: active (exited) since Sun 2022-04-17 16:06:04 UTC; 4s ago |
netstatコマンドでポートの確認を行います。587番ポートが有効確認
1 | $ netstat -nat |
1 2 3 | Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN |
ファイアウォールの接続設定
ufwコマンドでPostfixとDovecotに対してに対しての通信を有効化します。
すでにPostfixは有効化しているので、その他を有効化します。
1 2 3 4 5 6 | $ sudo ufw allow "Postfix SMTPS" $ sudo ufw allow "Postfix Submission" $ sudo ufw allow "Dovecot IMAP" $ sudo ufw allow "Dovecot POP3" $ sudo ufw allow "Dovecot Secure IMAP" $ sudo ufw allow "Dovecot Secure POP3" |
メールクライアントアプリで送受信テスト
メールクライアントアプリ Thunderbird を利用して確認を行っていきます。
以下は、webappのまま行っていますが、メールテスト用のアカウントなど作成してテストした方が良いでしょう。
POP3、IMAPどちらも使用できる様になっています。
通信が暗号化されていないため警告が表示されますが、確認のため一旦承認します。
そのままの使用は安全ではないので、すぐにこのあとのSSL/TLSの設定を行いましょう。
メールが送信、受信できない場合はポート番号設定がうまくいっていない可能性もありますので確認しましょう。
(パスワードは平文となります。)
送受信 | ポート番号 | 用途 |
---|---|---|
送信 | 25 | smtp |
送信 | 465 | smtp(SSL) |
送信 | 587 | Submissionポート |
受信 | 110 | POP |
受信 | 995 | POP(SSL) |
受信 | 143 | IMAP |
受信 | 993 | IMAP(SSL) |
Gmail宛にも送信してみると送信できていますが、迷惑メール扱いとなります。
Gmailに迷惑メール扱いされず、更にセキュアに使えるように、まずはSSL/TLSの設定を行っていきます。