SEやってます。主に趣味をメインにブログやっていきたいとおもいま
初めまして。外部受信について是非御教示願えませんか?GCPで外部メール受信が、成功していません。別記事に”内部送受信、外部からの受信は問題なくできたのだが” とあり、すがる思いでおります postfix+dovecotで構築しています。main.cf , master.cfの設定内容を載せておきます。もし、可能でしたら御教示よろしくお願いします。compatibility_level = 2mail_owner = postfixmyhostname = mail.xxxx.xxx.jpsmtp_helo_name = $myhostnamemydomain = xxxx.xxx.jpmyorigin = /etc/mailnameinet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliaseshome_mailbox = Maildir/smtpd_banner = $myhostname ESMTPsendmail_path = /usr/sbin/postfixnewaliases_path = /usr/bin/newaliasesmailq_path = /usr/bin/mailqsetgid_group = postdropmessage_size_limit = 10485760mailbox_size_limit = 0smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostnamesmtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,rejectrelayhost = [smtp.mailgun.org]:2525smtp_tls_security_level = encryptsmtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwdsmtp_sasl_security_options = noanonymous(略)smtp inet n - y - - smtpdsubmission inet n - y - - smtpd -o syslog_name=postfix/submission# -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated,reject# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject(略)
自分も勉強途中ですので、的確なアドバイスが出来るか分かりませんので、ご了承ください。>GCPで外部メール受信が、成功していません。ということは内部送受信は可能ということでしょうか。であれば外部からのメールサーバ名前解決で出来ていないのではないでしょうか。nslookupでmail.xxxx.xxx.jpの正しいIPアドレスが引けるか確認して頂くのはいかがでしょうか。後、外部サービスですと、https://www.cman.jpとかも便利です。◆main.cfで他に設定内容が違う箇所>myorigin = /etc/mailname→myorigin = $mydomain>alias_maps = hash:/etc/aliasesalias_maps = hash:/etc/aliases,hash:/etc/postfix/aliases◆master.cfで他に設定内容が違う箇所自分の環境では下記3つしか設定していません。後、関係ないと思いますが、chrootは[n]にしています。smtp inet n - y - - smtpdsubmission inet n - y - - smtpd-o smtpd_sasl_auth_enable=yes→smtp inet n - n - - smtpd→submission inet n - n - - smtpd後は、GCP環境とOSのFWポート開放あたりですかね。お役に立てるといいですが。
コメントありがとうございます。nslookupでは、IPアドレスが正しく表示され、大丈夫でした。main.cf/master.cfの違う箇所を合わせてみたのですが、依然、外部メールを受診しません。また、GCP環境と指摘いただいたので、自分の知識の範囲で確かめてみました。telnetで、どのポートが通っていれば良いのかわかりませんが、110は外部から通ります。telnet xxx.xxx.jp 110Trying 35.197.xx.xx...Connected to xxx.xxx.jp.Escape character is '^]'.+OK Dovecot ready.143はnetstatではLISTENと出ますが、telnetは通りません。25番はGCPがブロックしているからでしょうが、telnetは通りません。この先やる事が行き詰まり、困りました。。。netstat -nltActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp6 0 0 :::587 :::* LISTEN tcp6 0 0 :::110 :::* LISTEN tcp6 0 0 :::143 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 :::25 :::* LISTEN
>elnet xxx.xxx.jp 110>Trying 35.197.xx.xx...上記確認はメール以外の別環境から確認しているとのことでしょうか。できればGCP環境以外から確認した方がよいと思います。同じGCPの別環境からですと、内部アドレスを通して通信できてしまう場合があると思います。以前お伝えしたCMANさんのサイトから110ポートが空いてるかご確認いただくのはいかがでしょうか。外部からも110ポートへアクセス可能で、且つ内部送受信可能であれば、Dovecotの設定あたりが怪しいのではないでしょうか。
GCPの外からも、CMANさんからも110ポートへはアクセスできています。dovecot設定について、調べてみようと思います。ありがとうございます。
再検証中ではありますが、今の所、以下の理解をしました。原因は、GCPのfirewallルールで、受信25番ポート(上り)が開いていなかった事でした。上り(ingress)に tcp:25 を追加することで、外部メールを内部userが受信する事が出来ました。やはりGCP環境でした。アドバイス助かりました。ありがとうございました。2つくらい勉強しました。1. GCPがブロックしている(とマニュアルに書いてある)25番ポートは、メールを宛先SMTPに送出するときの下り(egress)のみである。上りは追加すれば通信可能。両方向ブロックされていると間違って解釈し、firewallルールに25番上りを追加していなかった。2. メール受信はSMTP(今回はpostfix)が25番ポートで行っている事。ずっと110番と勘違いしていた。多分、サーバー内user宛のメール受け取るだけならdovecotは不要という事かと思います。
FJさまわざわざ検証結果共有頂きありがとうございます。解決されたようで何よりです。勉強になりました。110番と25番ポートについては自分も勘違いしていました。自分で構築していた時はfwで関連ポートを全て開けて構築し、動作確認出来てから不要なポートを一個ずつ閉じて行きました。
初めまして。外部受信について是非御教示願えませんか?
返信削除GCPで外部メール受信が、成功していません。
別記事に”内部送受信、外部からの受信は問題なくできたのだが” とあり、すがる思いでおります
postfix+dovecotで構築しています。
main.cf , master.cfの設定内容を載せておきます。
もし、可能でしたら御教示よろしくお願いします。
compatibility_level = 2
mail_owner = postfix
myhostname = mail.xxxx.xxx.jp
smtp_helo_name = $myhostname
mydomain = xxxx.xxx.jp
myorigin = /etc/mailname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP
sendmail_path = /usr/sbin/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
message_size_limit = 10485760
mailbox_size_limit = 0
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
relayhost = [smtp.mailgun.org]:2525
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
(略)
smtp inet n - y - - smtpd
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
(略)
自分も勉強途中ですので、的確なアドバイスが出来るか分かりませんので、
返信削除ご了承ください。
>GCPで外部メール受信が、成功していません。
ということは内部送受信は可能ということでしょうか。
であれば外部からのメールサーバ名前解決で出来ていないのではないでしょうか。nslookupでmail.xxxx.xxx.jpの正しいIPアドレスが引けるか確認して頂くのはいかがでしょうか。後、外部サービスですと、https://www.cman.jpとかも便利です。
◆main.cfで他に設定内容が違う箇所
>myorigin = /etc/mailname
→myorigin = $mydomain
>alias_maps = hash:/etc/aliases
alias_maps = hash:/etc/aliases,hash:/etc/postfix/aliases
◆master.cfで他に設定内容が違う箇所
自分の環境では下記3つしか設定していません。
後、関係ないと思いますが、chrootは[n]にしています。
smtp inet n - y - - smtpd
submission inet n - y - - smtpd
-o smtpd_sasl_auth_enable=yes
→smtp inet n - n - - smtpd
→submission inet n - n - - smtpd
後は、GCP環境とOSのFWポート開放あたりですかね。
お役に立てるといいですが。
コメントありがとうございます。
返信削除nslookupでは、IPアドレスが正しく表示され、大丈夫でした。
main.cf/master.cfの違う箇所を合わせてみたのですが、依然、外部メールを受診しません。
また、GCP環境と指摘いただいたので、自分の知識の範囲で確かめてみました。
telnetで、どのポートが通っていれば良いのかわかりませんが、
110は外部から通ります。
telnet xxx.xxx.jp 110
Trying 35.197.xx.xx...
Connected to xxx.xxx.jp.
Escape character is '^]'.
+OK Dovecot ready.
143はnetstatではLISTENと出ますが、telnetは通りません。
25番はGCPがブロックしているからでしょうが、telnetは通りません。
この先やる事が行き詰まり、困りました。。。
netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp6 0 0 :::587 :::* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::25 :::* LISTEN
>elnet xxx.xxx.jp 110
返信削除>Trying 35.197.xx.xx...
上記確認はメール以外の別環境から確認しているとのことでしょうか。
できればGCP環境以外から確認した方がよいと思います。同じGCPの別環境からですと、内部アドレスを通して通信できてしまう場合があると思います。
以前お伝えしたCMANさんのサイトから110ポートが空いてるかご確認いただくのはいかがでしょうか。
外部からも110ポートへアクセス可能で、且つ内部送受信可能であれば、
Dovecotの設定あたりが怪しいのではないでしょうか。
GCPの外からも、CMANさんからも110ポートへはアクセスできています。dovecot設定について、調べてみようと思います。ありがとうございます。
返信削除再検証中ではありますが、今の所、以下の理解をしました。
返信削除原因は、GCPのfirewallルールで、受信25番ポート(上り)が開いていなかった事でした。上り(ingress)に tcp:25 を追加することで、外部メールを内部userが受信する事が出来ました。
やはりGCP環境でした。アドバイス助かりました。ありがとうございました。
2つくらい勉強しました。
1. GCPがブロックしている(とマニュアルに書いてある)25番ポートは、メールを宛先SMTPに送出するときの下り(egress)のみである。上りは追加すれば通信可能。
両方向ブロックされていると間違って解釈し、firewallルールに25番上りを追加していなかった。
2. メール受信はSMTP(今回はpostfix)が25番ポートで行っている事。ずっと110番と勘違いしていた。多分、サーバー内user宛のメール受け取るだけならdovecotは不要という事かと思います。
FJさま
返信削除わざわざ検証結果共有頂きありがとうございます。
解決されたようで何よりです。勉強になりました。
110番と25番ポートについては自分も勘違いしていました。
自分で構築していた時はfwで関連ポートを全て開けて構築し、
動作確認出来てから不要なポートを一個ずつ閉じて行きました。