[Posftix]25番ポートに接続しようとして"Connection refused"の対処法
サーバAで外部からのメールを受信するため、iptablesで25番ポートを空けたのですが、外部から25番ポートに接続できませんでした。
サーバBで、
[foo@b.example.coml ~]$ telnet a.example.com 25
Trying xx.xx.xx.xx...
telnet: connect to address xx.xx.xx.xx: Connection refused
telnet: Unable to connect to remote host: Connection refused
ぐぬぬ。iptablesでポート空けるだけではダメっぽい。
サーバA で ポートリスンの状況を調査するべく、
サーバAでnestat
[hoge@a.example.com ~]$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
お?25番ポートだけ、ローカルアドレスが"127.0.0.1"になってる!
これはもしかして、Postfixが外部からの通信をListenしておらず、ループバックアドレスからの通信だけをListenしているからだろうと推測。
サーバAの/etc/postfix/main.cf を見ると、
inet_interfaces = localhost
となっていた。やはり!
inet_interfaces = all
に変更して、
sudo service postfix restart
して、
サーバBからtelnetしてみたら、
[foo@b.example.coml ~]$ telnet a.example.com 25
Trying xx.xx.xx.xx...
Connected to a.example.com (xx.xx.xx.xx).
Escape character is '^]'.
220 a.example.com ESMTP Postfix
いけました!!ちなみに、途中 restartのところをreload してたらうまく行きませんでした。 たぶんPostfixのプロセスにおける、システムコールのソケット通信の確立(bindとかlisten)のところをやり直さないといけないので、reloadではダメなんだろうな、と推測。
カテゴリ:
Postfix