以前にroot@localhost.localdomain宛のメールで
お世話になった、たこです。その節はありがとうございました。
今回、自宅メールサーバー(FC5)を
postfix + Auth + clamd + spamassassin + amavisd-new
+ submission + TLS(SSL?)
としてみようと調査しているのですがどうも良くわかりません。
(某掲示板でも質問しましたが明確な解答が得られません)
TLS(SSL?)を追加出来る場合?
メールソフト送信ポートの指定は465なのでしょうか?
(submissionで587を指定しているので変更できない)
もしかして送信側はSSL化できなくて受信側の995番ポート
のみSSL化できるということでしょうか?
メールの配信される仕組みがよくわかってない質問かも
知れませんが教えていただけないでしょうか。
> 今回、自宅メールサーバー(FC5)を
> postfix + Auth + clamd + spamassassin + amavisd-new
> + submission + TLS(SSL?)
> としてみようと調査しているのですがどうも良くわかりません。
> (某掲示板でも質問しましたが明確な解答が得られません)
> TLS(SSL?)を追加出来る場合?
> メールソフト送信ポートの指定は465なのでしょうか?
> (submissionで587を指定しているので変更できない)
> もしかして送信側はSSL化できなくて受信側の995番ポート
> のみSSL化できるということでしょうか?
> メールの配信される仕組みがよくわかってない質問かも
> 知れませんが教えていただけないでしょうか。
おやじも一番最初は混乱しましたが、メールはSMTP(クライアントもしくは他のSMTPサーバからメール受信し、ローカルのメールBOXもしくは他のSMTPサーバに中継するメール配送システム)の話と、POP3/IMAP(クライアントから指定されたユーザのローカルのメールBOXからメールを読み出し配送するシステム)の話とでは全く機能が違うので、SSL化もそれぞれで考えることです。とりあえずは995番の話は無関係な話です。
SMTPのデフォルトはご存知のとおり25番ポートで、クライアントもしくは他のSMTPサーバからメール到着を待ち受けています。 ところが25番では都合が悪い場合があり、その時に代替で使用するのがsubmissionポート(587)です。最近、outbound Port 25 blocking で他のoutbound Port 25 blockingを導入したISP配下から自社のSMTPを使用できるように準備されることが多くなりましたよね。実はここで言うISPというのが自分の自宅サーバの場合も同じことが言え、外部から自宅サーバのSMTPにつなごうとしても、外部側のISPで、outbound Port 25 blockingを導入するとつながらなくなるので、自宅サーバでもsubmissionポートを準備する方が増えていると思います。但し、submissionポートはあくまでノーマルsmtpのポート違いでしかなく、SSL化はできないので注意が必要です。
一方、Postfixの例ですがSSL化を行うと、25番ポートでのssl化(startssl)ができます。更に、master.cfでsmtpsの設定を行うと、465番ポートでのsmtps(SMTP over ssl)をサポートできます。25番ポートでのSSL化(startssl)は、下記のような問題が出ることがあるので注意が必要なのと、outbound Port 25 blocking対策にはならないので、465番ポートでのsmtpsが外部からのアクセスとしては最適と考えます。
http://www.aconus.com/~oyaji/faq/postfix_faq2.htm
整理すると、以下のとおりです。おやじは上3つで動作させ、実質は1/3番目を使用してます。
・25 : ノーマルのSMTP
・25 + SSL : startssl
・465 : smtps
・587 : 一番上のノーマルのSMTPのポート違い
>とりあえずは995番の話は無関係な話です。
>但し、submissionポートはあくまでノーマルsmtpのポート違いでしかなく、SSL>化はできないので注意が必要です。
>smtps(SMTP over ssl)をサポートできます。25番ポートでのSSL化(startssl)は、下記のような問題が出ることがあるので注意が必要なのと、outbound Port 25 blocking対策にはならないので、465番ポートでのsmtpsが外部からのアクセスとしては最適と考えます。
> 整理すると、以下のとおりです。おやじは上3つで動作させ、実質は1/3番目を使用してます。
>
> ・25 : ノーマルのSMTP
> ・25 + SSL : startssl
> ・465 : smtps
> ・587 : 一番上のノーマルのSMTPのポート違い
大変勉強になるご回答ありがとうございます。これを参考に設定してみました。
それで送受信をしてみてログを取ってみました。これで正常な状態と判断できるでしょうか?
Jul 8 11:55:06 hoge dovecot: pop3-login: Login: user=<hoge>, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, TLS
Jul 8 11:55:07 hoge dovecot: POP3(hoge): Disconnected: Logged out top=0/0, retr=2/13904, del=0/2, size=13870
Jul 8 11:57:14 hoge postfix/smtpd[10016]: connect from hoge.test.net[127.0.0.1]
Jul 8 11:57:14 hoge postfix/smtpd[10016]: AC24E2B8A95: client=hoge.test.net[127.0.0.1], sasl_method=PLAIN, sasl_username=hoge
Jul 8 11:57:14 hoge postfix/cleanup[10020]: AC24E2B8A95: message-id=<20060708115713.673ae39a.hoge@hoge.test.net>
Jul 8 11:57:14 hoge postfix/smtpd[10016]: disconnect from hoge.test.net[127.0.0.1]
Jul 8 11:57:14 hoge postfix/qmgr[9540]: AC24E2B8A95: from=<hoge@hoge.test.net>, size=567, nrcpt=1 (queue active)
Jul 8 11:57:15 hoge clamd[2590]: SelfCheck: Database status OK.
Jul 8 11:57:17 hoge postfix/smtpd[10026]: connect from hoge.test.net[127.0.0.1]
Jul 8 11:57:17 hoge postfix/smtpd[10026]: 9B8D02B8A9E: client=hoge.test.net[127.0.0.1]
Jul 8 11:57:17 hoge postfix/cleanup[10020]: 9B8D02B8A9E: message-id=<20060708115713.673ae39a.hoge@hoge.test.net>
Jul 8 11:57:17 hoge postfix/qmgr[9540]: 9B8D02B8A9E: from=<hoge@hoge.test.net>, size=1015, nrcpt=1 (queue active)
Jul 8 11:57:17 hoge amavis[9567]: (09567-01) Passed CLEAN, LOCAL [127.0.0.1] [127.0.0.1] <hoge@hoge.test.net> -> <hogejp@yahoo.co.jp>, Message-ID: <20060708115713.673ae39a.hoge@hoge.test.net>, mail_id: OVDrVA0guihk, Hits: -0.597, 2495 ms
Jul 8 11:57:17 hoge postfix/smtpd[10026]: disconnect from hoge.test.net[127.0.0.1]
Jul 8 11:57:17 hoge postfix/smtp[10022]: AC24E2B8A95: to=<hogejp@yahoo.co.jp>, relay=127.0.0.1[127.0.0.1], delay=3, status=sent (250 2.6.0 Ok, id=09567-01, from MTA([127.0.0.1]:10025): 250 Ok: queued as 9B8D02B8A9E)
Jul 8 11:57:17 hoge postfix/qmgr[9540]: AC24E2B8A95: removed
受信側には TLSという文字が見えて動作していると思うのですが送信側はこのログからは
判断できないと思うのですが何か確認方法はあるでしょうか?
送信側に関係あると思う設定はmain.cfに
#TLSの設定
smtpd_tls_cert_file = /etc/postfix/certs/server.pem
smtpd_tls_key_file = /etc/postfix/certs/server.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
を追加しました。master.cfには
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
submission inet n - n - - smtpd
-o smtpd_etrn_restrictions=reject
-o smtpd_sasl_auth_enable=yes
#628 inet n - n - - qmqpd
こんな感じで設定しています。見にくくて申し訳ないのですがよろしく
お願いします。
掲題のとおりです。サーバはどちらでも動作しますので、クライアントの設定に従うだけです。
結論から言うと、ログからみるとSMTPはSSL化されてません。
頭の3行だけ示しますが、つながってすぐにTLSコネクションの設定が走りますが、たこさんのログには2/3行目が無いので通常接続です。
Jul 8 12:58:03 server postfix/smtpd[21045]: connect from oyaji.aconus.com[192.168.1.103]
Jul 8 12:58:03 server postfix/smtpd[21045]: setting up TLS connection from oyaji.aconus.com[192.168.1.103]
Jul 8 12:58:03 server postfix/smtpd[21045]: TLS connection established from oyaji.aconus.com[192.168.1.103]: TLSv1 with cipher RC4-MD5 (128/128 bits)
下記の一番下を参考に。
http://www.aconus.com/~oyaji/mail2/smtp-auth-tls.htm
> 結論から言うと、ログからみるとSMTPはSSL化されてません。
メールソフトの設定が悪いのか?それともpostfixの設定か判断がつきません。
メールソフトはSylpheedを使っています。設定は下の様にしています。
SMTPの接続にSSLを使用
非ブロッキングSSLを使用
SMTPポートを指定 465
それとテストはサーバー自身で行っていてかつmynetworks_style = host
としているので、うまくいかないのか?この状態ではメールを送信するごとに
/etc/postfix/smtpd_scache.dbのファイルが更新されています。
試しに上記設定でSMTPの接続にSSLを使用を
SSLセッション開始にSTARTTLSコマンドを使用
にするとエラーになります。
Jul 8 14:12:54 hoge postfix/smtpd[14189]: SSL_accept error from hoge.test.net[127.0.0.1]: -1
どうしたものか?何かヒントはないでしょうか?(申し訳ないです。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
今眺めていて思ったのですがおやじさんのログの最初部分で接続を求めている
相手は192.168.1.103なのですが私の方はhoge.test.net[127.0.0.1]と
なってますね?...関係ないかな...
その後、同じnetwork内にあるwindowsマシンで
Outlook Expressに設定を行い、やってみたのですが
送信はできるもののSLL化のログは出ませんでした。?
> その後、同じnetwork内にあるwindowsマシンで
> Outlook Expressに設定を行い、やってみたのですが
> 送信はできるもののSLL化のログは出ませんでした。?
http://www.aconus.com/~oyaji/mail2/smtp-auth-tst.htm
で、やってみてはどうですか?
クライアントでSSLの設定をしてSSLのログもエラーも出ずにうまくいくとは思えません。
「250-STARTTLS」が出ているかどうか?
パケットキャプチャすれば、はっきりしますが・・・。
# telnet localhost 587
Trying 127.0.0.1...
Connected to hoge.test.net (127.0.0.1).
Escape character is '^]'.
220 hoge.test.net ESMTP Postfix
EHLO localhost
250-hoge.test.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250 8BITMIME
AUTH PLAIN XXXXXXXXXXXXXXXXXXXXXXXXXXXX
235 Authentication successful
quit
221 Bye
Connection closed by foreign host.
# telnet localhost 25
Trying 127.0.0.1...
Connected to hoge.test.net (127.0.0.1).
Escape character is '^]'.
220 hoge.test.net ESMTP Postfix
EHLO localhost
250-hoge.test.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250 8BITMIME
25は出来ないとまずいのでしょうか?25の変わりが587ですよね?
> # telnet localhost 587
> Trying 127.0.0.1...
> Connected to hoge.test.net (127.0.0.1).
> Escape character is '^]'.
> 220 hoge.test.net ESMTP Postfix
> EHLO localhost
> 250-hoge.test.net
> 250-PIPELINING
> 250-SIZE 10240000
> 250-VRFY
> 250-ETRN
> 250-STARTTLS
> 250-AUTH PLAIN LOGIN
> 250-AUTH=PLAIN LOGIN
> 250 8BITMIME
> AUTH PLAIN XXXXXXXXXXXXXXXXXXXXXXXXXXXX
> 235 Authentication successful
> quit
> 221 Bye
> Connection closed by foreign host.
> # telnet localhost 25
> Trying 127.0.0.1...
> Connected to hoge.test.net (127.0.0.1).
> Escape character is '^]'.
> 220 hoge.test.net ESMTP Postfix
> EHLO localhost
> 250-hoge.test.net
> 250-PIPELINING
> 250-SIZE 10240000
> 250-VRFY
> 250-ETRN
> 250-STARTTLS
> 250 8BITMIME
>
> 25は出来ないとまずいのでしょうか?25の変わりが587ですよね?
No.6150をチャント読まれましたか? 587ではSSLは動きませんと書いたはずですよね。SSL化しないなら良いですが。25がまともに動かないSMTPは動かしていること自体セキュリティ上も問題では?(つまり、思い通り設定できていないと言うことは、何が起きてもおかしくないという意味で・・)
後、25番で
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
が出ていないのに気がついてますか? smtp-authで設定ミスがありますね。
リレーの試験は済んでますか?
http://www.aconus.com/~oyaji/security/relay-mail.htm
不正中継テストはhttp://www.rbl.jp/ですんでます。
原因がわかりました。
smtpd_ と smtp_ の違いでした。
今回見た本家のサイトで全部smtp_xxxとなっていたので
設定ファイルの中身をすべて直したら....この不始末です。
FC5?の場合はsmtpd_でないとだめみたいです。
それで改めてtelnet を確認したところ
25でもokでした。すいません。確認し直します。
.
> 不正中継テストはhttp://www.rbl.jp/ですんでます。
> 原因がわかりました。
> smtpd_ と smtp_ の違いでした。
> 今回見た本家のサイトで全部smtp_xxxとなっていたので
> 設定ファイルの中身をすべて直したら....この不始末です。
> FC5?の場合はsmtpd_でないとだめみたいです。
FC5かどうかは関係なく、smtpd_xxx (サーバ側の設定)を設定しないと駄目です。やはりSMTPがどういうものかをイメージとしてはっきり理解するようにしないと、いろいろ問題がでますよ。
smtp_xxxはPostfixが他のSMTPサーバに中継(送信)する場合のクライント側動作に関する設定で、全く意味が違います。例えば、下記の後半のような場合に設定するものです。
http://www.aconus.com/~oyaji/faq/postfix_faq3.htm
> FC5かどうかは関係なく、smtpd_xxx (サーバ側の設定)を設定しないと駄目です。やはりSMTPがどういうものかをイメージとしてはっきり理解するようにしないと、いろいろ問題がでますよ。
> smtp_xxxはPostfixが他のSMTPサーバに中継(送信)する場合のクライント側動作に関する設定で、全く意味が違います。例えば、下記の後半のような場合に設定するものです。
>
> http://www.aconus.com/~oyaji/faq/postfix_faq3.htm
ありがとうございます。これを読んで新たに間違い?を発見しました。
もしかしてこれは
relayhost + sasl auth で ISPのMTAを経由した送信を行う設定
(単なるISPのサーバーを利用してメールを送信するのではなく
そこに認証機能を組み込むもの)
のときはsmtp_xxxとしないとまずいということなんですか?
だとすると私のサーバー根本的に間違えているかもしれません。
やはり少し冷静になり、自分のPostfixは何をしていて、インターネット上のメールシステムとどのように関わっているのか、他のSMTPサーバ等の関係を含めてジックリ考えてみたほうが良いですね。いっぺんにいろいろな情報がインプットされて少し混乱しているように見えます。
> > FC5かどうかは関係なく、smtpd_xxx (サーバ側の設定)を設定しないと駄目です。やはりSMTPがどういうものかをイメージとしてはっきり理解するようにしないと、いろいろ問題がでますよ。
> > smtp_xxxはPostfixが他のSMTPサーバに中継(送信)する場合のクライント側動作に関する設定で、全く意味が違います。例えば、下記の後半のような場合に設定するものです。
> >
> > http://www.aconus.com/~oyaji/faq/postfix_faq3.htm
>
> ありがとうございます。これを読んで新たに間違い?を発見しました。
> もしかしてこれは
> relayhost + sasl auth で ISPのMTAを経由した送信を行う設定
> (単なるISPのサーバーを利用してメールを送信するのではなく
> そこに認証機能を組み込むもの)
> のときはsmtp_xxxとしないとまずいということなんですか?
> だとすると私のサーバー根本的に間違えているかもしれません。
今一、書かれている内容が理解しづらいのですが、何も間違っていないのではないですか? まあ、間違っているといわれていること自体が間違っていると思われるので間違っているのかもしれませんが???
前レスのとおり、Postfx(SMTP)にはクライアントや他のSMTPサーバからメールを受け取るサーバとしての側面と、受け取ったメールを他のSMTPサーバに配送するときのクライアント(このときは、Postfixはある意味でOutlookと全く同じ動作をする)としての側面があることを理解してください。上記のおやじの記事は後者の側面の話で、携帯電話対策やOutbound port 25 Blocking対策で契約しているISPのSMTPサーバに中継するときに、ISPによっては認証が必須になっていて単にtransportやrelayhostで転送しただけ(つまり何もしていないOE相当)では、送信できないときのための対策です。つまり、ISPのSMTPサーバがSMTP-AUTHを導入しているなら、OEでSMTP-AUTHの設定をするのと同様に自宅のPostfixのクライアントにSMTP-AUTHのクライアント側機能を設定しないと駄目なのでその設定方法を示したものです。
たこさんが上記で言っている「relayhost + sasl auth で ISPのMTAを経由した送信を行う設定」の「sasl auth」は自分のpostfixのことですよね。自宅のPostfixがSMTP-AUTHを導入しているかどうかは、自分のPostfixのサーバ側の話なのでこの話とは全く関係ない話です。
このような認証が必須のISPの具体的な例として、Yah○○がありますが、OE等で認証設定せずに送信できるISPは全く関係ない話です。
因みに、Outbound port 25 Blocking対策でsubmissionポートを準備しているISPはSMTP-AUTHが必須になっていますが、上記設定はsubmissionポート宛てでは動作しません。まあ、そういう使い方は通常はないと思いますので、実害はあまりないと思いますが・・・。
Jul 9 09:07:50 hogea postfix/anvil[3973]: statistics: max connection rate 1/60s for (smtp:220.106.62.74) at Jul 9 09:04:29Jul 9 09:07:50 hogea postfix/anvil[3973]: statistics: max connection count 1 for (smtp:220.106.62.74) at Jul 9 09:04:29
Jul 9 09:07:50 hogea postfix/anvil[3973]: statistics: max cache size 1 at Jul 9 09:04:29
Jul 9 09:08:58 hogea dovecot: pop3-login: Login: user=<test>, method=PLAIN, rip=::ffff:220.106.62.74, lip=::ffff:192.168.11.3, TLS
Jul 9 09:08:58 hogea dovecot: POP3(test): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Jul 9 09:09:19 hogea postfix/smtpd[4071]: warning: 220.106.62.74: address not listed for hostname hogea.test.net
Jul 9 09:09:19 hogea postfix/smtpd[4071]: connect from unknown[220.106.62.74]
Jul 9 09:09:19 hogea postfix/smtpd[4071]: setting up TLS connection from unknown[220.106.62.74]
Jul 9 09:09:19 hogea postfix/smtpd[4071]: TLS connection established from unknown[220.106.62.74]: TLSv1 with cipher RC4-MD5 (128/128 bits)
Jul 9 09:09:19 hogea postfix/smtpd[4071]: EDE732B8B41: client=unknown[220.106.62.74], sasl_method=LOGIN, sasl_username=testJul 9 09:09:20 hogea postfix/cleanup[4075]: EDE732B8B41: message-id=<000b01c6a2eb$f938c7a0$060ba8c0@hogeap4>
Jul 9 09:09:20 hogea postfix/qmgr[3455]: EDE732B8B41: from=<test@hogea.test.net>, size=1341, nrcpt=1 (queue active)
Jul 9 09:09:20 hogea postfix/smtpd[4071]: disconnect from unknown[220.106.62.74]
Jul 9 09:09:21 hogea postfix/smtpd[4079]: connect from hogea.test.net[127.0.0.1]
Jul 9 09:09:21 hogea postfix/smtpd[4079]: 077452B8B81: client=hogea.test.net[127.0.0.1]
Jul 9 09:09:21 hogea postfix/cleanup[4075]: 077452B8B81: message-id=<000b01c6a2eb$f938c7a0$060ba8c0@hogeap4>
Jul 9 09:09:21 hogea postfix/qmgr[3455]: 077452B8B81: from=<test@hogea.test.net>, size=1789, nrcpt=1 (queue active)
Jul 9 09:09:21 hogea amavis[3510]: (03510-02) Passed CLEAN, [220.106.62.74] [220.106.62.74] <test@hogea.test.net> -> <hogeajp@yahoo.co.jp>, Message-ID: <000b01c6a2eb$f938c7a0$060ba8c0@hogeap4>, mail_id: tJSZMN9numOf, Hits: -0.96, 1030 ms
Jul 9 09:09:21 hogea postfix/smtpd[4079]: disconnect from hogea.test.net[127.0.0.1]
Jul 9 09:09:21 hogea postfix/smtp[4076]: EDE732B8B41: to=<hogeajp@yahoo.co.jp>, relay=127.0.0.1[127.0.0.1], delay=2, status=sent (250 2.6.0 Ok, id=03510-02, from MTA([127.0.0.1]:10125): 250 Ok: queued as 077452B8B81)
Jul 9 09:09:21 hogea postfix/qmgr[3455]: EDE732B8B41: removed
Jul 9 09:09:21 hogea postfix/smtp[4080]: 077452B8B81: to=<hogeajp@yahoo.co.jp>, relay=mx.sannet.ne.jp[134.180.49.101], delay=0, status=sent (250 Ok: queued as 6BABA26A0)
Jul 9 09:09:21 hogea postfix/qmgr[3455]: 077452B8B81: removed
いろいろ教えていただきありがとうございます。感謝です。
なんとなく考えていたように動き始めました。送信側にもTLSがかかったようです。
>前レスのとおり、Postfx(SMTP)にはクライアントや他のSMTPサーバからメールを受け取るサーバとしての側面と、受け取ったメールを他の SMTPサーバに配送するときのクライアント(このときは、Postfixはある意味でOutlookと全く同じ動作をする)としての側面があることを理解してください。
自分の考えていることを伝えるのが下手なのと理解力の不足で申し訳ないです。
上記の意味は言い方を変えると下のような事ですよね?
例えばクライアントがOEで自宅メールサーバーにメールを送信依頼してくる。
その時にまずクライアント→メールサーバー間で認証を行う。(smtpd_)
このメールサーバーが接続されている回線は動的IPでありDNSを利用していてかつ
ISPではOutbound port 25 Blocking対策をしている。
そこで自宅メールサーバーはmain.cfでreayhost=ISPメールサーバーを指定する。
しかし単にrelayhostで転送しただけでは、送信できないので(smtp_)
自宅メールサーバーは587ポートを使ってISPメールサーバーとの間で認証を取り
メールをISPメールサーバーを通して送信してもらう。
main.cfに追加の設定
#SMTP Authを有効にする。
smtpd_sasl_auth_enable = yes
#OutLookなどのためにLOGIN認証を使用する
broken_sasl_auth_clients = yes
#リレ-制限の設定
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
content_filter = smtp-amavis:[127.0.0.1]:10024
#TLSの設定
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/certs/server.pem
smtpd_tls_key_file = /etc/postfix/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_loglevel = 1
#ISP SMTP Authを有効にする。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus
こんな感じですか?(わかりにくくてすいません。)
やはり、もう少し落ち着いて考えるようにしたほうが・・。
> >前レスのとおり、Postfx(SMTP)にはクライアントや他のSMTPサーバからメールを受け取るサーバとしての側面と、受け取ったメールを他の SMTPサーバに配送するときのクライアント(このときは、Postfixはある意味でOutlookと全く同じ動作をする)としての側面があることを理解してください。
>
> 自分の考えていることを伝えるのが下手なのと理解力の不足で申し訳ないです。
> 上記の意味は言い方を変えると下のような事ですよね?
> 例えばクライアントがOEで自宅メールサーバーにメールを送信依頼してくる。
> その時にまずクライアント→メールサーバー間で認証を行う。(smtpd_)
> このメールサーバーが接続されている回線は動的IPでありDNSを利用していてかつ
> ISPではOutbound port 25 Blocking対策をしている。
> そこで自宅メールサーバーはmain.cfでreayhost=ISPメールサーバーを指定する。
> しかし単にrelayhostで転送しただけでは、送信できないので(smtp_)
> 自宅メールサーバーは587ポートを使ってISPメールサーバーとの間で認証を取り
> メールをISPメールサーバーを通して送信してもらう。
おやじは、前レスの最後に
「因みに、Outbound port 25 Blocking対策でsubmissionポートを準備しているISPはSMTP-AUTHが必須になっていますが、上記設定はsubmissionポート宛てでは動作しません。まあ、そういう使い方は通常はないと思いますので、実害はあまりないと思いますが・・・。」
と書きました。従って、上記のたこさんの最後の段落はおやじができないといったことをやろうとしているので、おやじの説明を理解していただけていないとしか思えません。
何でこうなるかを考えてみましたが、恐らくsubmissionポートの使い方というか意味がわかっていないので、混乱しているのではないかと思います。
submissionポートは、利用できないわけではありませんが、そもそも自社のOutbound port 25 Blocking対策のために用意されたものではないということです。ISPの契約ユーザに契約回線からSMTPサーバを使う場合は、自宅サーバで家庭内の端末から使うのと同じで明らかに自分のユーザとわかっているので、認証行為は基本的不要であり多くのISPがそうなっています。おやじが加入しているAsahi-netもNiftyもそうです。
では、submissionポートは何のためにあるかですが、これは契約回線ではない回線につながっている端末から契約ISPのSMTPサーバを使う場合、端末がつながっているISP側でOutbound port 25 Blocking対策を実施されると、その端末からは25番ポートでつなぐことができなくなってしまうので、その代替ポートとしてsubmissionポート(587)を用意しているのです。当然、submissionポートでつながってくる端末は回線では自社ユーザか識別できないので、認証が必須になっているのです。おやじの場合で言えば、Asahi-netの回線からNiftyのSMTPサーバを使う場合がこれに該当しますが。
以上から、自宅サーバの契約ISPがOutbound port 25 Blocking対策を導入しているなら、reayhost=ISPメールサーバーを指定し25番で転送するだけでおしまいです。
一方、自宅サーバを規約ISP以外の外部から使用する場合は、自宅サーバで25以外のsubmissionポート(587)もしくはsmtps(465)をサポートしないと、端末側ISPでOutbound port 25 Blocking対策を導入されるとつながらなくなってしまいます。
これで、すっきりしませんか?
一度、Outbound port 25 Blocking対策についてまとめようかとも思ったのですが、いろいろ情報があるので保留してますが、自分の契約ISPが導入した場合と、外部から自宅サーバを使う場合に外部側のISPが導入した場合の2つの対策が必要なことをうまく整理できていない方が結構いるようですね。(FAQに超簡単に書いてはあるのですが・・・。)
> やはり、もう少し落ち着いて考えるようにしたほうが・・。
面目ないです。...申し訳ないです。
> 「因みに、Outbound port 25 Blocking対策でsubmissionポートを準備しているISPはSMTP-AUTHが必須になっていますが、上記設定はsubmissionポート宛てでは動作しません。まあ、そういう使い方は通常はないと思いますので、実害はあまりないと思いますが・・・。」
submissionポートについて認識が間違っていました。すいません。
それでいくと前のスレッドで書いた現在の私の設定で間違っている部分は
ありますか?(昨日からぶっ続けで、冷静ではない様でわかっていないかも...
それにつき合っていただいてすいません。)
> submissionポートは、利用できないわけではありませんが、そもそも自社のOutbound port 25 Blocking対策のために用意されたものではないということです。
> 一方、自宅サーバを規約ISP以外の外部から使用する場合は、自宅サーバで25以外のsubmissionポート(587)もしくはsmtps(465)をサポートしないと、端末側ISPでOutbound port 25 Blocking対策を導入されるとつながらなくなってしまいます。
> これで、すっきりしませんか?
> 自分の契約ISPが導入した場合と、外部から自宅サーバを使う場合に外部側のISPが導入した場合の2つの対策が必要なことをうまく整理できていない方が結構いるようですね。(FAQに超簡単に書いてはあるのですが・・・。)
理解したか?書いてみると
ケース1
自分の契約ISPがOutbound port 25 Blockingを導入した場合の対策は
reayhost=ISPメールサーバーを指定し25番で転送する。
ケース2
外部から自宅サーバを使う場合に外部側のISPが導入した場合の対策は
submissionポートを利用して認証するように設定する。
具体的には以下の部分
#ISP SMTP Authを有効にする。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus
ここまでありがとうございます。感謝です。
今から少し休んでから、再確認したいと思います。
もし変な部分がありましたらビシビシ御指摘をお願いいたします。
全て、以前に書いてあることですが、追記してみます。現状のままだと辛口で50点
ぐらいでしょうか?
> 理解したか?書いてみると
> ケース1
> 自分の契約ISPがOutbound port 25 Blockingを導入した場合の対策は
> reayhost=ISPメールサーバーを指定し25番で転送する。
ケース1
自分の契約ISPがOutbound port 25 Blockingを導入した場合の対策は
reayhost=ISPメールサーバーを指定し25番で転送する。
但し、Yah○○のような通常でもSMTPを使用する場合に認証を必要とするISPでは、
認証対策が必要である。認証方法がSMTP-AUTHの場合は、下記の方法で、SMTP
クライアントで認証するように設定すれば対応できる。POP before SMTPの場合は
Postfix単体では対処できないので、別途対策が必要である。
http://www.aconus.com/~oyaji/faq/postfix_faq3.htm
> ケース2
> 外部から自宅サーバを使う場合に外部側のISPが導入した場合の対策は
> submissionポートを利用して認証するように設定する。
> 具体的には以下の部分
> #ISP SMTP Authを有効にする。
> smtp_sasl_auth_enable = yes
> smtp_sasl_password_maps = hash:/etc/postfix/saslpass
> smtp_sasl_type = cyrus
ケース2の下半分はケース1の対応なので、これは誤りです。
ケース2
外部から自宅サーバを使う場合に外部側のISPが導入した場合の対策は
25番ポート以外のポートでクライアントからの接続を受け付けられればよく、
対策としては2つの方法がある。一つはsubmissionポート(587)を利用する方法
であり、もう一つはSMTPS(465)を利用する方法であり両方同時にサポートできる。
いづれも外部からの接続なので、SMTP-AUTHでの認証は必須である。
submissionポート(587)を利用する具体的な方法は、25番ポートでSMTP-AUTHや
SSL対応ができていることを前提にすれば、master.cfで下記のようにsubmission
ポート(587)関係をコメントを外し有効にするだけで良い。
submission inet n - n - - smtpd
SMTPS(465)は、HPのコンテンツのとおりである。
なお、submissionポート(587)はSSL非対応と前レスで書きましたが、25番同様に
SMTP over Starttlsで対応可能です。但し、OEなどは対応していないので使用
できませんが、Becky!は対応していました。クライアント環境に選ぶので使い
にくいですね。
おやじは、セキュリティ対策も含めクライアントを選ばないSMTPS(465)を薦め
ます。
> 全て、以前に書いてあることですが、追記してみます。現状のままだと辛口で50点
> ぐらいでしょうか?
昔から成績がわるくて....(笑)
すいません大分霧は晴れてきたのですがまだ完全ではありません。
ひとつ前のスレでの指摘なのですが
>ケース2の下半分はケース1の対応なので、これは誤りです。
という事は
ケース1
自分の契約ISPがOutbound port 25 Blockingを導入した場合の対策は
reayhost=ISPメールサーバーを指定し25番で転送する。
もし契約ISPが認証を必要とするならば下の様に設定する。
#ISP SMTP Authを有効にする。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus
※POP before SMTPは別途対策が必要
これでいいと思うのですが問題はその次で
ケース2
master.cfの設定を前にも書きましたが現在私は下のようにしています。
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
# -o smtpd_etrn_restrictions=reject
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
submission inet n - n - - smtpd
-o smtpd_etrn_restrictions=reject
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628 inet n - n - - qmqpd
これだとSMTPS(465)とsubmission(587)の両方を
設定したことになるのでしょうか?
それといつも思う事ですがなぜmaster.cfにはsubmissionの行がふたつ
あるのでしょうか?-o smtpd_etrn_restrictions=rejectの部分は
ダブッているように見えるのですが?(まったく素人の質問?)
もうちょっとで霧が晴れそうな気がします。よろしくお願いします。
> という事は > > ケース1 > 自分の契約ISPがOutbound port 25 Blockingを導入した場合の対策は > reayhost=ISPメールサーバーを指定し25番で転送する。 > もし契約ISPが認証を必要とするならば下の様に設定する。 > #ISP SMTP Authを有効にする。 > smtp_sasl_auth_enable = yes > smtp_sasl_password_maps = hash:/etc/postfix/saslpass > smtp_sasl_type = cyrus > ※POP before SMTPは別途対策が必要 > これでいいと思うのですが問題はその次で > > ケース2 > master.cfの設定を前にも書きましたが現在私は下のようにしています。 > smtp inet n - n - - smtpd > #submission inet n - n - - smtpd > # -o smtpd_etrn_restrictions=reject > # -o smtpd_client_restrictions=permit_sasl_authenticated,reject > smtps inet n - n - - smtpd > -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes > submission inet n - n - - smtpd > -o smtpd_etrn_restrictions=reject > -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes > #628 inet n - n - - qmqpd > > これだとSMTPS(465)とsubmission(587)の両方を > 設定したことになるのでしょうか? そのとおりです。 > それといつも思う事ですがなぜmaster.cfにはsubmissionの行がふたつ > あるのでしょうか?-o smtpd_etrn_restrictions=rejectの部分は > ダブッているように見えるのですが?(まったく素人の質問?) Postfixはドキュメントが日本語でも整備されているので、読まれるといいと思います。 読んで分かるかどうかは別ですが何かあったら各パラメータの意味を見ることを心がける だけでもだんだん分かるようになってきます。 2つあるのは、目的違いで設定例を示しているからです。おやじとしては、どちらでも 同じですが、下記のように1行目と2行目だけでいいと思います。 submission inet n - n - - smtpd -o smtpd_etrn_restrictions=reject 2行目の ・smtpd_etrn_restrictions=reject etrnコマンドは全て拒否ということですが、そもそもがダイアヤルアップでサーバを 動かすときのコマンドなのでrejectで何も問題はありません。 1つ目のブロックの3行目を有効にすると、 ・smtpd_client_restrictions=permit_sasl_authenticated,reject で、submissionポートはSSLはクライアントしだいで、SMTP-AUTHがアクセス元にかかわ らず必須になります。 2つ目の3行目を有効にすると、 ・smtpd_enforce_tls=yes なので、sbmissionポートはsubmission over starttlsを強制される、つまり普通の SMTP-AUTHだけでは繋がらないので、汎用的ではありません。 ・smtpd_sasl_auth_enable=yes これは、SMTP-AUTH対応していればmain.cfの設定で同じ設定をしているので盲腸扱いです。
大変お世話になりました。今回のこのスレの内容は
私自身の教科書の一部として保存したいと思います。
そして完全に理解できたらHPにまとめて見ようと思います。
日本語のpostfixのドキュメントは昨日発見したのですが
なぜかmain.cfの部分しか見つからずにmaster.cfについて
書き込ませていただきました。(再度、探してみます。)
明日は他のISPでOutbound port 25 Blockingをかけている
回線でメールの送信テストを行う約束をしたところです。
検証で問題がありましたらまたオジャマさせていただきます。
ありがとうございました。