プロキシー - みる会図書館


検索対象: UNIX MAGAZINE 1998年9月号
14件見つかりました。

1. UNIX MAGAZINE 1998年9月号

図 2 逆プロキシーによる、 veb サーバークラスタ ( 1 ) 逆プロキシーによる方法 図 3 DNS インターネット ① Q:www.f00.dom? WWW 逆プロキシー ルールを書換え 用 a 「 / uux/ → http;www2 f00 . dom/bar/quux/ GET/bar/quux/ Web サイトの負荷分散・ 逆プロキシーによる Web サーパークラスタ ( 2 ) DNS サーバー インターネット Q.www.f00.dom? 3 GET/bar/quux/ WWW 逆プロキシー www 1 バックエンド・ サーバー www2 バックエンド・ サーバー wwwN バックエンド・ サーバー ② GET/bar/quux/ ルールを書換え GET/bar/quux/ 3 Dedicated Subnet http;www2 f00 dom/bar/quux/ a 「 / uux/ → www 1 バックエンド・ www2 バックエンド・ サーバー wwwN バックエンド・ サーバー DNS にもとづく方法は単純で分かりやすいが、いく っかの欠点もある。 DNS データのキャッシュと単純な BIND のラウンドロビンでは実用性カ氏い。たとえは、バ ックエンド・サーバーのどれか 1 つがクラッシュすれば、 このバックエンド・サーバーを利用していたユーザーは、 すくなくとも設定した TTL のあいだは www.foo.dom を使えない。いったんある特定のバックエンド・サー のアドレスカ吏われると、アドレス情報の期限が切れるま で同しアドレスが使われ続けるので、プラウサの Reload ボタンをクリックしても無駄である。また、ラウンドロピ ンはすべてのサーバーを平等に扱う。たとえは、リクエス トされた URL によってバックエンド・サーバーお尺す るといったことができない。 CPU への負荷の高い CGI プログラムなどのジョブを特定のバックエンド・サー 上で実行したい場合にはどうすれはよいだろうか。 その解決法が、、逆プロキシー " である。その名のとお り、通常とは逆方向て漣用される HTTP プロキシー・サ ーバーのことだ。通常、 HTTP プロキシー・サーバーは、 リクエストをまとめたり ( ファイアウォールを利用する場 合 ) 、帯域幅の無駄を減らすためにデータをキャッシュする といった働きをする。プラウサが http://www.foo.dom /bar/quux/ という完全 URL を呼び出すと、プロキシー がこのリクエストを親プロキシーに伝えるか、 www.foo. dom に相対 URL (/bar/quux/) を要求する。つまり、 UNIX MAGAZINE 1998.9 プロキシーは完全 URL を転送するか、それを相対 URL に置き換える。これに対し、逆プロキシーは www.foo. d 。 m サーバーとして振る舞い、相対 URL をそのバック 工ンド・サーバーの完全 URL に書き換える。 図 2 は、逆プロキシーとバックエンド・サーバーの位 置と、 ( プラウサ他のプロキシーに対する ) Web サー ーとしての重川乍を示したものである。逆プロキシーはそれ 自体がリクエストを処理するのではなく、バックエンド・ サーバーを決定してリクエストを渡し、その応答を転送す こでは DNS の小細工は必要ない。 www.f00.dom る。 は逆プロキシー自体の IP アドレスになる。セキュリテ ィと速度を考えて、バックエンド・サーバーを逆プロキ シーの背後に位置する別のサプネット上に置くこともでき る ( 図 3 ) 。こうすると、逆プロキシーとそのバックエン ド・サーバー間の通信トラフィックが分離さバックエ ンド・サーバー用に正式に割り当てられた IP アドレスや DNS 工ントリを使う必要もなくなる。さらに、バックエ ンド・サーバーを企業のファイアウォールの内側に置くこ ともできる。逆プロキシーを使うと、十分な柔性をもっ たネットワーク・トボロジーの構成が可能になる。 ネットワークとマシンのトボロジーを確立することでも たらされる利点は多い。第 1 に、アクセスポイントカ芍プ ロキシーのみになる。 このため、 Web クラスタを用いて 57

2. UNIX MAGAZINE 1998年9月号

ファイアウォ = ルの作り方 . ~ 白崎博生 - HTTP プロキシー 78 による通信を成立させるように言 t 、構築する必要があり の場合、ファイアウォールの内と外とのあいだで HTTP 来どおりに使える " 環境を実現しなけれはなりません。 討しているネットワーク管理者は、、、導入後も、 Web か従 このような状兄のもとで、ファイアウォールの導入を検 ることも珍しくありません。 になりつつあり、仕事に必要な情報を Web 経由で入手す どまっていました。しかし、現在の Web はピジネスの場 それらを提供する側の意識も迎未の域を越えない程度にと 以前は、 web で得られる情報の多くかな未的なもので、 こなわれます。 ロトコルで定められた手順に従ってデータのやりとりがお HTTP (HyperText Transfer Protocol) と呼ばれるプ びます。 Web サーバーと Web プラウザとのあいだでは、 がありますが、これらを総称して、、 Web プラウサ " と呼 Navigator/Communicator や lnternet Explorer など するプログラムが必要です。代表的なものには Netscape にアクセスするためのユーサー・インターフェイスを提供 ます。したがって、情報の検索や閲覧には、 Web サーバー ターネットに接続された Web サーバー上に登録されてい インターネット上で公開されている↑帯にの多くは、イン 手に入るようになりました。 きなかった情報が、いまではインターネット経由で簡単に んで調べたり、場合によってはお金を払わなければ入手で ソフトウェアのバグ清報・・・・・・、以前はあちこちに足を運 ニュース、辛府リ書や CD の新青報、レストランの情報、 天気予報、交通機のダイヤ、宝くじの当選番号、時事 ます。たとえば、 HTTP の通信だけを通す、、抜け穴 " や、 HTTP の通信だけを中継する、受渡しサーバー " などが 考えられます。これら以外の手法もあると思いますが、 の連載では、 HTTP のプロキシー・サーバーを導入する ガ去を紹介します。 HTTP のプロキシー・サーノヾーと聞いて、 Squid や Delegate を思い浮カべる人もいるでしよう。これらのプ ロキシー・サーバーカ鯛発された目的の 1 つは、インター ネットに流れる HTTP のトラフィックの軽減にあり、そ のために、、キャッシュ " などの機能を備えています。 FWTK にも、 http-gw という HTTP のプロキシー サーバーカ唸まれています。 http-gw は、、シンフ。ルである こと " を ; 頁において作られているので、上に挙げたプロ ーとは違い、ホストべースのアクセス制御 キシー・サー と、通信中の Java や ActiveX をフィルタリングする機 能しかありません。 SSL と Secure HTTP の中継もでき るようです ( 1997 年 12 月号で、 FWTK には SSL のフ ロキシー・サーバーがないという未のことを書きました が、間違いでした。ごめんなさい ) 。フィルタリングの仕 組みが単純なせいか、日本語の Web ページを表示させる と、うまく動かすに文字化けを起こすことが ( たまに ) あ ります。その場合は、「はつはつは、人生楽あれはあり ゃなあ」と笑ってごまかすか、自分で日本語パッチを作る か、あるいは FWTK の製品版である Gauntlet を購入 してください (FWTK と GauntIet の違いについては、 1997 年 12 月号を参照してください ) 。 http-gw の動イ乍 http-gw は、一殳にファイアウォール・ホスト上で 80 番のポートを受け付けるデーモンとして動作させます。 UNIX MAGAZINE 1998.9

3. UNIX MAGAZINE 1998年9月号

Web サイトの負荷分散・ リスト 5 apache-rproxy. conf-servers # # apache—rproxy. conf—servers # 1ist of back—end servers which serve static # pages (HTML files and lmages , etc. ) wwwl . f00 . dom ー w w2. f00 . dom ー www3. f00. dom ー www4. f00. dom static # list Of back—end servers which serve dynamically # generated page (CGI programs 0 て mod-perl scripts) Apache/mod—rewrite selection table dynamic www5. f00. dom ー www6. f00. dom 完全な逆プロキシーを作成することにした [ 9 ] 。このパッ チはノヾージョン 1.3b6 で公式の Apache ソースに組み込 まれる予定だが 1 、現在利用できるのは Apache 1.3b5 で ある。そのため、まずオリジナルのソースコードとパッチ から Apache バイナリを作る必喫がある。リスト 4 はそ のバイナリを自測吽成するためのスクリプトである ( 対応 するパッチと設定ファイルのサンフ。ルは URL[9] を参照 のこと ) 。 このスクリプトを実行すると、 apache-rproxy という バイナリが得られる。これは Apache から不要な機能 を除外し、同時に欠けていた機能を追加したものである。 これで逆プロキシーを作るための用意ができた。 wwwl. f00. dom ~ www6.f00.dom という 6 つのノヾックエンド Web サーノヾーのフールがあるとする。 www5.foo.dom と www6.foo.dom は CPU への負荷が大きいサービス専用 とし、 wwwl.f00.dom—www4.foo.dom はおもに静的 なコンテンツの処理に用いられる。これらのバックエン ド・サーバーのあいだでバランスのとれたトラフィック 0 縣合かできなくてはならない。 では、バックエンド・サーバーの構築を始めよう。ま す、 apache-rproxy. conf-servers ファイノレ ( リスト 5 ) を作る。 static キーて清勺なコンテンツを提供するサーバ ーを、 dynamic キーて加勺なコンテンツ専用サーバーを 指定する。 apache-rproxy バイナリを制御する実際の Apache の 設疋ファイル ( 末尾のリスト 6 ) も必要である。 apache- rproxy は、ます実行時のパラメータを設定する。いく っかのログファイルを設定して、逆プロキシーのログ を残しはかのファイルは作らないようにする。そして 1 調主 : しに版の Apache 1.3.0 がすでに公用されている。 1.3.0 では、 mod-proxy モジュール中の ProxyPassReverse 命令としてこの機 自劼まれるようになった。 UNIX MAGAZINE 1998.9 www.f00.dom/rproxy-status という URL でアクセス できるプロキシーのオンラインステータス・モニターを起 動する。そのあとに実際の逆プロキシーの設定か読く。ま す、ロギングなしで URL 書換え工ンジンを起動し、次 に、成疋ファイルとして apache-rproxy. conf-servers を 拓疋している。そして、ステータス・モニターがバックエ ンド・サーバーではなく口一カルで処理されることを石忍 し、インターネット上の第三者がこの逆プロキシーを標準 プロキシーとして用いるのを禁止する。 こまでで逆フロキシーの実装の準備か整った。ます、 CGI プログラムと SSI ページへのすべての URL を dy- namic キーにもとづいて書き換える。 www5.f00.dom か www6.foo.dom のいずれかのサーバーである。どちらを 利用するかは mod-rewrite によりランダムに選択され る。残るすべての URL は static キーに書かれたサーバー で処理される。書き換えた内容は、 Apache プロキシー モジュール mod-proxy から URL を送ることで有効に なる。また、ログファイル用の環境変数、、 SERVER" を設 定する。さらに、すべての URL か書き換えられるように する。キャッシングなしのプロキシーとして mod-proxy か起動される。次に、 mod-proxy を逆プロキシーとして 設疋する。 HTTP Location ヘッダにあるすべての URL を自分のところに迂回させるようにする。これにより、 ックエンド・サーバーには妾アクセスできなくなる。 サーバープロセス 最後に、逆プロキシー用に必要なサーバー数 (NOS) と メモリの量 (MBR) を計算する。これらの値の算出には、 3 つの入力パラメータが必要となる。予想される HTTP の 1 分ごとの最大リクエスト数 ( RPM ) 、 HTTP リクエ 59

4. UNIX MAGAZINE 1998年9月号

・ Web サイトの負荷分散 リスト 4 Apache パイナリ自動生成スクリプト # ! /bin/sh # # apache—rproxy. mk V=I .3b5 Bui1d the apache-rproxy binary echo "Unpacking Apache $V distribution tarball" 1 > & 2 gunzip く apache-$V. tar. gz ー tar xf cd apache—$V echo "Patching sources for Reverse Proxy support " 1 > & 2 patch -pl く .. /apache-$V. patch—rproxy >/dev/null 2 > & 1 Cd src echO "Configuring sources for Reverse Proxy usage" 1 > & 2 cat Configuration. tmpl ー \ sed —e 's/AAddM0du1e/# AddM0duIe/g' ー \ sed -ep 'sF [ # ] *\(AddModu1e. *mod-rewrite . 。 \ ) / \ 1 / g ' ハ sed -e 'sF [ # ] *\(AddModu1e. *libproxy. (\)/\l/g' ハ sed -e 'sP [ # ] *\(AddModu1e. *mod-mime . 。 \ ) / \ 1 / g ' ハ sed -e ' s/* [ # ] *\(AddModu1e. *mod-status . 。 \ ) / \ 1 / g ) ハ sed -e ' sF [ # ] *\(AddModu1e. *mod-log-config. (\)/\l/g' ハ sed —e ' s ;*EXTRA_CFLAGS=. * ; EXTRA_CFLAGS=DSERVER_SUBVERSION= \\"rproxy\/l . 0 \ \ " —DBUFFERED-LOGS -DDYNAMIC—MODULE_LIMIT=O ; g' 八 cat >Configuration . /Configure >/dev/null 2 > & 1 echo "Bui1ding runtime binary" 1 > & 2 make >/dev/null 2 > & 1 strip httpd cp httpd .. /.. /apache-rproxy echo "CIeaning up" 1 > & 2 rm —rf apache—$V いても Web サイトのトラフィックのロギングやモニタリ ングは屯になる。第 2 に、各リクエストを逆プロキシー が代表して扱うため、クラスタへのアクセスをローカルで 完全に管理できる。振分けの設定は逆プロキシーのなかで おこなわれるため、設定の変更を即座に有効にすることが できる。たとえは、バックエンド・サーバーのどれか 1 つ がクラッシュしても、逆プロキシーの構成を変更すれば、 クラッシュしたバックエンドかユーザー側でエラーとなる ことはなくなる。停止のときと同様に、イ夏後も簡単に再 起動させることができる。 逆プロキシーを実装するのに、どのようなハードウェ アやソフトウェアを用いるかという問題が残されてい る。選才尺肢は多い。 Squid lnternet Object Cache[2] 、 Netscape[3] と Microsoft [ 4 ] の Proxy Server 、 Sun の Netra Proxy Cache Server[5] などの専用プロキシーソ フトウェア・パッケージを使ったり、 CiscoSystems の LocalDirector[6] や Coyote point Systems の Equal- izer[7] など、ハードウェア・べースのシステムを逆プロ 58 キシーに利用することもできる。私は、 Apache[8] チーム の一員として、実用的で安価だか柔車幻生のある高性能なシ ステムを開発した。 バックエンド・サーバーへの大量の相対 URL リクエ ストを完全 URL リクエストに書き換えなくてはならな いため、強力な URL 書換え工ンジンと HTTP プロキ ・エンジンをもった刻鳳生のあるサーバーが必要であ る。 Apache の場合、フレフォーク・プロセスモデルと mod-rewrite 、 mod-proxy モジュールとして、すでに その機能が備わっている。 Apache モジュールから必要 な機能を選んて組み立てなおせばよい。 ランダムに URL を選ふ機能が mod-rewrite にない ことか問題になった。さらに、 mod-proxy が HTTP へ の応答を自分自身に向ける機能も必要だった。逆プロキシ ーには高い性能力球められるので、もっともよく使われて いる専用プロキシーの Squid か雎ーの代替〕尺肢である。 だが、このプログラムを逆プロキシーとして使うのはそれ ほど容易ではない。そこで、我々は Apache を強化して UNIX MAGAZINE 1998.9

5. UNIX MAGAZINE 1998年9月号

クライアント (Web プラウサ ) から、 http-gw 経由 # http—gw に対するルール permit—hosts 192.168.255. * http-gw : でファイアウォール外部のサーバーにアクセスするには、 Web プラウザで、、プロキシー " を使うように設定します ファイルの修正か終ったら、次のコマンドを実行して ( 設定方法は、それぞれのマニュアルを参照してくださ http-gw を起動します。 い ) 。最近リリースされている Web プラウサのほとんど # /usr/local/etc/http—gw —daemon http & は、プロキシーに対応しているはすです。 次に、実験用計算機上で Web プラウサを起動してプ http-gw は、このポートから HTTP リクエストを受 ロキシーの成疋を変更します。 Netscape Communica- け取ると、クライアントの IP アドレスを調べます。次 tor でのプロキシーの設疋例を図 1 ー b に示します。 FTP 、 に、 netperm-table に設定された内容と上交し、そのク Gopher 、 HTTP 、 SSL のプロトコルのそれぞれに対し ライアントに対してプロキシー・サービスを提供するかど て、ファイアウォール・ホストの IP アドレスと 80 番 うかを決定します。サーピスを拒否する場合は、ログに記 ポートを設定してください ( 現在は 192.168.255.1 に名 録してコネクションを切断します。一方、サービスを提供 前を付けていないため、とりあえす IP アドレスを指定し する場合は、受け取った HTTP リクエストの文字列を解 ています ) 。 析し、リクエストを中継する先のサーバーのホスト名を調 以 - ヒの準備か終ったら、実験用計算機七の Web プラ べます。ここで再度 netperm-table に設定された内容と ウザから、ファイアウォール外部の Web サーバーや 上交し、そのサーバーにアクセスしてよいかどうかを決定 anonymous FTP サーバーにアクセスしてみます。たと します。アクセスを拒否する場合は、ログに言求してコネ えは、図 1 ー a の salt 上の Web ページにアクセスすると、 クションを切断します。 ファイアウォール・ホスト上に次のようなログカ求され サーバーへのアクセスを許可するときは、 HTTP リク ます。 工ストの文字列から使用するプロトコルの種類 (HTTP や FTP 、 Gopher) を角斤し、適切なサーバーに接続し Ju1 12 12 : 00 : 28 sugar http—gw [ 2275 ] : permit host=exp. raccoon. doubutsu. CO. jp / 192.168.255.2 ます。そして、クライアントから受け取った HTTP リ use 0f gateway ( V2.1 ) クエストを適切な形式に変換したうえでサーバーへ送信し Ju1 12 12 : 00 : 40 sugar http—gw[2275] : 10g host=exp ・ raccoon. doubutsu. co. jp / 192.168.255.2 ます。その後、サーバーからデータが送り返されてくる protoc01=HTTP cmd=dir と、 http-gw はデータを受け取ってクライアントに中継 dest=salt . raccoon. doubutsu ・ CO ・ JP path=/ Ju1 12 12 : 00 : 42 sugar http-gw[2275] : します。 content—type= text/html 中継か終了すると、 http-gw は次のデータをログに記 Ju1 12 12 : 00 : 42 sugar http—gw [ 2275 ] : exit 録します。 host=exp. raccoon. doubutsu ・ CO ・ jP/192.168.255.2 cmds=l in = 2486 out=O user=unauth duration=14 クライアントのホスト名と IP アドレス 次に、中継先を制限する実験をしてみます。さきはど 中継先のホスト名 netperm-table に追加したルールを図 2 のように変更し 中継に使用したプロトコル名 ます。 中継したファイル名 ( またはディレクトリ名 ) ファイルの修正を終えたら、 Web プラウザから rac- 中継したデータのバイト数 coon. doubutsu. co. jp ドメイン内のサーノヾーと、それ以 外のサーバーにアクセスしてみましよう (http-gw を再 動かしてみよう 起動する必要はありません ) 。このように設定を変更する いつものように、 http-gw の重川テストをしてみまし と、 raccoon ドメイン内のサーバーにはアクセスできま すが、それ以、タ ) ドメインのサーバーにアクセスしようと ます、前回作成した netperm-table ファイルに次の すると、図 3 のようなメッセージが表示されて拒否され ルールを」助日します。 ます。 79 UNIX MAGAZINE 1998.9

6. UNIX MAGAZINE 1998年9月号

・ Web サイトの負荷分散 FreeBSD 上の Apache の性能調整 FreeBSD 上で Web サーバーとして Apache を使ってい るなら、最大限の性能を得るためにさまざまなパラメータか利 用できる。 ほとんどのオペレーティング・システムと同様に、最初に直 面する制約は、 TCP/IP の listen キューである場合が多い。 これは一判勺にイ尉寺できる TCP リクエストの上限である。 2 番目に重要なパラメータが mbuf クラスタ数である。これは増 やしておくべきだ。さらに、許容できる子プロセスとオープン できるファイルの最大数を増やすことができる。したがって、 負荷の大きなマシンであれば、リスト A のように、カーネルの 設定でこれら刎直を増やせばよい。 また、カーネル構築の段階で GCC コンパイラ・フラグ -mpentium 、一 02 、 -fexpensive-optimizations 、 -fomit- frame-pointer を用いて、最大限の最適化をすることも考え られるし、最斤の EGCS による Pentium 用の GCC を使っ たカーネルのコンパイルも可能た : オペレーティング・システムの整後、 Apache の生能強化 もできる。以のカーネル・パラメータ設定力冬ったら、ます、 リスト B-I のように、対応する Apache のパラメータ値を増 リスト A 負荷の大きいマシンのカーネル最適化 やしてから構築する。次に、 Apache の成疋ファイルをリス ト B-2 のように調整する。 リスト B Apache 生肯 —DHARD_SERVER_LIMIT=256 —DDYNAMIC_MODULE_LIMIT=O ( 1 ) —DBUFFERED_LOGS MinSpareServers StartServers MaxSpareServers MaxC1ients MaxRequestsPerChi1d KeepAIive KeepA1iveTimeout MaxKeepAIiveRequests Timeout IdentityCheck HostnameL00kups 256 256 256 256 10000 15 64 400 off off maxusers opt i ons options options options 256 SOMAXCONN=256 NMBCLUSTERS=4096 CHILD_MAX=512 OPEN_MAX=512 ストか完全に転送されるのに必喫な平均秒数 (SPR : 1 リ クエストあたりの秒数 ) 、 apache-rproxy プロセスをオペ レーティング・システム上で実行するのに必要な最大メモ リ量 (SPS : サーバープロセス・サイズ ) である。次の式 は、ソケットの処理の遅延のためにサーバーの 20 % がっ ねに利用できないことを前提としている。 NOS = cei1(RPM * SPR * ( 1 / 60 ) * ( 100 / 80 ) ) MBR = cei1((SPS * NOS * ( 100 / 70 ) ) / 16 ) * 16 さらに、これらの式は、逆プロキシーか利用可能なメモ リのうちの 70 % しか使わず、利用可能なメモリのうちの 16MB ぶんだけを割り当てることを前提としている。 たとえば、 FreeBSD 上で逆プロキシーを実行する場 合 ( コラム参照 ) 、 ps か top コマンドを使ってみる と、各サーノヾープロセスに 700 ~ 900KB のメモリが 必要なことが分かる。そのため我々は SPS を 0.9MB とした。また、毎分ほは、 1 , 000 のリクエストがあるた め、 RPM は 1 , 000 とした。 HTTP のべンチマーク 60 " \ . (htmllcgi)$> く Fi1es HostnameLookups on く \Fi1es> く Directory / > Options F0110wSymLinks A110wOverride None く /Directory> などによると、 1 リクエストあたりの処理時間は 0.5 ~ 4 秒である。そこで、 SPR を 2 秒とした。その結 果、 NOS = ceil ( 1000 * 2 * ( 1 / 60 ) * ( 100 / 80 ) ) = 42 である ことから、 42 台のサーバーが必要であり、 MBR=ceil ( ( 0.9 * 42 * ( 100 / 70 ) ) / 16 ) * 16 = 64 であることから、本 で 64MB のメモリが必喫だと分かった。 まとめ 低コストのサーバーを何台か使って負荷を分散させる 2 つのガ去を紹介した。 DNS 法はオ剽勺だが、 DNS データ のキャッシングの間題とクラスタ内のマシンに障害が発生 した場合に対処できないという欠点がある。逆プロキシー 法は、管理者か特定タスク専用のクラスタを設けることで 信頼性と制彳卸のしやすさを高めている。さらに改善を試み ることもできる。たとえは、逆プロキシーのスクリプトを 書いて、 rsh か ssh を通じてノヾックエンド・マシンの定 UNIX MAGAZINE 1998.9

7. UNIX MAGAZINE 1998年9月号

UNiX 1998 年 9 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 13 巻第 9 号通巻 143 号昭和 63 年 9 月 5 日第三種郵便物認可 Gigabi Ethertiet 月 1998 ー 22-2.0 のシステム構成と設定 H すす P プロキシーのインストールと設定 Web サイトの負荷分散 SIackware 33.0 のインストール 標準入出力を扱うプログラムの書き方

8. UNIX MAGAZINE 1998年9月号

CONTENTS 98 / 9 連載 10 16 40 63 66 78 87 95 104 107 123 134 4 UNIX Communication Notes ・・・・・山口英 ネットワーク管理 ( 7 ) Network Techno gy " ・・・・播ロ陽ー Ethernet の技術 Daemons & Dragons ・・・・••WiIIiam LeFebvre デバイスドライバの作成 ( 5 ) F 「 eeBSD ノート・・・・・・浜田直樹 Socks CIient 遠隔オフィスとの接続・・・・・・荒井美千子 HTTP プロキシー・サーバー ファイアウォールの作り方・・・・・・白崎博生 SIackware 3 .0 のインストール し inux でリラックス・・・・・・大崎博之 テキストの操作 PERL ADV OR ・・・・・・ Rand し . schwartz N -2.0 のインストール ( 2 ) コミュニケーション用サーバーのインストールと運用・ cat コマンド プログラミング・テクニック・・・・・・多治見寿和 Windows NT のシェルコマンド ( 2 ) INTEGRATION ・・・・・・ Tom Yager Sun のアップグレード NET WORTH ・・・・・・ M. steven Baker ログインの記録 ・ " 小山洋一 4 COVER, CONTENTS DESIGN ・ MORIYA, KAZUO & SONOBE, MAMI (AUDREYTHE DESIGN) ILLUSTRATION ・ SONOBE, MAMI

9. UNIX MAGAZINE 1998年9月号

図 1 てきるかな ? (a) ネットワーク 192.168.1.22 192.168.1.21 192.168.1.20 192.168.1.100 ロ ロ ロ ファイアウォール sugar chili salt pepper 192.168.255.1 実験ネットワーク 192.168.255.2 ロ 実験用計算機 exp (b) Communicator のプロキシーの言例 い 1 ね yconf ′を 3 Ⅳ oxy 聞臧い員 m 物催 0 h 可社田 n を ド猷 oc 載お c 日 第一 P 冖 y : 、 192 .168 . 255 . 町 日れ円 xy : 一ー y 師 xy 192.168.255. 町 W 用 S Y ・ t•a 社田′物田一はせ 30 引 t : う = 督 080 図 2 中継先を制限するルール —dest * . raccoon. doubutsu. CO. JP permit—hosts 192.168.255. * http—gw ・ 図 3 アクセスを拒否するメッセージ Access denied tO host www. 1i0Ⅱ . doubutsu. CO ・ JP Access denied tO destination www. 1i0Ⅱ . doubutsu ・ CO ・」P:80 ファイアウォール・ホスト上には、次のようなログが 求されているはすです。 Ju1 15 12 : 11 : 26 sugar http-gw[2293] : permit host=exp. raccoon. doubutsu. co. 」 p / 192 .168.255.2 use 0f gateway ()2 . 1 ) Ju1 15 12 : 11 : 37 sugar http-gw[2293] : deny host=exp. raccoon. doubutsu. co . jp / 192 . 168.255.2 connect tO www. lion. doubutsu. CO ・」 p Ju1 15 12 : 11 : 37 sugar http-gw[2293] : deny host=exp. raccoon. doubutsu. co. jp / 192 . 168.255.2 connect tO www. lion. doubutsu. CO. 」 p : 80 us er=u.nknown Ju1 15 12 : 11 : 37 sugar http-gw[2293] : exit host=exp ・ raccoon. doubutsu. co. jP/192.168.255 . 2 cmds=l in=O out=O user=unauth duration=ll 導入の手順 http-gw 導入の判断 セキュリティ・プランを参照し、 HTTP の通信を中継 するかどうかを石価忍します。 HTTP の通信を中継すると決めている場合は、 http- gw を導入します。 一方、 HTTP の通信を中継するという言己がない場合 は、 http-gw は導入しません。うつかり実行してセキュ リティの穴を作らないように、 http- gw をディスクから 一三ロ 80 UNIX MAGAZINE 1998.9

10. UNIX MAGAZINE 1998年9月号

表 1 http-gw のパラメータ属性 パラメータ属性 permit—hosts IPaddT ℃ ss permit—hosts ん OSt れ 07 e deny-hosts lPaddT ・ ess deny—hosts hostname browser を赤れ 9 default—policy policy groupid gro ? を d userid 社、を d directory d 加 ect0T 、リ t ime out S econ d,S UNIX MAGAZINE 1998.9 url—filter charsets ftp-proxy se ロ肥震 xcon—source 社 7 ・ I default-httpd server [ 挈 07 、 t ] default—gopher se 理礎・ [ 挈 0 ] オプション —j avascript ー no 」 avascript ¯safej avascript —safej ava —safeJ avascript —safeactivex ¯nOJ —safeJ ava —activex —noactivex —safeactivex ーⅡ 0 output ーⅡ 0 input —auth —authall -gopher -ht tpd -dest 佖れ —safej ava ー」 avascript ー no 」 avas cr ipt —safej avascript —activex —noactivex —safeactivex 説明 /P祠市・ ess からの孑を許可 ん os 腕佖 me からの接続を許可 Java の使用を許可 Java の使用を拒否 browser によって許可された Web プラウザのみ、 Java の使用を JavaScript の使用を許可 JavaScript の使用を拒否 browser によって許可された Web プラウザのみ、 使用を許可 ActiveX の使用を許可 ActiveX の使用を拒否 browser によって許可された Web プラウサのみ、 ActiveX の使 JavaScript の hostname からの孑売を拒否 IPaddress からの接続を拒否 孑を先を制限 デフォルトの HTTP サーノヾー ( とポート番号 ) を指定 デフォルトの Gopher サー / ヾー ( とポート番号 ) を指定 ューザー認証を要求 ューサー認証を要求 ファイルの取得を禁止 データの送信を禁止 用を許可 83 アクセスを禁止するファイル名やディレクトリ名を指定 ftp-gw プロキシー・サーバーを指定 Gopher 用アイコンイメージを↑タした URL を指定 デフォルトの HTTP サーノヾー ( とポート番号 ) を孑定 デフォルトの Gopher サー / ヾー ( とポート番号 ) を指定 孑切断までのアイド判りを言殳定 ディレクトリ directory に chroot(2) プログラムをユーサー ID userid の権限で実行 プログラムをグループ ID gro 記の権限で実行 ( 各オプションの未は permit-hosts の場合と同し ) Java 、 JavaScript 、 ActiveX の使用に関するポリシーを成正 ーを設定 Java 、 JavaScript 、 ActiveX の使用に関するデフォルトのポリシ ActiveX の使用を許可 JavaScript の使用を許可 Java の使用を許可 Web プラウサごとに使用の可否を指定