実験 
ビギナー管理者のためのブロードバンド・ルータ・セキュリティ講座

第2回 Windowsのファイル共有サービスをブロックする(2)


デジタルアドバンテージ
2002/03/07

Windowsのファイル共有に用いられるNetBIOSとは?

 LANからWANへのファイル・アクセスを防ぐには、Windowsのファイル・アクセスのパケットを特定し、ブロードバンド・ルータでフィルタして遮断すればよい。そのために、ごく簡単にWindowsのファイル・アクセスに使われるプロトコルやソフトウェア・インターフェイスを説明しよう。

 Windowsのファイル・アクセスには、「SMB(Server Message Block)」と呼ばれるアプリケーション層のプロトコルが利用されており、その下位のトランスポート層のサービスを呼び出すためにNetBIOSと呼ばれるインターフェイスが使われている。現在、SMBが使うトランスポート層としてはTCP/IPが一般的で、NetBIOSをTCP/IP上に実装した「NBT(NetBIOS Over TCP/IP)」というプロトコルが一般的に使用されている。

 NBTでは、下の表のようにポート番号として137〜139番を使用するので、簡単にいえば、これらのポート番号を持つパケットをフィルタで閉じれば、ファイル・アクセスを遮断できることになる。

プロトコル ポート番号 サービス名 概要
TCP/UDP 137 netbios-ns NetBIOS名(マシン名)からIPアドレスを導き出す「名前解決」に使用される。「NetBIOS名前サービス」とも呼ばれる
TCP/UDP 138 netbios-dgm ネットワーク・コンピュータの一覧を得る「ブラウジング」に使用される。「NetBIOSデータグラム・サービス」とも呼ばれる
TCP 139 netbios-ssn ファイル/プリンタ共有に使用される。「NetBIOSセッション・サービス」とも呼ばれる
NBTで使われるTCP/UDPのポートとそのサービス名
サービス名とは、Windowsのnetstatコマンドで表示される各ポートの名称のこと。

 実は、ファイルやフォルダへのアクセスなど、いわば狭義の「ファイル共有サービス」に使われるのはTCPのポート139番(netbios-ssn)だけであり、これを遮断すればファイル・アクセスは行えない。とはいえ、ポート137〜138番(netbios-ns、netbios-dgm)を利用するパケットがWAN側に漏出すると、LAN側のNetBIOS関連情報(WindowsマシンのNetBIOS名やIPアドレスなど)が漏えいする可能性があるし、そもそもWAN側には必要ない無駄な情報なので、これらのポートは閉じておくべきだ。

 これらのポートが利用されている様子は、Windowsマシン間でファイル・アクセスを行っている状況で、netstatコマンドを実行すると表示される。netstatコマンドの使い方は、Master of IP Networksの「netstat - ホストのネットワーク統計や状態を確認する」が詳しいので、参照していただきたい。

C:\>netstat -a -n
Active Connections
Proto Local Address      Foreign Address State
TCP   192.168.1.102:1026 0.0.0.0:0       LISTENING
TCP   192.168.1.102:1026 10.1.1.101:139  ESTABLISHED 
TCP   192.168.1.102:137  0.0.0.0:0       LISTENING
TCP   192.168.1.102:138  0.0.0.0:0       LISTENING
TCP   192.168.1.102:139  0.0.0.0:0       LISTENING
UDP   192.168.1.102:137  *:*
UDP   192.168.1.102:138  *:*
テスト環境のLAN側PCにてnetstat -a -nコマンドを実行したところ
ポート137〜139番が利用されている様子が分かる。
  LAN側PC(192.168.1.102)とWAN側PC(10.1.1.101)の間で、TCPのポート139番(netbios-ssn)の接続が確立されて(ESTABLISHED)いることが分かる

NetBIOS以外に閉じるべきポート

 閉じるべきポートは、実はまだある。Windows 2000/XPでは、NetBIOSを使わずにファイル・アクセスを実現する「ダイレクト・ホスティングSMBサービス」というサービスが実装されているからだ。これは、DNSなどを利用して名前解決を行った後、TCP/UDPのポート445番を通じて相手のPCと直接通信し、ファイル・アクセスを実現する(このプロトコルの詳細は、Windows Insiderの「Windows TIPS:ポート445(ダイレクト・ホスティングSMBサービス)に注意」が詳しいので、参照していただきたい)。

 Windows 9x/Me/NTはNetBIOSを利用するが、Windows 2000/XPはNetBIOSだけではなく、このダイレクト・ホスティングSMBも利用する。従ってNetBIOSと同時に、ダイレクト・ホスティングSMBが使うポート445番も閉じるべきだ。

 もう1つ、ファイル共有とは直接の関係はないが、閉じておくべきポートとしてTCP/UDPのポート135番も追加しておこう。これはWindowsのRPC(リモート・プロシジャ・コール:リモートのコンピュータ上で何か処理を実行するためのプロトコル)に利用されるポートで、WINSサーバやDHCPサーバを管理したり、ドメイン間で信頼関係を構築したり、といった用途に用いられる。こうしたWindows独自のサービス/機能をインターネット越しに利用するつもりがなければ(通常はVPNや専用線などセキュリティを確保した回線を使う)、このポート135番も閉じておくべきだ。

プロトコル ポート番号 サービス名 概要
TCP/UDP 135 epmap WindowsのRPC(リモート・プロシジャ・コール)に使われる
TCP/UDP 445 microsoft-ds ダイレクト・ホスティングSMBによるファイル共有サービスに使われる
そのほかに閉じるべきWindows関連のTCP/UDPのポート

遮断すべきパケットの種類からフィルタの内容を決める

 遮断すべきパケットがおおよそ特定できたので、実際にパケット・フィルタリングの設定をブロードバンド・ルータで実行してみよう。基本的なフィルタの設定方針は下の表のとおりだ。

処理内容 通過方向 ポート番号(送信元) ポート番号(送信先) プロトコル
フィルタその1 遮断 LAN→WAN 135 TCP
フィルタその2 遮断 LAN→WAN 135 UDP
フィルタその3 遮断 LAN→WAN 137 TCP
フィルタその4 遮断 LAN→WAN 137 UDP
フィルタその5 遮断 LAN→WAN 137 TCP
フィルタその6 遮断 LAN→WAN 137 UDP
フィルタその7 遮断 LAN→WAN 138 TCP
フィルタその8 遮断 LAN→WAN 138 UDP
フィルタその9 遮断 LAN→WAN 139 TCP
フィルタその10 遮断 LAN→WAN 445 TCP
フィルタその11 遮断 LAN→WAN 445 UDP
パケット・フィルタリングの設定
ここではIPアドレスを指定する必要がないので、表からは省いている。またWAN→LANの向きのフィルタ設定は、前述のようにIPマスカレードで遮断されるので、特に記していない(実際には、上記のフィルタ設定すべてをWAN→LANの通過方向にも適用すれば、この方向のパケットもフィルタリングされる)。フィルタの数が11個もあるのは、TCPとUDPを個別に記しているからだ。実際のところ、上記のどのポートも、TCPとUDPの両方とも遮断してよいので、ルータで設定可能ならTCPとUDPの指定を1つにまとめるとフィルタの数を減らせる。

 注目してほしいのは、フィルタするポート番号は「送信先(ここではWAN側PC)」の方という点だ。これは、送信先すなわちインターネット側のホストにおけるNetBIOSなどのポートに対して、パケットが送信されるのを防ぐためでもある。逆にいえば、送信先ではなく送信元(ここではLAN側PC)のポートでフィルタしても、当該パケットは完全には阻止しきれない(漏れるパケットがある)はずだ。

 また、137番だけは送信先ポートと送信元ポートの両方ともフィルタしている。これは、NetBIOS名の名前解決にDNSを使用するようにWindowsが設定されていると、送信元ポートが137番、送信先ポートが53番というDNSサーバへの名前解決要求パケットが生じるからだ。この場合、LAN内でしか使わないNetBIOS名がインターネット側(通常はISP)のDNSサーバに登録されているはずがないので、この名前解決は必ず失敗する。つまり無駄なパケットなので、可能ならフィルタで遮断すべきだろう。ただ、このパケットを遮断できなくても、LAN側にあるファイル・サーバなどのNetBIOS名がDNSサーバに漏れてしまう、という点を除けば、問題はないはずだ。

  関連記事(PC Insider内) 
ネットワーク・デバイス教科書:第13回 ブロードバンド・ルータのセキュリティ設定

  関連リンク 
netstat - ホストのネットワーク統計や状態を確認する
Windows TIPS:ポート445(ダイレクト・ホスティングSMBサービス)に注意


 INDEX
  [実験]ビギナー管理者のためのブロードバンド・ルータ・セキュリティ講座
    第1回 ルータ内蔵の設定用サーバへのアクセスを制限するには
    第2回 Windowsのファイル共有サービスをブロックする(1)
            Windowsのファイル共有サービスをブロックする(2)
              Windowsのファイル共有サービスをブロックする(3)
 
「PC Insiderの実験」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間