亜細亜ノ蛾 - Weblog

[SiteSearch Google]

January 14, 2009

ファイアウォール機能を使わずにプログラムの接続を制限する方法

[ad]

  • 更新: 2010 年 06 月 10 日 03:05
  • 2009 年 01 月 14 日 03:07 に asiamoth が投稿
  • カテゴリー: PC
  • コメントする

特定のプログラムのみ接続不可にする

Warning, cats! - Attenti al gatto! CreativeCommons Attribution-NonCommercial-ShareAlike License, Marco Bernardini

問題・Windows XP で以下の条件を満たすには どうすればいいか?:

ある特定のプログラムのみ「インターネットに接続しない」状態で起動する

なお、環境は下の通りとする:

  • OS は Windows XP SP2 Professional
    • (Home Edition は検証していない)
  • そのプラグラムとは、ゲームやブラウザなどの一般的なものである
    • 一応書いておくが「オフライン作業」で起動したいわけではない
  • ファイアウォール機能を使わないこと
    • ファイアウォールソフトも利用しない
  • 「ある特定のプログラム」以外には(極力)影響しないこと

Windows 標準のファイアウォール機能やファイアウォールソフトを使えば一発で解決するが、それは避けたかった。なぜなら、たかだか数個のプログラムのために、システム全体に影響を及ぼすファイアウォール機能を動かしたくないからだ。

ということで、以下の文章には「ウィルスバスターでいいじゃん」「i-フィルタ使え」などのご意見はカンベンしてほしい。

Windows 標準の機能とフリーソフトを使って、上記の条件を満たす方法を見つけたので紹介する。「もっと良い方法がある」という人のコメントを待っています。

自分がやりたいこと

まず、なぜこれができないのか不思議なのだが……。

一番ラクなのは、アプリケーションの実行ファイル(.exe)を右クリックして「プロパティ」を開き、「セキュリティ」タブあたりに「このアプリケーションがインターネットに接続するのを制限する」みたいなチェックがあること。チェックを入れると、この実行ファイルだけがインターネットに接続できなくなる、というもの。

しかし、そんな項目はない

ユーザアカウントで制御する

次に考えたのが、「ユーザアカウント」を利用する方法だ。特定のアプリケーションを実行する際は、インターネットへの接続を制限したユーザに切り替えて実行する。切り替えが面倒だが、こちらは簡単にできそうだ。

Windows 2000 以降では「制限付きユーザ」という、いかにもそれらしいアカウントを作れる。

制限付きユーザー アカウントを作成するには

しかし、この「制限」はプログラムの追加などに対するもので、「インターネットへの接続を制限」は できない。

──いやいや、管理者がユーザへ制限をかけたい心のベスト 10 第一位は やはりインターネット接続ではないか? いくら新規プログラムのインストールを制限しても、インターネットに つなぎ放題では、管理がザルだろう。と文句を言いたくなる。

Microsoft からすると、インターネットへの接続を制限するにはファイアウォールを使え、ということなのか……。

RUNASA を利用する

さて、さんざん引っ張ってきたが、そろそろ解決編を書こう。

「RUNASA」というパスワード入力なしで別ユーザによる実行を行うアプリケーションソフトを使う。

RUNASA(WindowsNT/2000/XP/Vista / ユーティリティ)

ちょうど分かりやすい記事を見つけた。下のページ(3 ページ分あり)を参考にして、RUNASA のインストールとユーザアカウント(制限付きユーザではなくて良い)の作成まで進んで欲しい。

RUNASAネット接続するソフトは制限付きユーザー権限で安全に

もう一工夫で解決

さて、これで「ユーザ A」でログインしながら、「ユーザ B」の権限でプログラムを簡単に起動できるようになった。しかし、この状態では、けっきょくプログラムはインターネットに接続できる。

そこで、いったん「ユーザ B」でログインする。コントロールパネルから「ネットワーク接続」を開き──「ローカルエリア接続」を無効にする、などでインターネットの接続を切ってしまう

そして「ユーザ A」でログインし直し、RUNASA で作成したショートカット(実行ファイル)を開くと「ユーザ B」として実行されるのだが──なんと、起動したプログラムはインターネットへ接続できない!

確認のため、「ユーザ B」でログインしてローカルエリア接続を有効、「ユーザ A」にログインして上記の実行ファイルを起動すると、今度は接続できる。

つまり、インターネットへ接続する状態はユーザアカウントごとに決まっている、ということだ。当たり前のようで、ちょっと意外に感じた。MTU と RWIN の調整なども、ユーザ単位で変わってくるのだろうか?

オチ

さて、賢明なる読者の皆さんは、もうお気づきだろうが──けっきょく、ファイアウォール機能を使ったほうが早い。もしくは、上の例でいうと「ユーザ B」にログインして接続を切ったままプログラムを実行する、とか。

それに、RUNASA はサービスとして常駐するので、「ある特定のプログラム」以外には(極力)影響しないこと」はギリギリ満たしていない。タスクマネージャを見ると、RUNASA は最大で 2Mbyte ほどメモリを使っているようだ。これより軽いファイアウォールソフトがあれば、そちらのほうが良いだろう。

しかし、ユーザごとに接続状態が決まっている・別のユーザにログインしていても保持される、と発見できて良かった。応用すると、何か面白いことができそうだ。

ここまで可能なら「接続を許可しないプログラム・ユーザ」ができないのか疑問は残った。

Google Adsense

 

Related Posts with Thumbnails

コメント

過去の記事

カテゴリィ一覧
  1. その他
    1. 食・健康・生活
  2. ウェブデザイン・文章
    1. Movable Type
  3. ウェブ上で見つけたページ
  4. コンピュータ・エレクトロニクス
    1. PC
      1. Firefox
    2. カメラ・デジタルカメラ
  5. マンガ・アニメ・ゲーム
    1. エヴァンゲリオン/ ヱヴァンゲリヲン
    2. マンガ
      1. DEATH NOTE
      2. HUNTER×HUNTER
      3. SKET DANCE
      4. バクマン。
  6. 本・音楽・映画・TV
    1. 映画