ネットワークスペシャリスト - SE娘の剣 -

ネットワークスペシャリストの試験対策サイトです。
ネスペ試験の合格体験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。

カテゴリ:10.アプリケーション層(L5〜L7) > 10.6 Proxyサーバ

Proxyとは”代理”という意味。
何を代理するかというと、一般的には、クライアントPCがインターネットにアクセスするのをProxyサーバが代理で応答する。
[PC]→HTTP→[Proxyサーバ]→HTTP(代理)→[インターネット(Web)]
LinuxのSquidというソフトで実現することもあれば、BlueCoatなどのアプライアンス(専用機)を利用する場合もある。
女性ほおづえ
なぜProxyサーバを設置するのでしょうか。
その目的はなんですか?
目的は2つです。
.札ュリティの強化(サーキットゲートウェイ型ファイアウォールとして)
▲ぅ鵐拭璽優奪肇▲セスの高速化
 一度閲覧したコンテンツをProxyサーバがキャッシュするため、他のクライアントPCが同一サイトにアクセスした場合に、表示が速い。
(J簑的な目的)通信ログの取得
 それ以外には、ファイアウォールのルールをシンプルにすることで、セキュリティを強化する狙いもある。Proxyサーバを使うことで、社内からのHTTPやFTP通信は、送信元IPアドレスをProxyサーバのみに限定することができるなどのメリットがあります。

過去問(H19FE秋午前問37)では、プロキシの仕組みとして、以下のように述べられている。
社内ネットワークからインターネット接続を行うときに,インターネットへのアクセスを中継し, Webコンテンツをキャッシュすることによってアクセスを高速にする仕組みで,セキュリティ確保にも利用されるもの

◆TCPのコネクション
TCPコネクションは2つになる。
過去問(H18NW午前 問24)で具体的に問われている。
proxy
一つはクライアントとプロキシサーバ間、もうひとつは、プロキシサーバとWebサーバ間である。

女性悩み

Reverse(逆)のProxyですが、
何が”逆”なのでしょうか?
あまり深い意味はないです。
インターネット閲覧時のProxyサーバの役割は、内部から外部への通信を”代理(Proxy)”します。Reverse Proxyは外部から内部への通信を”代理(Proxy)”するので、”逆”になります。
女性目閉じる

そんな通信ってあるのですか?
はい、あります。
SSL-VPN装置はReverseProxyの一つです。外部(出先や自宅)から、内部(社内LAN)にSSL-VPN装置経由でアクセスするからです。
過去問では「Webサーバを使ったシステムにおいて、インターネットから受け取ったリクエストをWebサーバに中継する仕組み」とある。(H21NW午前 問17)
リバースプロキシ_ネットワークスペシャリスト

プロキシサーバを利用するためのパソコンの設定として、過去問(H18NW午後1問2)では、以下のように述べられている。
プロキシサーバを利用するには,PCのWebブラウザにプロキシサーバの情報を設定する必要がある。その方法としては,プロキシサーバのIPアドレスを直接設定する方法と,プロキシサーバの利用情報を定義したファイル(以下,自動設定ファイルという)をWebサーバに登録し,その登録場所のURLをPCのWebブラウザに設定する方法とがある。B君はこれらの方法を比較し,自動設定ファイルを用いる方法を採用した。
1 
 

自動設定ファイルって、確かpac(proxy auto config)ファイルですよね。
メリットはありますか?
プロキシサーバのIPアドレスが変わっても、端末(パソコン)の設定変更をしなくて済む。パソコンが1000台などとたくさんある場合には、設定が大変だよね。
まあ、この点に関しては、IPアドレスを直接指定するのではなく、FQDNで指定しすればこの問題は解決する。
では、PACのメリットは何か?
メリットは、プログラムを書いたり、複雑な設定ができることである。たとえば、サーバAが落ちたらBに行くとか。大規模なネットワークでは、pacを使うことが多くなる。

H22NW午後1問1には、以下の記述がある。
プロキシ1はキャッシュとURLフィルタリング用のプロキシサーバ,プロキシ2はウイルスチェック用のプロキシサーバである
女性ほおづえ

キャッシュはプロキシ本来の機能ですね。
プロキシのセキュリティ機能って、URLフィルタやウイルスチェックを指すんでしょうか?
いや。そうではない。プロキシのセキュリティ機能は、プロキシサーバで中継することにより、送信元のIPアドレスを隠したり、データの整合性チェックなどを行っている。
よって、URLフィルタやウイルスチェックはプロキシの機能ではない。

ただ、実際の製品としては、BlueCoatが圧倒的なシェアを誇っている。この、BlueCoatではURLフィルタやウイルスチェックの機能を持っている。また、実際の現場でもよくつかわれる機能である。
試験問題は、実務に合わせて作られているため、このような出題になったのであろう。
1
テストには出ないと思いますが、参考までに質問です。
動画のキャッシュもできますか?
最近では、社内での動画利用も増えてきていると聞きました。
偉い人の挨拶が動画で配信されるとか。
BlueCoatの場合はできる。他社の場合はできるが、多少厳しそうだ。
とうのも、YouTubeなどの場合、動画一つに対し、アドレス(URL)が固定ではなく、変動するからだ。BlueCoatの場合は、このあたりの対処をCache Pulseでうまくやっている。

H23SC秋PM1問3に、プロキシの利用機能の例が載っているので紹介する。キャッシュによる高速化の本来機能ではなく、オプション機能を中心に述べられている。あくまでもオプション機能の例であり、製品によっても機能が異なる点には留意してほしい。

(1)利用者認証機能
 利用目的:インターネットサイトにアクセスする従業員を識別し認証する。
  ブラウザがHTTPリクエストのProxy-Authorizationヘッダに付与し,Uプロキシに送信した認証情報を,各従業員に一意に割り当てられた利用者IDとパスワードに照らして,アクセスした利用者を識別し認証する。

(2)アクセスログ取得機能
 利用目的:従業員によるインターネットサイトへのアクセスについて,HTTPリクエストごとに,次の項目を取得する。
  アクセス日時,アクセス元のIPアドレス,利用者ID,リクエストライン(HTTPメソッド,URL,   HTTPプロトコルのバージョン),インターネットサイトのIPアドレス,受信データサイズ,インターネットサイトからのレスポンスコード

(3)送信内容取得機能
 利用目的:インターネットサイトにデータが送信された場合(POSTリクエスト,  PUTリクエストの利用時など)に,その送信内容を取得する。

(4)フィルタリング機能
 利用目的:インターネットサイトへのアクセスを業務目的だけに制限する。
HTTP通信ではブラックリスト方式,   HTTPS通信ではホワイトリスト方式で,インターネットサイトのホストのFQDNに基づいたアクセス規制をする。

(5)ウイルスチェック機能
 利用目的:インターネットサイトからのウイルス感染やインターネットサイトへのウイルス送信を防止する。送受信データ内のウイルスをチェックする。

女性目閉じる

疑問なんですが、HTTPSによる暗号化通信の場合、プロキシサーバはうまく処理できるのですか? 暗号化の鍵はPCとWebサーバでのみ共有されているから…
HTTPS通信の場合、PCはプロキシサーバに対し、HTTPSのセッション中継せずに、透過させるように依頼するCONNECTメソッドを使用します。
過去問(H21NW午後1問2)では、「Webメールで利用するHTTPSでは、PCは[ オ CONNECT]メソッドを利用してプロキシサーバへ接続先を指定し、SSLセッションをASPサーバとの間で確立する」と述べられている。

具体的には、H23SC秋午後橘3に、Uプロキシの動作として説明がある。
Uプロキシを利用したHTTPS通信では,暗号化された通信路をブラウザとWebサーバ間で確立する。Uプロキシを利用した場合のHTTPS通信を図3に示す。proxy2
女性口開き

そうなんですか?じゃあ、SSL通信をすれば、プロキシによるセキュリティチェック、ウイルスチェックなどは無しということ?
結構危険ですね。
最近の製品では、HTTPS通信であっても、きちんと中継する製品が多い。この仕組みを実現するには、プロキシサーバで、代理のサーバ証明書を提示する。場合によっては、PC側でブラウザによるセキュリティ警告がでる可能性がある。
詳しくはこの問題にチャレンジいただきたい。

一方,  Lプロキシを利用したHTTPS通信では,ブラウザとLプロキシ間,及びLプロキシとWebサーバ間において,それぞれ独立の暗号化された通信路を確立する。Lプロキシは証明書1を受け取ると,ブラウザには転送せずに,自身で証明書1の検証を行う。次に,   Lプロキシは認証局として証明書1と同じコモンネームのサーバ証明書(以下,証明書2という)を新たに作成し,ブラウザに送る。Lプロキシを利用した場合のHTTPS通信を図4に示す。 proxy23  

ネットワークスペシャリストの過去問(H26午後玉筍院砲法▲廛蹈シの復号機能について述べられている
復号機能をもつプロキシサーバの場合,PCからのconnect要求を受信した後の動作は,次のようになる。
復号機能をもつプロキシサーバの動作手順の概要を,図3に示す。
 
seeeko_proxyネットワークスペシャリスト
図3に示したように、 PCからのconnect要求を受信したプロキシサーバは,まず, 銑の手順でWebサーバとの間でSSLセッションを開設し,更にPCとの間でも,ぁ銑Δ亮蟒腓SSLセッションを開設する。このとき,イ如ぅ廛蹈シサーバは,サブジェクト(Subject)に含まれるコモン名(CN : Common Name)に,サーバ証明書1と同じ情報をもたせたサーバ証明書2を生成して, PC宛てに送信する。PCはサーバ証明書2を検証し,認証できたときにΔ行われ.  SSLセッションが開設される。ここで,  PCがサーバ証明書2を正当なものと判断してプロキシサーバを認証するためには,PCに, (エ)サーバ証明書2を検証するのに必要な情報を保有させる必要がある。

中間者攻撃を防ぐProxyの仕組みが書かれてある。

ネットワークスペシャリストを目指す女性SEあれ? 

なぜ、ProxyでSSLを中継すると、中間者攻撃を受けやすくなるの?

HTTPSでは、WebサーバとPC間でSSLによる安全な通信経路を確立する。利用者がWebサーバの証明書を確認できるため、中間者がつけいる隙がない(図1)
 
ネットワークスペシャリストProxy
しかし、プロキシサーバがSSLを終端してしまうと、利用者にはプロキシサーバの証明書しか見ることができない。その先で中間者攻撃が行われいるかどうかの判断ができないだ。最近では攻撃者もベリサインなどの正規の認証局から発行された証明書を使う。プロキシサーバでも中間者の証明書を確認するが、正規の認証局から発行されているので「正しい」としか判断できない(図2)。

そこで、上記の過去問だ。「プロキシサーバは,サブジェクト(Subject)に含まれるコモン名(CN : Common Name)に,サーバ証明書1と同じ情報をもたせたサーバ証明書2を生成して, PC宛てに送信する」のである。

実際の動き
画面キャプチャで紹介する
ForiGateをProxyサーバとして利用し、SSLを中継する。
すると、Fortigateが証明書を出すので、証明書エラーがでる。
ssl1

ForiGateのルート証明書を入手し、「証明書のインストール」にてPCにインストールする
ssl2

すると、「信頼されたルート証明機関」にFortiGateのルート証明書がインストールされる
ssl3

この状態でアクセスると、さきほどのように赤字でのセキュリティ警告は出ない。
証明書を開くと、「発行者」は「FortiGate」であるが、たしかにCNはGoogleになってる。
ssl4

とはいえ、こんな感じに、やんわりと警告は残っている。
ssl5

このページのトップヘ