親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

postfixの設定問題ないのに外部からポート25にアクセスできない?


postfixでメールサーバを構築

会社でサーバの設定をすることが多くありまして、postfixを使ってメールサーバを立てることが多くあります。
postfixはメール送信用のプログラムで、設定が容易で扱いやすいため、使っている人も多いのではないでしょうか。

設定は容易ですが、サーバを構築した後になぜかメールの送受信ができず、ハマってしまうことがよくあります。
そういう時は大体外部ネットワークからポート25にアクセスできない状態であることが多いです。

注意点として、ファイアーウォールなどの設定ではなく、postfix自体が外部ネットーワークからアクセスできない状態になっているので、iptablesの設定などでは解放できません。

ポート25が外部ネットワークから接続できるかどうかの確認手順

Macなど、PCのターミナルからでも大丈夫ですので、telnetコマンドでポートが開いているか確認してみてください。
※もしtelnetをインストールしていない場合は以下のようなエラーメッセージが出ます。

zsh: command not found: telnet

別途yumなどでインストールし、telnetコマンドが使える状態にしてください。

telnet IPアドレス 25

ここで「Connection refused」などのメッセージが出れば、外部ネットワークからのアクセスが許可されていない可能性が高いです。

サーバにSSHでログインし、今後は以下のコマンドを入力してください。

netstat -ant

ここで、「127.0.0.1:587」や「127.0.0.1:25」となっていればやはりアクセスできない状態になっています。
ポート587や25は127.0.0.1(ローカル)内でしかアクセスできないという意味なので。


postfixの確認手順

以下のファイルで「inet_interfaces = all」となっているか確認してみましょう。

/etc/postfix/main.cf

問題なければpostfixを再起動してください。

sudo service postfix restart

「/etc/postfix/main.cf」では「inet_interfaces = all」となっているのに外部ネットワークからアクセスできないことがあります。
そのような時も再起動をしてみるとアクセスできることがあるので(最初に設定した時の再起動忘れ?)、試してみてください。


Postfix実用ガイド

Postfix実用ガイド

Postfix 辞典 (DESKTOP REFERENCE)

Postfix 辞典 (DESKTOP REFERENCE)

実践Postfixメールサーバー構築

実践Postfixメールサーバー構築