inet_interface

2012/07/12 | Postfix

postfixでどうしても外部から接続できなくて困ったのでメモ。

サーバセットアップ。いつものように、自分で作った手順書を頼りにセットアップするわけだが、どうしてもpostfixだけが動いてくれない。厳密に言うと、動いているようだが、外部からは接続できない。外部から接続しようとすると弾かれる。

Trying XXX.XXX.XXX.XXX…
telnet: connect to address XXX.XXX.XXX.XXX: Connection refused
telnet: Unable to connect to remote host

コンソールもしくはSSHでログインした状態で、中から確認すれば問題なく動いている。「telnet localhost 25」すれば応答があるし、ポートスキャンをかければ25は開いているし、実際にメールを送信してみれば、外部サーバにもきちんとメールが届く。つまり中からはOKで外からはNGな状態だ。

まず疑ったのがiptablesの設定。しかし問題無さそうだ。iptablesをstopしても症状は同じだからだ。他にもいろいろ停止したりしたけど変化はない。ひょっとして、上位で止められてるかも、とか思って問い合わせてもみた。しかし実際そんなことあるわけがない。だってもしそうなら、きっと問い合わせが殺到して大変なことになっているだろうから。

とりあえずpostfixの設定をデフォルトに戻しても症状は同じ。ん、あれ、ひょっとして何か根本的な勘違いしてるんじゃないか。ということで調べてみた。そして思い当たるフシがあった。

main.cfでinet_interfaceの設定、デフォルトはlocalhostに設定されているが、これをallに変更する必要がある。

なんと、これだった。この項目だけ修正し忘れていたのだった。別にCentOS6.2が悪いわけではない。サービス提供会社も悪くない。postfixも悪くない。単なる設定ミスじゃん。悪いのは自分。

ほんと、慣れって怖い。1日悩んで解決できましたとさ。

Postfixで応答がない

PHPからすっかり離れている今日この頃。でも、それなりに楽しんでいる。

Postfixの設定で、main.cfを編集してPostfixを再起動。別のサーバからアクセスしてみて、relayをしないよう正しく設定されているかどうかチェックしてみた(いちおう毎度不正なrelayチェックができないかどうかちゃんと調べている・・・あたりまえだけど)。調べ方は簡単、telnetでアクセスして、適当にメールアドレスを指定して、rejectしてくれるかどうか調べるだけ。

しかし・・・そもそもPostfixからの応答がない。telnetの応答の後のPostfixの応答がない。

Trying 1.2.3.4…
Connected to example.com.
Escape character is ‘^]’.

コマンドを打っても返事がない。おいおい。どういうこと?。こんなんだったっけ。毎回うろ覚えなのでしばし考える。

ひょっとして、と思ってmain.cfで修正した箇所をコメントアウトしてPostfixを再起動し、再度コマンドを投げてみた。

Trying 1.2.3.4…
Connected to example.com.
Escape character is ‘^]’.
220 example.com ESMTP Postfix

あ、返事してるじゃん。ってことは、Postfixでmain.cfの記述を変更して、たとえその記述に間違った記述があったとしても、起動自体はできてしまうことがあるっていうことか。

あーやだやだ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net