Windows TIPS
System Environment
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

インターネット常時接続時の基本セキュリティ設定

6.ステップ5:RRASのパケット・フィルタを設定する

デジタルアドバンテージ
2001/06/22

 フィルタ設定の基本ポリシーとしては、Windowsのファイル共有などのサービスをインターネット側からはアクセスできないようにし、かつ、Windows 2000マシンやローカルネット側からはインターネット側のサービスをすべて利用できるようにする。

 このような環境を実現するには、基本的には、インバウンド(インターネット側からの)のTCP接続要求をすべて禁止し、(インバウンドの)UDPについても、必要なもの以外はすべてブロックするようにすればよい。ただしTCPについては、FTPのデータ・ポートだけは着信ができるようにしておく。

[注意]

FTPのデータ・ポートを許可すると(ソース・ポート番号が20番になっているインバウンドのTCPパケットを許可すると)、場合によっては、ソース・ポート番号を詐称したパケットによってシステムに侵入が行われる可能性がある。実際にはこの可能性は非常に低いが(この方法を使ってクラックするより、ほかのセキュリティの甘いホストをクラックする方が簡単だから)、心配ならばこのようなパケットを許可する必要はない。その場合はFTPはパッシブ・モードでしか利用できなくなる。詳細については「TIPS:FTPをファイアウォール・フレンドリ・モードに変更する方法」を参照のこと。

 ICMPについても、これらを(積極的に)許可する理由は特にないので、すべてブロックしてしまってもよいだろう。ただしインバウンドのICMPを本当にすべて禁止すると、pingの応答すら受け取れなくなってしまうので、これについては許可することにする。

 以上の設定をまとめると、次のようになる。

プロトコル 設定
TCP インターネット側からの接続要求はデフォルトですべて禁止。ただしftpのデータ・ポートからの接続要求(ソース・ポート番号=20)だけは許可(不要ならば禁止にすること)。内部からインターネット側へのパケット(アウトバウンドのパケット)は許可
UDP インターネット側からの接続要求はデフォルトですべて禁止。ただしDNSの応答パケット(ソース・ポート番号=53)、DHCPの応答パケット(ソース・ポート番号=67、宛先ポート番号=68)、NTP(ソース・ポート番号=123)の3種類だけは許可。内部からインターネット側へのパケット(アウトバウンドのパケット)は許可
ICMP インターネット側からのインバウンド・パケットはデフォルトですべて禁止。ただしpingパケットで使われるICMP Echo(type=8、code=0)/Echo Reply(type=0、code=0)だけは許可。内部からインターネット側へのパケット(アウトバウンドのパケット)は許可
設定するパケットの制御ポリシー
「インターネット 接続」側のインターフェイス・カードに対して設定するフィルタリング・ポリシー。基本的に内部からインターネット側へ送信されるパケット(アウトバウンド・パケット)はそのまま通すが、外部からの接続要求(インバウンド・パケット)はすべて禁止する。ただし、内部からインターネット側へ送ったパケットに対する応答だけは通すようにする。

 以上のポリシーに従って作成した、RRASの設定ファイルは次のようになる(ここでは、設定ファイルの名前を“setup-filter.cnf”とした)。以下のリストでは、説明のために行番号を挿入したが、これらは本来の設定用ファイルにはない。 以下のリンクをクリックして、ローカルに “setup-filter.cnf”というファイル名で保存してから、“netsh -f setup-filter.cnf”として実行すること。

setup-filter.cnfファイルのダウンロード

 1:#file:setup-filter.cnf
 2:
 3:#内向きフィルタの設定(デフォルトはすべてブロック)
 4:routing ip set filter "インターネット 接続" input drop
 5:#TCPはftpのデータ・ポート以外をブロック(パッシブ・モードしか使わないのならftpを許可しなくてもよい)
 6:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp-est 0 0
 7:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp 20 0
 8:#UDPはDNS/BOOTP/DHCP/NTPのみを通過させる
 9:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 53 0
10:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 67 68
11:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 123 0
12:#pingのみをサポート
13:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 icmp type=0 code=0
14:routing ip add filter "インターネット 接続" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 icmp type=8 code=0
15:
16:#外向きフィルタの設定(デフォルトはすべて通過)
17:routing ip set filter "インターネット 接続" output forward
18:#プライベートIPアドレスを持つパケットをブロック
19:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 192.168.0.0 255.255.0.0 any
20:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 172.16.0.0 255.240.0.0 any
21:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 10.0.0.0 255.0.0.0 any
22:routing ip add filter "インターネット 接続" output 192.168.0.0 255.255.0.0 0.0.0.0 0.0.0.0 any
23:routing ip add filter "インターネット 接続" output 172.16.0.0 255.240.0.0 0.0.0.0 0.0.0.0 any
24:routing ip add filter "インターネット 接続" output 10.0.0.0 255.0.0.0 0.0.0.0 0.0.0.0 any
25:#Windows系OSでよく使われるパケットをブロック
26:#必要ならsrcportが135/137-139/445もフィルタすること
27:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp 0 135
28:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 0 137
29:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 0 138
30:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp 0 139
31:routing ip add filter "インターネット 接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp 0 445
RRAS設定用ファイル(setup-filger.cnf)
この]ファイルをローカルに “setup-filter.cnf”という名前で保存してから、“netsh -f setup-filter.cnf”として実行すること。

 設定内容について、簡単に解説しておく。詳細については、「運用:常時接続時代のパーソナル・セキュリティ対策(第2回) 8.パケット・フィルタの設定(4)」を参照されたい。

 4行目のset filterコマンドでは、これからフィルタをセットするインターフェイス名と、フィルタをセットする場所(inputかoutput)、デフォルトの動作(dropかforward)を引数として与える。「インターネット 接続」の両側をダブルクォート記号で囲んで、「"インターネット 接続"」としているのは、今回の例ではインターフェイス名に空白記号が含まれているからである(読者の環境で名前が異なるなら、インターネット側インターフェイスの正しい名前をここに指定すること。これを間違えるとフィルタは正しく設定できない)。この4行目では、インターネット側インターフェイスにおいて、インバウンドのパケット(インターネット側から到着するパケット)のデフォルト動作をすべてブロック(DROP=通過させない)に設定している。

 6行目以下で、このデフォルト設定以外の処理を行うフィルタを追加している。6〜7行目は、ftpのデータ・ポートであるTCPプロトコルの20番ポート向けのパケットのみを通過させる設定である。先ほども述べたように、ftpでパッシブ・モードしか使わないのならば、ソース・ポート番号が20番のインバウンドftpパケットを許可する必要はない。その場合は7行目をコメントにするか、削除していただきたい。

 インバウンドのUDPプロトコル・パケットについてはDNS(ソース・ポート:53番)、BOOTP(ソース・ポート:67番、宛先ポート:68番)、NTP(ソース・ポート:123番)の3つを許可する(9〜11行目)。

 ICMPは、Echo(type:8)、Echo Reply(type:0)の2つだけを許可する(13〜14行目)。

 LAN側からインターネット側へのアウトバウンドのパケットについては、デフォルト動作をすべて通過(forward)に設定する(17行目)。

 LAN側のプライベート・ネットワークから、インターネットに向けてパケットが転送されないように、プライベート・アドレスを持つパケットをブロックする(19〜24行目)。

 さらに、Windows系OSでよく使われるポートを持つパケットが不用意にブロードキャストされないようにブロックする(26〜31行目)。

 上のリンクからファイルを入手してローカルにディスク上に“setup-filter.cnf”という名前で保存したら、コマンド プロンプト上で“netsh -f setup-filter.cnf”とすれば簡単にフィルタ設定を行うことができる。


 INDEX
  [Windows TIPS]インターネット常時接続時の基本セキュリティ設定
    1.想定する環境、前提条件
    2.ステップ1:インターネット側のファイル共有サービスを禁止する
    3.ステップ2:NBTを禁止する
    4.ステップ3:RRASサービスを開始する
    5.ステップ4:RRASのオリジナル設定をバックアップする
  6.ステップ5:RRASのパケット・フィルタを設定する
    7.ステップ6:フィルタ機能の確認
 
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間