- - PR -
セカンダリMTAとしての sendmail と不正中継
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-16 12:29
はじめまして。 セカンダリメールサーバに sendmail-8.9.3p2 を使っています。 ここでは仮にセカンダリを受け持っているドメインを「mydomain.com」とします。 sendmailが動いているホストは「myhost.mydomain.com」です。 今回不正中継ブラックリストであるORDBに登録されてしまい、調べたところ、 "someone@otherdomain.com"@mydomain.com という形式のエンベロープTOアドレスへのメールを、無制限に 中継してしまっていることに気付きました。 「mydomain.com」にあたるドメインは、CF-3.7Wpl2の定義ファイルで ALLOW_RELAY_TO=/etc/sendmail.relay.to と定義してから、/etc/sendmail.relay.to ファイルに mydomain.com と記述しています。 これは一般的なセカンダリMTAとしての書き方ですよね。 ソースルーティング形式のメールアドレス充てのメールを拒否するため、 ACCEPT_ADDRS='myhost.mydomain.com' REJECT_SOURCE_ROUTE_RELAY=yes REJECT_EXTERN_SRR=yes をsendmail.defに記述していますが、やはり中継してしまいます。 ACCEPT_ADDRSを、 ACCEPT_ADDRS='mydomain.com' に書き換えると、ソースルーティングチェックが利いて中継を拒否してくれますが、 これだとローカル配送してしまうため、セカンダリメールサーバとして機能しません。 sendmail-8.9.3を使っているサイトはまだまだ少なくないと思うのですが、 セカンダリメールサーバの不正中継対策はどうされているんでしょうか? 何でも結構ですので、アドバイス頂けるとありがたいです。 | ||||||||
|
投稿日時: 2004-10-16 12:33
すいません。CFの定義ファイルを載せ忘れました。
CF_TYPE=R8V8 OS_TYPE=bsd4.4 BITNET=auto MY_DOMAIN=mydomain.com MY_NAME=myhost OFFICIAL_NAME=myhost.mydomain.com MY_ALIAS='cache.mydomain.com news.mydomain.com' ACCEPT_ADDRS='myhost.mydomain.com' COPY_ERRORS_TO='postmaster' MAIL_RELAY_RESTRICTION=yes REJECT_SOURCE_ROUTE_RELAY=yes REJECT_EXTERN_SRR=yes LOCAL_HOST_IPADDR=/etc/sendmail.localip ALLOW_RELAY_TO=/etc/sendmail.relay.to LOCAL_HOST_DOMAIN='mydomain.com' PRIVACY_FLAGS='goaway' TRUSTED_USERS=majordom DIRECT_DELIVER_DOMAINS=all | ||||||||
|
投稿日時: 2004-10-16 14:22
こんにちわ.
一般的かどうか分かりませんが, ACCEPT_ADDRS='mydomain.com' として, DEFAULT_RELAY= で他に送ってやればよろしいのでは? ※また WIDE な CF 使っている方って多いのでしょうか? ※今後のためにも m4 な cf 使ったほうが良い気がします. | ||||||||
|
投稿日時: 2004-10-16 15:00
返信ありがとうございます。
早速試してみました。 ACCEPT_ADDRS='mydomain.com' DEFAULT_RELAY='smtp:hub.mydomain.com' をsendmail.defに追加してsendmail.cfを再生成。 そうすると、確かに "someone@otherdomain.com"@mydomain.com には ソースルーティングエラーを返してくれるようになりました。 しかし、肝心の someone@mydomain.com あてのメールについては、 DEFAULT_RELAYの設定が効いていないのか、ローカル配送しようとして User Unknownエラーになります。 DEFAULT_RELAYよりACCEPT_ADDRSの方が優先されているようです。 STATIC_ROUTE_FILE=を使って、mydomain.comに対して静的配送先設定を 書いてやっても、User Unknownは変わりませんでした。 | ||||||||
|
投稿日時: 2004-10-16 16:23
DIRECT_DELIVER_DOMAINS='mydomain.com' SPOOL_HOST='hub.mydomain.com' とやると如何でしょう? | ||||||||
|
投稿日時: 2004-10-16 16:56
思った通りの動作になりました!
ありがとうございました。 しかし、よそのsendmail-8.9.3を使ったセカンダリメールサーバって、 ソースルーティング対策されてるんでしょうか? Webで見かける構築記録を見ていると、ALLOW_RELAY_TO=に中継したい ドメインを書くだけっていうのをよくみかけますので、ちょっと気になります。 ところで、複数ドメインのセカンダリを1台で受け持っている場合は どう設定するんでしょうか。 | ||||||||
|
投稿日時: 2004-10-16 18:15
cf だと default で制限してたと思いますけど, CF だと分かりませんね〜.
default relay や spool host は性質からいって複数指定できませんから, MX 引かせるのかな? それとも STATIC_ROUTE_FILE='sendmail.route' として,sendmail.route に GW smtp:aaa.mydomain.com DOM aaa.hub.mydomain.com GW smtp:bbb.mydomain.com DOM bbb.hub.mydomain.com と書いてやればよろしいのではないかと. ※実際使ったこと無いので詳しくないです. cf では access.db 読ませるのが常套じゃないですかね. |
1