web-dev-qa-db-ja.com

メールクライアントでpostfixに接続できません

サーバーでMXをセットアップしようとしていて、Dovecotを使用してSSLでIMAPパーツを機能させることができましたが、SASL認証としてDovecotを使用してSMTPパーツを機能させることができません。

telnet example.com 587の場合、ehloは次のように表示します。

250-example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Ehloには認証がありませんが、openssl s_client -starttls smtp -connect example.com:587に対してehloを実行すると、次のようになります。

250-example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

そして、 '\ 0username\0password'のbase64を使用したプレーンログインは、[〜#〜] ok [〜#〜]を返します。ここでの問題は、ユーザーが認証され、接続に問題があるため、SASLではないと思いますが、何がそのような問題を引き起こす可能性があるのか​​わかりません。受信者の制限により、SASLで認証されていないユーザーの通過が許可されていないため、デフォルトのtelnetでエラーが発生します。 SASLをデフォルトの非STARTTLS接続に追加して、メーリングクライアントで使用できるようにするにはどうすればよいですか?

これが私のmain.cfです:

## SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes

## SSL/TLS
smtpd_tls_received_header = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file=/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file=/etc/postfix/ssl/smtpd.key
smtpd_tls_ask_ccert = yes
smtpd_use_tls=yes
smtp_use_tls=yes
smtpd_tls_log_level = 2
smtp_tls_note_starttls_offer = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_protocols = SSLv3, TLSv1
tls_random_source = dev:/dev/urandom

message_size_limit = 30720000
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, 
    reject_invalid_hostname, permit

smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, 
    reject_unknown_sender_domain, reject_unauth_pipelining, permit

smtpd_recipient_restrictions = reject_unauth_pipelining, 
    permit_mynetworks, reject_non_fqdn_recipient, 
    reject_unknown_recipient_domain, reject_unauth_destination, permit

smtpd_data_restrictions = reject_unauth_pipelining

smtpd_sender_restrictions = reject_unknown_sender_domain

mydestination = localhost, example.com
mynetworks = 127.0.0.0/8
inet_interfaces = all

virtual_transport = lmtp:unix:private/dovecot-lmtp

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domain_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
  • 編集:前の質問をより具体的にしました。*

  • 更新:roundcubeをインストールし、クライアントを介してメールを送信しましたが、機能しましたが、外部サーバーで機能する認証を取得できません。

  • 更新#2:ポート587でSSL経由でサーバーに接続しようとしたときに、ログファイルにこれらの行が見つかりました

    warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
    connect from 93.88.82.66
    SSL_accept error from 93.88.82.66: lost connection
    lost connection after STARTTLS from 93.88.82.66
    disconnect from 93.88.82.66
    
  • 更新#3:postfixとdovecotを再起動した後に機能しました(リロードではありません)

1
Gasim

私はこれがあなたの質問に本当に答えていないことを知っています、しかし:

しないでください。

代わりにSTARTTLSでメールクライアントを使用してください。これは、あなたが言うように、サーバーで正常に機能します。暗号化されていない接続を介して資格情報を送信することはお勧めできません。

暗号化されていないSMTP認証を実行する理由をまったく述べていないので、推測できます— STARTTLS(または、TLSを最初から接続する別名SMTPS)を実行できないメールクライアントがある場合465)、サーバー側を弱めるのではなく、クライアント側のセキュリティ保護に取り組む必要があります。

4
JyrgenN