Windows 2000 内蔵のファイアーウォール機能 パケットフィルターを設定しよう
先日紹介した TCP/IPフィルタリングは片方向だった上に、全アダプターで設定が共通で使い勝手がいまいちでした。
でも、内蔵のパケットフィルターを使うとより細かい設定が可能になります。
Windows 2000 Serverの場合は、プログラム>管理ツール>ルーティングとリモートアクセスからGUIで設定ができるのですが、Professionalの場合は、「プロパティを表示するアクセス許可がありません」と言われて設定できません。
そんなわけで、コマンドプロンプトから設定する方法を紹介します。
まず、サービスのRemote Registry Service と Routing and Remote Access が 自動 且つ、開始になっていることを確認してください。
でないと機能を使用することができません。
使用するのは netsh routing ip の子コマンドです。
コマンドプロンプトに入ったら、 show interface を実行してみます。
C:\>netsh routing ip show filter State Type Interface ---------- ----------- --------------------------------------------- 有効 ループバック ループバック 有効 内部 内部 有効 専用 ローカル エリア接続 有効 専用 ローカル エリア接続 2 |
接続したいインターフェイスがなければ追加しなくてはいけません。
その場合は、
C:\>netsh routing ip add interface name="ローカル エリア接続" state=enable |
などと入力します
『ローカル エリア接続』と入力が面倒なら、ネットワークとダイヤルアップ接続からリネームしてしまっても構いません。
さて、いよいよファイアーウォールもどきのパケットフィルターの設定です。
show filter コマンドで現在のフィルターの状態を確認できます。
C:\>netsh routing ip show filter Input Output Demand Dial Frag. Check Interface --------- ---------- ------------- -------------- ---------------- 0 (FORWARD) 0 (FORWARD) 0 (FORWARD) 無効 ループバック 0 (FORWARD) 0 (FORWARD) 0 (FORWARD) 無効 内部 0 (FORWARD) 0 (FORWARD) 0 (FORWARD) 無効 ローカル エリア接続 0 (FORWARD) 0 (FORWARD) 0 (FORWARD) 無効 ローカル エリア接続 2 |
Input/Output/着信接続 でそれぞれ Forward(指定パケット拒否)、Drop(指定パケット許可)が設定できます。
input は Telnet サーバーや VNC、 FTPサーバーのような接続待機するソフトで、ウィルスのバックドアがよく使用します。
通常使う範囲では、output を FORWARDにして、 input を DROPにすると言った使い方があります。
netsh routing ip set filter action=forward name="ローカル エリア接続" filtertype=output netsh routing ip set filter action=drop name="ローカル エリア接続" filtertype=input |
使うソフトと使用するポートがわかっているのなら、すべて drop 似してしまっても構いません。
例えば、こんな風に設定を追加します。
netsh routing ip add filter name="ローカル エリア接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp any 80 |
これは、設定がdropの時は、Webブラウザでの接続を許可。
forwardの時は、Webブラウザの接続を禁止と言うことになります。
ちなみにパラメータの意味は nameの後が、インターフェース名、接続種別(input/output/dial)、ソースアドレス、ソースマスク、相手アドレス、相手側マスク、プロトコル(TCP/UDP) ソースポート 相手先ポート
netsh routing ip delete filter name="ローカル エリア接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp any 80 |
add を delete にすれば設定を削除できます。
設定を確認する場合は show filter name を使用します
c:\>netsh routing ip show filter name="ローカル エリア接続" インターフェイス ローカル エリア接続 のフィルタ情報 ------------------------------------------------------------------ フラグメント チェックは 無効 です。 フィルタの種類 : INPUT Src Addr Src Mask Dst Addr Dst Mask Proto Src Port Dst Port フィルタの種類 : OUTPUT Src Addr Src Mask Dst Addr Dst Mask Proto Src Port Dst Port |
例えば、これは バックドアでよく使われる IRCサーバー 6666 を禁止し、FTP/Mail/Telnet/Web/MSN Messenger/Yahoo Messenger と ローカルエリア内の192.168.123.xxx のアクセスだけ許可すると言う設定です。
これらの設定は、再起動しても有効なので、一度設定してしまえば、システムを再インストールするまで再設定の必要はありません。
netsh 以下の routing ip ~をテキスト化して列挙して、設定ファイルにしておけば、 netsh -f 設定ファイル名で取り込むことが可能なので、複数のPCでまとめて設定したい時には便利です。
稀に、netsh routing ip add interface name="ローカル エリア接続" state=enable が
次のインターフェイスがありません: {xxxxx-xxxxx-xxxxx-xxxxx-xxxxx}
この名前のインターフェイスはルーターに登録されていません。
と言われて、通らないケースがあったのですが。
その場合は、NICのドライバをいったん削除して、再インストールしたほうがいいかもしれません。 うちは Ipv6を入れたあたりからおかしくなったので、システムをリカバリすることになりました。
まぁ、このくらいのパケットフィルタ機能は、いまどきのルーターには装備されてることが多いので、そちらで設定すると言うのも手なのですが、重いファイアーウォール製品をインストールするよりは、ウィルス対策ソフトに任せて、パケットフィルタで防衛すると言うのもいい方法だと思います。
記事がバグってますよw
有難うございます。
他にも化けてる個所があるかも(^^;
TCP Monitor Plusを使えば簡単ですよ。