postfix smtp リモート - 接続タイムアウト

postfix smtp リモート - 接続タイムアウト

Amazon のリモート サーバーに Ubuntu サーバーをインストールしています。

Ubuntu システムで設定されたユーザー/パスワードごとにリモート接続で電子メールを送信できるようにしようとしています。つまり、システム内の各ユーザーは自分の資格情報を使用して電子メールを送信できます。

まず、Amazon のファイアウォールでポート 25 を開きました。

次に、次のファイルを構成しました。

postfix の master.cf

次の行を追加しました:

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_wrappermode=no
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth

その後、dovecotを設定しましたが、/etc/dovecot/conf.d/10-auth.confに次の行を追加しました。

disable_plaintext_auth = no
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
ssl=required
ssl_cert = </etc/ssl/certs/mailcert.pem
ssl_key = </etc/ssl/private/mail.key

これは私の main.cf の投稿です:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = ip-172-31-42-234.us-west-2.compute.internal
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = tux-in.com, ip-172-31-42-234.us-west-2.compute.internal, localhost.us-west-2.compute.internal, localhost,     myalcoholist.com, myalcohollist.com
virtual_alias_domains = myalcoholist.com myalcohollist.com tux-in.com
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
mailbox_command =
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

わかりました。これまでのところ順調です。dovecot をインストールしたので、imap と pop3 サーバーがあり、電子メールを正常に取得できます。

今、私は OSX デスクトップ上の電子メール クライアントを Amazon の SMTP サーバーに接続して電子メールを送信するように設定したいと考えています。

私が抱えている問題は、外部から SMTP サーバーに接続できないことです。Telnet を試みると、接続がタイムアウトになります。ローカル サーバーからポート 25 の 127.0.0.1 に Telnet することはできます。確認したところ、inet インターフェイスはすべてに設定されており、Amazon ファイアウォールのポート 25 は開いています。そのため、考えられる唯一のことは、何らかの理由で postfix 自体が外部接続をブロックしているということです。

postfix が外部からの接続をブロックしている場合は、設定で何かを忘れた可能性があります。

ちょっと困惑しています。この問題に関する情報があれば、ぜひ教えてください。

答え1

送信はTCP/587、SMTPはTCP/25

ファイアウォールの問題のようです。AWS サポートにポート 25 の開放を依頼する必要があるかもしれません。587 に Telnet して、認証付きの電子メールをローカル メールボックスに送信できるかどうかをテストしてください。

587 のリレー ホスト経由で送信し、サード パーティのスパム フィルターを介して 2525 などの代替ポートで取得する場合でも、電子メールは機能する可能性があります。

関連情報