中継の制限【effect.dat】で設定する default と true の違い、only の意味は?

中継の制限【effect.dat】で設定する default true の違いは、一見すると区別がつきにくいように思われますが、default と true とは実は意味が大きく異なります。

default は「デフォルトの設定に依存する」という意味になります。たとえば、デフォルトでは、外部から外部への中継は拒絶する動きになります。また、存在しないユーザーアカウントを使った送信要求は当然のことながら不可です。この default 指定を行うと、指定されたIPアドレスから接続したときに、そのデフォルト設定状態を明示して指定することになります。言い換えると安全なデフォルト設定を念押しして明示的に設定しているといえます。
【effect.dat】の記述例
192.168.0.0/24 default
 または
*.*.*.* default
true は「無条件許可」を意味します。true 指定を省略してIPアドレスだけの指定も true と同義です。
この「無条件許可」の実際の意味は、非常に強力です。存在しないユーザーアカウントを使った送信要求を行っても、User Unknownで接続を拒絶することはなくなります。さらにSMTP認証を有効にしているときでも存在しないアカウントからSMTP認証なしで送信が可能になってしまいます。何も考えずに設定すると、いわゆる“なりすまし”や“不正中継”でさえも許可してしまい、危険性を高める結果となります。

これに対して、true 指定が逆に必要になるケースでの例を以下に記します。
一つめはSMTP認証を有効に設定しているとき内部アカウントどうしの自動転送を設定するケースです。このときはメールサーバ自体のIPアドレスを true 指定します。ちなみに true 指定を省略した場合も true を指定したものと同義に扱われます。
【effect.dat】の記述例
192.168.0.xxx true ←メールサーバ自体のIPアドレス
 または
192.168.0.xxx ←メールサーバ自体のIPアドレス
二つめはSMTPゲートウェイの設定で内側にあるメールサーバからの接続を無条件に許可を与えるケースです。SMTPゲートウェイの設定で、内側のメールサーバに存在する実アカウント分だけ関連づけたエイリアスを登録する運用を行っているときです。設定例は「エイリアス: abc@domain.jp → : 実アドレスabc@domain.jp」。内側のメールサーバで自動転送を行っていて外部ドメイン宛への転送がされたときに、内側のメールサーバから SMTPゲートウェイを経由するアウトバウンド方向の通信について転送分が拒絶されてしまいます。これを防止するため、SMTPゲートウェイ側の【effect.dat】に内側のメールサーバのIPアドレスを下記のように true 指定します。
SMTPゲートウェイ側の【effect.dat】の記述例
192.168.0.xxx true ←内側のメールサーバのIPアドレス
 または
192.168.0.xxx ←内側のメールサーバのIPアドレス
一方、メールサーバで設定した内部ドメイン名を"true"設定してしまうと、無条件許可を与えてしまいます。内部ドメイン名を語って送信要求されるものは、アカウントが存在しなくても送信でき、さらにSMTP認証パスワードが違っていても送信できることになり、なりすまし送信をそのまま許可してしまう事態になってしまうため、このような設定を絶対にしないよう注意してください。
(絶対にしてはならない【effect.dat】の例)
domain.jp true
 または
domain.jp
↑…… 内部ドメイン名を"true"指定すると、ドメイン名を語りさえすれば
どこからでも無条件送信できてしまうので要注意

なお、only については、【effect.dat】の最後の行で有効で、しかも記述できるのは1行のみという制約があります。特定のIPアドレスからの中継だけを可能にしたいときには「x.x.x.x only」と記述できますが、この指定は1行しか書けず、しかも記述の最後にする必要があります。only より下の記述がされていても、それらの記述はすべて無効になるので注意してください。
(2行目が働かない【effect.dat】の例)
192.168.0.100 only
*.*.*.* norelay
↑…… 1行目で"only"を記述しているため2行目の行は無効になる
リレーに関するデフォルト設定は、オンラインヘルプにもくわしく書かれているほか、下記のFAQもご参照ください。
なお、中継の制限【effect.dat】に設定するIPアドレスと "true"、"default"、"false" などとの間の区切り文字は半角スペースです。[tab]コードでの区切りは無効ですのでご注意ください。

(関連FAQ)
中継の制限【effect.dat】での only 指定は特殊な働き方をすることに注意
中継の制限【effect.dat】で最下行に「norelay」の記述行を加えたときの動きについて
中継の制限【effect.dat】でSMTP認証と関連する "norelay,2" オプション
送信しようとすると、' 550 Sorry ・・・, I don't allow unauthorized relaying . ' が表示されて送信できない
SMTP認証有効時に内部アカウントから内部アカウントへ自動転送されない