postfix

Postfixで中継サーバ(転送)を噛ます時の設定

More than 5 years have passed since last update.


Postfixの転送設定

最初の設定内容。

最悪これだけ設定しておけば動く。

第三者中継テストなどを実施してセキュリティのチェックを忘れない。

[Mail送信] => [フォワード元(スルー)] => [フォワード先(受信)]


フォワード元


forward_main.cf

# localhostだと自分自信のメールだけ許可

# allだと外部からのメールも受けとる
inet_interfaces = all

# ipv6も有効にしているとエラーが出るので
# ipv4固定で
inet_protocols = ipv4

# 色々と許可するセグメント。
# 信頼するインターナルやグローバルIPセグメントなどを記述
mynetworks = 127.0.0.1, 192.168.0.0/24

### メールを受信したら全て転送する先
relayhost = [192.168.0.100]



フォワード先


recieve_main.cf

# localhostだと自分自信のメールだけ許可

# allだと外部からのメールも受けとる
inet_interfaces = all

# ipv6も有効にしているとエラーが出るので
# ipv4固定で
inet_protocols = ipv4

# 自分のドメイン
mydomain = example.com

# 自分が受信するドメイン
mydestination = $myhostname, $mydomain, localhost

# 色々と許可するセグメント。
# 信頼するインターナルやグローバルIPセグメントなどを記述
mynetworks = 127.0.0.1, 192.168.0.0/24


Relay噛ます際に注意しなければならないのは

mynetworksが信頼できない場合、Relayするドメインを制限しないと

例えばグローバルIPからNATで受けとるとか、FromのIPアドレスが

内部のIPアドレスに置換されていたりすると、外部からの接続なのに

全て許可したりして、オープンリレーサーバという最高に最低な状態に陥る。

その場合は


forward_main.cf

# smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

smtpd_recipient_restrictions = reject_unauth_destination
relay_domains = $mydomain

として、mynetworksを許可リストから外す必要がある。

reject_unknown_clientについては余裕でDNS引けないクライアントあるので

よしなに設定する。その辺のセキュリティの設定は柔軟に対応しないと

メールの送受信などで揉めることになる(SMTP滅びろ)。

また、mynetworksが信頼できなくて、かつRelayする

ドメインも一意でない場合があるとしたら、設計を考えなおした方が良いと思う。