Exchange Server 2010でADに存在しないユーザーに対してのメール送信をSMTPセッション中に拒否するように構成する方法

 

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。

Exchange Serverでは過去のバージョンから最新のバージョンまで一貫して「存在しないユーザー宛てのメールでも一度受け入れる。その後、ユーザーが存在しなければNDRを生成し送信する」という動きになっています。ユーザーが存在しなければSMTPセッション中に「User Unknown」というような応答を返し、そもそもメールを受け入れない場合に比べるとExchange Serverのリソースを多く消費することになります。

もちろんこの挙動にも、どのアドレスでも受け入れることによって「存在するアドレスをspam業者に収集されない」という良い面がありますので、一概に悪いわけではありません。ただ、このあたりに関してもExchange Server 2010にはtarpit機能があり、連続してSMTP送信を行ってくるホストに対しては遅延させることができますし、セッション中に拒否したい…というシチュエーションも少なからずあるものと思います。

これをHUB上でどのようにできるのか、ということを調べてみました。以下手順です。

AntiSpam機能のインストール

cd %system drive%/Program Files\Microsoft\ExchangeServer\V14\Scripts ./install-AntispamAgents.ps1 Restart-ServiceMSExchangeTransport

※必要な全サーバーで実行する

不必要な機能の無効化(※規定ですべて有効になるので不必要なものを無効化する)

※この手順は必須作業ではありません。

Set-IPBlockListConfig -Enabled $false Set-IPBlockListProvidersConfig -Enabled $false Set-IPAllowListConfig -Enabled $false Set-IPAllowListProvidersConfig -Enabled $false Set-SenderIdConfig -Enabled $false Set-ContentFilterConfig -Enabled $false Set-SenderFilterConfig -Enabled $false Set-SenderReputationConfig -Enabled $false #Set-RecipientFilterConfig -Enabled $true

「ディレクトリに存在しない受信者宛てのメッセージをブロックする」を有効にする。

Set-RecipientFilterConfig -RecipientValidationEnabled $true

Image(1)

結果

きちんと意図した通りSMTPセッション中にuser unknownを返すようになりました。

image

 

注意点

既定の状態ではGet-RecipientFilterConfigにてInternalMailEnabledがFalseになっており、きちんとSMTP認証を行っているクライアントや「外部的にセキュリティで保護(たとえば、IPsecを使用)」となっている受信コネクタを通る際にはフィルタ対象外になるので注意が必要です。

Image(3)

 

また、そもそも論として、Exchange Server 2010としてはHUBにAntiSpam機能を導入することは推奨しておらず、このようなことはEdgeサーバーで実施することが推奨されています。とはいえ、小規模な環境ではありだと思いますし、大規模だったとしても需要はあるのではないかと思います。欲を言えばHUBの標準機能であってほしいですが…。

Microsoft MVP for Microsoft Azure。「Windowインフラ管理者入門」著者。Windows系中心のインフラよりの何でも屋。エレキベースを演奏します。将棋も少しやります。ハイブリッドクラウド研究会(HCCJP)主催。最近はYouTuberです http://bit.ly/2NTCKmj

コメントを残す

メールアドレスが公開されることはありません。

x
いつもブログをご覧いただきありがとうございます!最近はブログよりもYoutubeに力を入れていますので是非Youtubeもご覧ください!
胡田昌彦のコンピューター系チャンネル