Windowsパソコンを利用する企業の多くが導入しているActive Directory(AD)。便利な半面、ネットワークでの挙動が複雑なことから、トラブルの原因になることが少なくない。そこで本特集では、ADを利用するWindowsネットワークでのトラブル回避術を解説する。
セキュリティを強化するために、社内を複数のセグメントに分けて、その間にファイアウオールなどを設置して不要なポートをふさぎたいと考えるケースは多いだろう。だがActive Directory(AD)では、ADサーバーとADクライアント、あるいはADサーバー間で多種多様なプロトコルを使うため、ポート単位での制御は難しい。
特に厄介なのはMS-RPCだ。MS-RPCはWindowsのプロセス間通信で使われるプロトコルである。
このMS-RPCが使用するポートは毎回動的に決定される。使用するポートは、Windowsの「MS-RPC エンドポイントマッパー」という機能が管理している。
新たにMS-RPCでの通信を開始したい場合は、MS-RPCエンドポイントマッパーに対して135/tcpで問い合わせる。すると、MS-RPCエンドポイントマッパーは49152/tcp~65535/tcpという広い範囲から、利用していないポートを任意に選択して通知する。
利用するポートは事前にわからないため、広範なポートを開放しておく必要がある。ポートの範囲を制限することも可能だが、あまりに範囲を狭めると新規のMSRPCセッションを確立できなくなる恐れがある。どの程度のポート数を用意しておけばよいのか、マイクロソフトも情報を公開しておらず、見極めが難しい。
以上のように、AD環境ではセグメント間をポート単位で遮断することは難しく、IPアドレス単位での制御に留めるのが現実解だろう。マイクロソフトもポート単位の制御は推奨していないうえに、大量のポート開放が必要なため労力の割に有効性が低い。