F.Ko-Jiの「一秒後は未来」

CentOS7のDockerコンテナからホストのPostfixを使用する

CentOS7 の Docker コンテナからホストの Postfix に SMTP 接続してメール送信できるようにしたかったのですが、ネットで調べた設定を実施するもなぜか失敗。一晩置いて firewall で許可しないといけないことに気づいて再度試してみたら成功しました。

以下、手順です。

/etc/postfix/main.cf の編集

mynetworks と inet_interfaces の設定が必要。

mynetworks = 127.0.0.0/8, 172.17.0.0/16

mynetworks には信頼するネットワークを指定します。今回の場合はローカルネットワークと docker0 インタフェースに対する IP アドレス範囲を指定。docker0 の IP アドレス範囲は「ip route」のコマンドを打てば分かります。

inet_interfaces = 127.0.0.1, 172.17.0.1

inet_interfaces には Listen する IP アドレスを指定する必要があります。Docker コンテナから見たホストの IP アドレスは、ホストの docker0 インタフェースに割り当てられている 172.17.0.1 だったのでそれを指定。

保存したら sudo systemctl restart postfix で設定を反映させます。

firewall の設定

CentOS7 なので firewall-cmd のリッチルールを使用して Docker コンテナのネットワークからの SMTP サービスへのアクセスを許可します。

sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.17.0.0/16" service name="smtp" accept"
sudo firewall-cmd --reload

設定が反映されているかどうか確認します。

$ sudo firewall-cmd --list-all

「rich rules」のところにルールが追加されていればOKです。

参考ページ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など