inet_interface
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日悩んで解決できましたとさ。