Postfix でセキュア認証を使用してポート 587 で TLS を有効にする方法は?

Postfix でセキュア認証を使用してポート 587 で TLS を有効にする方法は?

Postfix サーバーがポート 587 でのみメールを送信し、さらにポート 587 でセキュア認証 (システムの Linux ユーザーを使用) による TLS を有効にするにはどうすればよいでしょうか?

まず、この質問は範囲が広すぎるように思われるかもしれませんが、インターネット上ではこれに対する解決策を 1 つも見つけることができませんでした。多くの記事で解決策は示されていますが、一部が省略されています。

認証を強制し、TLS 接続を強制したい。

誰かに尋ねられたら設定を投稿できます。

よろしくお願いします。私はPostfix初心者です。また、http://www.postfix.org/documentation.htmlですが、それについて教えていただく前に、私はそれを正しく理解することができず、そのため、設定を台無しにして、サーバーを使用できなくしてしまうことは間違いありません。また、ここでの postfix は apt パッケージ マネージャーを使用してインストールされました。しかし、これは特に ubuntu に関連しているわけではないと思います。私は postfix を使用する前は Exim4 を使用していましたが、Exim のサポートはほとんどなく、ほとんどの人が cPanel で使用しているため、バニラ Exim サポートは得られません。

サーバーのセキュリティが危険にさらされているため、緊急の支援が必要です。

答え1

ポート587を有効にするには、ファイルを編集しますマスター

vi /etc/postfix/master.cf

行の先頭の # を削除します (行のコメントを解除します)。

#submission inet n - n - - smtpd

次のようになります:

submission inet n - n - - smtpd

この行の直後に SASL 認証を有効にする追加の行のコメントを解除することもできます。新しい行はそれぞれスペースで始まる必要があります。

 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject

その他の設定は、/etc/postfix/main.cf環境に応じて異なります。

さらに、TLS 設定を構成する必要がある場合があります。

# TLS parameters
# you need to specify a real certificate location
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert.key
smtpd_use_tls=yes
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
smtpd_sasl_tls_security_options=noanonymous
smtpd_tls_auth_only=yes

メールの受信に dovecot を使用するかどうかに応じて、以下を追加する必要があります。

smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
broken_sasl_auth_clients=yes

追加のセキュリティ制限:

smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_helo_hostname,reject_non_fqdn_sender,reject_unknown_sender_domain,reject_non_fqdn_recipient,reject_unknown_recipient_domain

postfixを確認して再起動します:

postfix check
systemctl restart postfix

postfix がポート 25 と 587 の両方でリッスンしていることを確認できます。

netstat -na | grep LISTEN | grep 25
netstat -na | grep LISTEN | grep 587

ファイアウォールでポート 587 を許可することを忘れないでください。

postfixユーザーの作成は別の話です。コメントで述べたように、メールボックス(メールユーザー)を保存するにはSQLを使用する必要があります。そうしたくない場合は、Linuxユーザーを使用できます。詳細は以下に記載されています。ここ

PS: 完全な構成をここで提供することは現実的ではないと思います。特定のケースの要件と環境に大きく依存するからです。

答え2

これにより、安全な接続のみが許可されます。

smtpd_tls_auth_only = yes

次に、その他の必要なオプションがあります。

smtpd_tls_security_level = may

smtp_sasl_auth_enable = yes

smtp_use_tls = yes

587 を使用するには、master.cf を編集し、次の行のコメントを解除します。

submission inet n - n - - smtpd

再起動の接尾辞。

関連情報