- ベストアンサー
【質問】さくらのVPSでpostfixの受信がうまくいかない
- さくらのVPSでdebianでpostfixを立ち上げ、メール送信はできるが受信ができない。
- gmailから送られるメールがサーバーへ届かず、エラーメールが返ってくる。
- メールログには何も記述されておらず、原因を特定できない。バーチャルメールアドレスに問題がある可能性も考えられる。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>○ メールを、サーバー自身からサーバー自身へ送る このメール送信方法は、どのように行いましたか? もし、メール送信方法が サーバ内でsendmailコマンドやmailコマンドを起動する方法だと、 SMTPによる通信を一切行いません。 従って、サーバのSMTP受信設定が誤っている可能性でてきます。 e.g. iptablesで25/tcpを接続拒否している。 e.g. TCP Wrapperで接続拒否している。 e.g. smtpdが25/tcpでlistenしていない。 テスト項目として、 ・同一サーバ内から 127.0.0.1の25/tcpポートへ、telnetで接続できることを確認する。 ・同一サーバ内から グローバルIPの25/tcpポートへ、telnetで接続できることを確認する。 ・Outbound port 25 blocking制限がないノード※から、 当該サーバの25/tcpポートへ、telnetで接続できることを確認する ※他プロバイダのメールサーバの25/tcpにtelnet接続できるかどうかで 制限有無が確認できます。 等の試験を行ってみると原因の切り分けになります。
その他の回答 (6)
- onosuke
- ベストアンサー率67% (310/456)
postfix上の具体的な設定の話ではありませんが、 Outbound port 25 blockingやサブミッションポートのポリシー(考え方)は、 以下のようになっています。 1.メールサーバのsmtp(25/tcp)は、自ドメイン宛のメールのみ受付する。 他ドメイン宛のメールは受付拒否する。 2.メールサーバのsubmission(587/tcp)は、SMTP-Authで認証OKの場合のみメール受付する。 SMTP-Auth認証しないメールは受付拒否する。 3.ネットワーク管理者(ISPや企業など)は、ファイアウォールで以下の通信制限を実施する。 -自ネットワークのメールサーバからのSMTP(外向け25/tcp)は通信許可する。 -メールサーバ以外からのSMTP(外向け25/tcp)は遮断する。 -submission(外向け587/tcp)は通信許可する。 「上記の3設定を全世界で行えば、スパムメールの送信数を減らせるはず」 というのがその根底にある目的ですね。逆に、 「自分がスパムメール送信の加害者にならないためには、上記の3設定を遵守しましょう」 という話でもあります。 結論、適切な設定でsmtp(25/tcp)ポートを開放することは全く問題ありません。 上記の3設定を遵守して、自らがスパムメール送信の加害者とならないよう 留意しましょう。
お礼
ありがとうございます。OPB25対応に関してはきちんと理解できていませんでした(特に1番に関して)。
- EF_510
- ベストアンサー率50% (306/604)
>参考書を読みながらサーバーを立てたのですが、OPB25対応の項目を読んで、サブミッションポート(587)を開き、その際に25番ポートを閉じてしまったのが原因でした。 >「25番ポートは開いていいの?スパムメール送っちゃったりしないの?」と個人的に思うのですが。 外部からのメールを受けたければポート25の解放は必須です。送信側にポート番号を知らせる方法はありませんし、あなたのサーバーからは相手の25に送っていますよね? ポート25でメールを受けることと迷惑メール送信とは直接関係はありません。 Postfixの設定で適切な規制を掛ける、受け取った側で処理する(SpamAssassinとか)などの対策を考えるとよろしいかと。 第三者転送を防止する設定を行っておけば入り口の対策としては十分です。 うちのpostfixはこんな設定になってます。 smtpd_client_restrictions = permit_mynetworks, reject_rbl_client all.rbl.jp smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
お礼
ありがとうございます。OPB25対応に関してはきちんと理解できていませんでした。
- EF_510
- ベストアンサー率50% (306/604)
ひょっとするとmydestinationがデフォルトのままになっていませんか? このままだと127.0.0.1ではないアドレスの25番ポートは開かれませんので、適切な設定を行ってください。 ↓この状態だと自分のサーバーを起点とするメール送受信は出来ますが、外部からは接続できない状態です。 #postconf -n ~ mydestination = $myhostname, localhost.$mydomain, localhost ~
補足
ご回答ありがとうございます。 参考書を読みながらサーバーを立てたのですが、OPB25対応の項目を読んで、サブミッションポート(587)を開き、その際に25番ポートを閉じてしまったのが原因でした。 「25番ポートは開いていいの?スパムメール送っちゃったりしないの?」と個人的に思うのですが。
- tomaju
- ベストアンサー率76% (84/110)
> [mail.example.com. (10): Connection refused] とあるのでSMTPのポートに接続できないようですね。 ファイヤウォールでブロックしていないでしょうか? また Postfix が外部から接続できるようにTCPの25番ポートで待ち受けているでしょうか。 試しに netstat -lntp を実行して以下のような行が見つかるでしょうか。 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2865/master もしLocal Address (内部アドレス) が 127.0.0.1:25 になっている場合はサーバーの 外部から接続できません。 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2865/master
お礼
ご回答ありがとうございます。 すみません。頂いた回答から順に確認していましたが、tomajuさまのアドバイスがそのものズバリですね。 参考書をもとにpostfixサーバーを立てたのですが、OPB25への対応としてサブミッションポート(587)を使用するよう書かれていたため、そのように設定し、その際に25番ポートは不要なものと判断して閉じてしまっていました。 でも、25番ポートはスパムメール対策として開けてはいけないんじゃないの、という疑問が残りますが……。
- EF_510
- ベストアンサー率50% (306/604)
maillogに何も載らないと言うことは、そもそも接続が行われていません。 なのでPostfixの設定以前の話と言うことになります。 一番考えられるのはドメインの設定が正しく行われておらず、ルートDNSサーバーからたどれない状態になっている。ですかね… 自分のサーバーでdigを実行するところまでは良いのですが、別のサーバーからの応答も見てみてください。 たとえばGoogle Public DNSとか(dig mx example.com @8.8.8.8)です。
補足
回答ありがとうございます。 教えていただいた下記コマンド dig mx example.com @8.8.8.8 実際のアドレスで試してみたのですが、下記のようなANSWER SECTION ;; ANSWER SECTION: example.com. 10799 IN MX 10 mail.example.com. が表示されたので、おそらく大丈夫だと思います。
- YUI_AI
- ベストアンサー率45% (303/661)
POP3(110)のポートは開けましたか? ※SMTPは送信が出来ているから開いていると思いますが
補足
回答ありがとうございます。 #iptables -L で確認しましたが、開けてありました。 ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
お礼
ありがとうございます。頂いたご回答を元に、解決致しました。 参考書を読みながらpostfixサーバーを立てたのですが、その本にOPB25の解説があり、スパムメール制限の為に25番ポートの使用を制限し、代わりに587番のサブミッションポートを使用するよう解説があったため、そのように設定したのち、25番ポートは不要と思いポートを閉じてしまっていました。 上記テスト項目をいただき、25番ポートを開いてテストしている途中に、以前外部からサーバーに送信して(そして彷徨って)いたメールが受信できていることに気がつきました。 (でも、25番ポートはあんまり使ってはいけないのでは?という疑問が残りますが……)。