CentOS 7でpostfix smtpのリレーポートを設定する

CentOS 7でpostfix smtpのリレーポートを設定する

CentOS 7 サーバーには postfix、dovecot、mailx がインストールされています。私のローカルdevboxで実行されているリモートThunderbirdクライアントからサーバーへのIMAP接続を作成できます。しかし、私の開発ボックスにローカルにインストールされたThunderbirdからサーバー経由で電子メールを送信することはできません。多くの研究の終わりに、私のdevbox ISPがポート25をブロックしたので、原因が見つかりました。だからメール送信ポートを465に変更したいです。これには、サーバーファイアウォールとpostfixへの変更とdevbox Thunderbirdの変更が含まれます。

この質問は、ファイアウォールによって状況が複雑になるCentOS 7でこれを行う方法を尋ねているので、stackexchangeネットワークの同様の質問とは異なります。

単にSMTPポートを変更することの問題は、他のメールサーバーが互いに電子メールを送信するときにポート25を使用することです。 smtpポートを465に変更すると、誰も私のサーバーに電子メールを送信できません。 私のアウトバウンド電子メールがポート465を通過し、ポート25が他のメールサーバーからメールを受信するために開かれるように、postfix、Firewalld、およびThunderbirdをどのように変更しますか?

特定の構成ファイルの特定の構文が必要です。私はすでに知っています答えはリレーホストの設定に関連しています。しかし、CentOS 7ではどのように設定しますか?

これまで私がしたことは次のとおりです。

465 inet n - - - - smtpd1.)次の行を次に追加します/etc/postfix/master.cf

   # =========================================  
   # service type  private unpriv  chroot  wakeup  maxproc command + args
   #               (yes)   (yes)   (yes)   (never) (100)  
   # ====================================================================  
    smtp      inet  n   -   n   -   -   smtpd  
    465   inet  n   -   -   -   -   smtpd  

/usr/lib/firewalld/services/smtp.xml2.) 次に、次のように読み込み、ファイアウォールのSMTPポート番号を465に変更しました。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Mail (SMTP)</short>
  <description>This option allows incoming SMTP mail delivery. If you need to allow remote hosts to connect directly to your machine to deliver mail, enable this option. You $
  <port protocol="tcp" port="465"/>
</service>

3.) それでもサーバー上にある状態で、それから入力するとsystemctl stop postfixすべてsystemctl start postfixsystemctl status postfixうまくいきます。そうすれば、firewall-cmd --reloadタイピングに問題はありませんでした。

4.) 次に、devboxのThunderbirdから出るsmtpポートを465に変更しました。

5.) サーバーで @derobert の提案に従って、tcpdump -n -i any tcp port 465私の devbox Thunderbird と入力し、使用してサーバー経由で電子メールを送信し、サーバーから以下を印刷してみました。

tcpdump -n -i any tcp port 465
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
18:07:36.276193 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [S.], seq 3232257854, ack 2935370285, win 14480, options [mss 1460,sackOK,TS val 979486294 ecr 14200749,nop,wscale 7], length 0
18:07:36.361712 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 1, win 115, options [nop,nop,TS val 14200832 ecr 979486294], length 0
18:07:36.362152 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [P.], seq 1:43, ack 1, win 114, options [nop,nop,TS val 979486380 ecr 14200832], length 42
18:07:36.366824 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [P.], seq 1:186, ack 1, win 115, options [nop,nop,TS val 14200832 ecr 979486294], length 185
18:07:36.366865 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [.], ack 186, win 122, options [nop,nop,TS val 979486385 ecr 14200832], length 0
18:07:36.454916 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 43, win 115, options [nop,nop,TS val 14200920 ecr 979486380], length 0
18:07:36.454961 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [P.], seq 43:195, ack 186, win 122, options [nop,nop,TS val 979486473 ecr 14200920], length 152
18:07:36.539237 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 195, win 123, options [nop,nop,TS val 14201009 ecr 979486473], length 0
18:09:20.466757 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [F.], seq 186, ack 195, win 123, options [nop,nop,TS val 14304941 ecr 979486473], length 0
18:09:20.467113 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [F.], seq 195, ack 187, win 122, options [nop,nop,TS val 979590485 ecr 14304941], length 0
18:09:20.550693 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 196, win 123, options [nop,nop,TS val 14305025 ecr 979590485], length 0
^C
11 packets captured
12 packets received by filter
0 packets dropped by kernel  

6.)もう一度@derobertの提案に従って、devboxからnc my.server.ip.addr 465 < /dev/null端末に応答を入力して印刷しました220 mydomain.com ESMTP Postfix

Thunderbirdの送信サーバー(SMTP)設定は次のとおりです。

Description:           <Not Specified>  
Server Name:           mydomain.com  
Port:                  465
User Name:             me
Authentication Method: Normal Password
Connection Security:   SSL/TLS  

ただし、Thunderbirdの接続時間がまだ超過したため、電子メールは送信されません。また何をすべきですか?

注:/usr/lib/firewalld/services/smtp.xmlポート25を表示するように変更し、上記の他の手順5で他のすべての項目を同じままにしたときにサーバーから電子メールを受信する機能を再取得しましたが、サーバーを介して電子メールを送信することはできませんでした。


編集する:


@jsbillingsはmaster.cfに送信ポートを定義することを提案しました。さらに進化するために、postconf -M端末にmaster.cfの関連内容を入力して印刷しました。まだメールを送信できません。しかし、今日この問題の解決中に変更した結果は次のとおりです。

smtp       inet  n       -       n       -       -       smtpd
587        inet  n       -       -       -       -       smtpd
submission inet  n       -       -       -       -       smtpd 
-o   smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes 
-o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth 
-o smtpd_sasl_security_options=noanonymous 
-o smtpd_sasl_local_domain=$myhostname 
-o smtpd_client_restrictions=permit_sasl_authenticated,reject 
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual 
-o smtpd_sender_restrictions=reject_sender_login_mismatch 
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
pickup     unix  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache

ベストアンサー1

他の人がポート25以外のポートでリッスンするSMTPサーバーを持つことを期待することはできません。 ISPがアウトバウンドポート25をブロックしている場合は、ISPを介してメールを中継するようにpostfixシステムを設定できます。Comcastのこの例では

ただし、正直にアウトバウンドポート25をブロックするISPで独自のメールサービスを実行している場合は、ポート25をブロックしない商用インターネットプロバイダにサービスを切り替えるか、メールをホスティングに移動することをお勧めします。 SMTP プロバイダーを許可します。

編集する:

これで質問した内容をよりよく理解するようになりました。 SMTPサーバーがメールを受け入れるようにしたい場合そしてSMTP 送信ホストです。 2番目のサービスを追加し/etc/postfix/master.cfてSASL認証を設定する必要があります。 Dovecot Wikiには構成例このプロセスのために。

おすすめ記事