特定サイトのみOK!proxy設定について

医療情報システムグループポリシー, ネットワーク, プロキシ

病院のネットワークは何度か紹介しているように、インターネットに繋がらない閉じられたネットワークになっています。閉じられたネットワークだと情報流出や外部からの攻撃などの被害を受けにくいですが、googleやyoutubeなどの便利な外部サービスが使いづらい環境になってしまいます。

Webサービスは年々向上していて、最近ではWeb3.0という言葉も目にすることが増えてきました。病院としても働き方改革や業務DXなどで外部の便利なサービスを使いたいという要望も出てきており、対応する必要がありました。仮想ブラウザというのを導入しており、ネット検索などはできるようになっていたのですが、接続数制限があったり画面転送による表示なので表示にラグがあったりと使い勝手がイマイチなところがありました。

今回は閉じたネットワークから外部のWebサービスを使えるように設定することができたので、その方法をご紹介したいと思います。

proxyとは

プロキシ(Proxy)とは、直訳すると代理や代わりなどの意味があり、IT業界ではインターネットなど外部のネットワークに接続する際に代わりに接続し情報を取得してくれる仕組みのことです。通常はクライアントPCから表示させたいサイトのサーバーに直接アクセスしますが、プロキシを使ったアクセスの場合は、クライアントPCと表示させたいサーバーの間にプロキシサーバーが入り、プロキシが情報のやり取りを仲介してくれます。

メリットとしては、匿名性の向上やサーバーや通信の負荷軽減などいろいろありますが、今回はセキュリティの向上が大きなメリットになると思われます。プロキシサーバーの設定でどのサイトにもアクセスを許可するのではなく、管理者側で認めたサイトのみ接続を許可することで、不要なサイトの閲覧を制限したり、危険性の高いサイトなどへの対策も行えます。また、アクセスログも残るので、何かあった場合の調査にも役立ちそうです。

余談ですが、私が学生の頃に学内のネットワークが通信負荷軽減のためyoutubeなどの動画サイトの閲覧を禁止しており、私はそれを自作プロキシサーバーを作ってその制限を回避していました。今時はテザリングなどで気軽にネットワークの切り替えができると思いますが、制限された環境でも別のやり方を見つけるという基礎が学生時代から考えていたのかなと今では思います。

設定方法

設定方法は、WindowsだとIEの設定やコントロールパネルから設定する必要があります。これを設定しないと院外のネットワークにアクセスできないので、1台1台設定を行う必要があるのですが、すべての職員がITに精通しているわけでもないので、なるべく管理者である院内SEが手間をかけずに全体に反映させる必要がありました。

調べてみたところ、プロキシの設定方法は以下の3つがあることがわかったので、それぞれの設定内容を説明します。

pac

pacとは(Proxy Auto-Configuration)の略で、プロキシの設定をjavascriptというプログラミング言語で記述されたファイルのことです。このファイルをローカルエリアネットワークの設定画面で、自動構成スクリプトを使用するにチェックを入れて作成したpacファイルを配置したアドレスを記載したらプロキシが使えます。

pacファイルの書き方はjavascriptで書くのですが、許可するサイト・許可しないサイトを指定したり、曜日を指定したりなどできますが、私はホストのドメインに基づいてプロキシを設定しました。具体的には以下の通りです。

function FindProxyForURL(url, host)
 {
 if (isPlainHostName(host))
 return "DIRECT";
 else if (shExpMatch(host, "*.com"))
 return "PROXY comproxy:80";
 else if (shExpMatch(host, "*.co.jp"))
 return "PROXY eduproxy:80";
 else
 return "PROXY proxy";
 }

院内の各種WebサービスはほとんどIPアドレス指定で接続しているので、.comや.jpなどついたドメイン名はプロキシを使って接続するように設定しています。これだとほぼすべてのサイトに接続できてしまうのですが、今回は別にゲートウェイサーバーを用意しているので、許可したサイトしか見れないようにしています。ゲートウェイサーバーで設定すればプロキシの設定はドメインが合えば変更する必要もないので手間が省けます。

作成したpacファイルは拡張子を.pacと指定して共有フォルダなどに配置します。

WPAD

WPAD(Web Proxy Auto-Discovery)とは、DHCPやDNSサーバーを参照して、Webサーバからプロキシの設定ファイルを自動的にダウンロードして設定される方式です。設定ファイルはpacと同じjavascriptで記述するので、pacファイルを流用できます。ただし、ファイル名はwpad.datにする必要があります。

院内のPCは固定アドレスを振っているので、DNSサーバーに利用する方法を取りました。その場合はpad.datファイルを参照できるようにDNSサーバーにDNSレコードを登録する必要があります。私の場合はちょっとしたトラブルで、デフォルトの設定がwpadという名前が無効化されていた(グローバルクエリ禁止リストと言うらしいです。)ので、その設定を削除する必要がありましたのでご注意ください。 その後、wpad.datを配置し、ローカルエリアネットワークの設定画面で、設定を自動的に検出するにチェックを入れるとプロキシ経由で接続できます。

手動設定

手動設定は、LANにプロキシサーバーを利用するにチェックを入れて、proxyのアドレスとポート、必要によってhttpsやftpなどプロトコルごとの設定や例外設定などを手動で設定していきます。私もテスト段階ではこの方法で外部につながることを確認したのですが、職員一人一人にこの設定をしてもらうことは現実的ではないので、別の方法をとっています。

ADによる配布設定

AD(Active Directory)に院内のPCは登録されているので、ADサーバーのグループポリシーから設定を配布して適用させることにしました。ADではマシンごとの設定やユーザーごとの設定が行えて、調べたところpacファイルはユーザーごとの設定で、WPADはPCごとの設定になっていたかと思います。うちの病院では部署ごとにPCが整理して登録されてあったので、今回はWPADで適用させる方法を取りました。

グループポリシーのIEの管理用テンプレートがあり、ここで設定を自動的に検出をチェックして設定すると、グループポリシーが適用されたPCにチェックが反映され、さらにローカルエリアネットワークの設定が変更できないようになるという効果もありました。

グループポリシーの設定内容は多岐にわたるので、必要になって調べることが多いのですが、使いこなせれば効果的なツールだと思います。

まとめ

病院内では閉域ネットワーク、閉じたネットワークが主流ですが、外部の便利なサービスを使いたいと言う声も年々高まっています。外部ネットワークに接続してしまえば情報流出やウィルス感染など様々なデメリットも存在するので、慎重になって見定めていく必要があります。

必要なものだけ許可していくやり方や、危険のものが入ってきたら除去するなど対策方法はいろいろあると思いますが、予算や運用方法などを鑑みてネットワークの運用を定めていく必要があるかと思いました。