ようこそ!
答えてねっと for Businessは、
マイクロソフトが運営する
ビジネスで使うパソコンや
ITに関するQ&Aサイトです。

質問

OutBound方向の通信を遮断する方法

製品名:デスクトップ OS、サーバー OS/Windows XP

現象:知りたい/機能

懸賞ポイントが設定されています。 100

この質問は解決で締め切られています

いつもお世話になっております。
WindowsXP Professionalが動作しているPCから
外方向への通信をフィルタリングする方法を探しています。

TCP/IPのフィルタリングやWindowsファイアウォールでは
InBound方向のTCP接続やUDP通信を制御できますが、
OutBound方向に対してはどうも制御出来ないように思えます。

何か機能をご存知でしたら、ご教示頂けますでしょうか?

どうぞ、宜しくお願い致します。

質問者からのコメント

  • 投稿日時:2008/05/07 09:38

OMEGA-Tさん、チャブーンさん
ご回答どうも有り難う御座います。

OutBound方向のFilterは標準でRRASしかないと情報を頂き、
無料のFirewallに興味を惹かれています。
一度RRASで試してみましたが
設定方法がまずかったのか
OutBound方向だけでなくInBound方向の全部のポートも閉じてしまいました。
無料Firewallとてんびんにかけて
RRASについても精査してみたいと思います。

回答1 (この回答は質問に対する回答です)

  • 投稿ID:A2008046006
  • 投稿日時:2008/05/01 22:12

ツールを使わない方法ではnetsh等が考えられます。

(例)アウトバウンドのポート80を全てフィルタする
netsh routing ip add filter "ローカル エリア接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 TCP 0 80


-r <コンピュータ名> を付ければ別のパソコンに対しても操作可能です(管理者権限は当然必要ですが)。
(例)pc01のアウトバウンドのポート80を全てフィルタする
netsh -r pc01 routing ip add filter "ローカル エリア接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 TCP 0 80

[参考]
netsh routing ip コマンド
http://itpro.nikkeibp.co.jp/article/COLUMN/20061004/249932/マイクロソフト以外のサイトへ移動する

  •  

回答2 (この回答は回答1に対する回答です)

  • 投稿ID:A2008046043
  • 投稿日時:2008/05/02 18:05

ご回答有難う御座います。
netshコマンドは、機能が盛りだくさんですね。

すべてのOutBound方向のTCP接続を閉じるために
netsh routing ip add filter "ローカル エリア接続" output 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 TCP 0 0
を実施してみたのですが
残念ながら、該当PCから外のPCへ共有フォルダへ接続するなどが
普通に出来てしまいました。
何かフィルタ機能を有効化したりする処理も必要なのでしょうか?
あるいは、上記記述に誤りがあるでしょうか?
ご存知でしたらご教示頂けますと幸いです。

  •  

回答3 (この回答は回答2に対する回答です)

  • 投稿ID:A2008046047
  • 投稿日時:2008/05/02 19:08

大変失礼しました、netshコマンドによるフィルタリングはRRAS(Routing and Remote Access Service)に依存するので、RRASのサービスが動いていないと意味がないですね。
グループポリシーでRRASのサービスを起動することは出来ると思いますが、このサービスを動かすとルーターとして動作しますのでちょっとじゃまかもしれませんね。

[参考]
Windowsをリブートせずにパケットフィルタリング
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/019filter.htmlマイクロソフト以外のサイトへ移動する

また、いい方法を思いついたら書き込みさせていただきます。

  •  

回答4 (この回答は回答3に対する回答です)

  • 投稿ID:A2008046050
  • 投稿日時:2008/05/02 19:22

RRASサービスを動かしている必要があるのですね。
RRASを起動した方法で、一旦試してみたいと思います。

もし他の方法を見つけられましたら
すみませんが、ご教示の程宜しくお願い致します。

  •  

回答6 (この回答は回答4に対する回答です)

  • 投稿ID:A2008046118
  • 投稿日時:2008/05/06 00:04
  • 最も役に立った投稿として評価されました

既にチャブーンさんが回答されていますが、やはりOS標準では他に手がないようですね。

OutBound方向のブロックを行う目的にもよりますが、
インターネットへのアクセス制限が目的なら、ルーターでソースIPを指定してブロックする。

LAN内部のアクセス制限が目的なら、RRASを用いる方法以外では、サードパーティのツールを導入するしかないと思います(ユーザーに気づかれないようにフィルタをかけるという目的であれば目立つので無理でしょうが・・・)。
とりあえずフリーのファイアウォールソフトについて紹介されているサイトを載せておきます。

無料Firewall一覧
http://wiki.livedoor.jp/google01/d/%CC%B5%CE%C1Firewall%B0%EC%CD%F7マイクロソフト以外のサイトへ移動する
Firewall(ファイアウォール) 製品紹介(ちょっと古いですが)
http://eazyfox.homelinux.org/Firewall/Firewall2.htmマイクロソフト以外のサイトへ移動する

ZoneAlarm、Kerio Personal Firewall、Outpost Personal Firewall などは以前テストしましたが、動作は問題なかったと思います。

  •  

回答5 (この回答は質問に対する回答です)

  • 投稿ID:A2008046099
  • 投稿日時:2008/05/04 19:53

チャブーンです。

#よけいなことですけど

Windows XP で「標準で」使えるパケットフィルタ機能は、Windows Firewall と RRAS、ネットワーク接続のプロパティからできる「TCP/IPフィルタリング」の 3 つだけです。そのうち出力方向のフィルタができるのは RRAS だけですので、残念ながらほかの方法はないですね (他社の製品を使うことになります)。

ちなみに netsh を使う場合、フィルタのインポートスクリプトを書いておいて netsh -f で入れてあげる方法もあります。たくさんフィルタをかけたい場合、こちらが楽でしょう。

  •