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

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

Proxyサーバ

1.Proxyサーバとは

Proxyとは”代理”という意味。
何を代理するかというと、一般的には、クライアントPCがインターネットにアクセスするのをProxyサーバ(「フォワードプロキシ」と言います。この言葉も覚えましょう!)が代理で応答する。
[PC]→HTTP→[Proxyサーバ]→HTTP(代理)→[インターネット(Web)]
LinuxのSquidというソフトで実現することもあれば、BlueCoatなどのアプライアンス(専用機)を利用する場合もある。

(1)Proxyサーバの設定

ブラウザで設定します。設定した様子は以下です。
https://drive.google.com/file/d/1m1lXIyWGMv2GNTKIm_lTIZvH5kDFs0bh/view?usp=sharing

(2)TCPのコネクション

TCPコネクションは2つになる。
ネットワークスペシャリスト試験の過去問(H18NW午前 問24)で具体的に問われている。

proxy

一つはクライアントとプロキシサーバ間、もうひとつは、プロキシサーバとWebサーバ間である。

Q.以下の構成のとき、❶と❷の送信元と宛先のIPアドレス、ポート番号は何か。

PC(192.168.1.101) == ❶ => ProxyServer(192.168.1.200:8080) ===> FW(LAN側192.168.1.254、WAN側198.51.100.1) == ❷ =>  WebServ(203.0.113.80:80)






A.正解は以下

❶送信元IP:192.168.1.101
 宛先IP192.168.1.200 ※宛先はWebサーバではなくProxy
 宛先ポート:8080
 送信元ポート:任意

❷送信元IP:198.51.100.1
 宛先IP:203.0.113.80
 宛先ポート:80
 送信元ポート:任意

(3)Proxyサーバの機能

女性ほおづえ
なぜProxyサーバを設置するのでしょうか。
その目的はなんですか?
目的は2つです。
①セキュリティの強化
 ・(サーキットゲートウェイ型ファイアウォールとして)
 ・ProxyにてAVやURLフィルタリングをすることが多々あります。(※本来機能ではありませんが)
 ・(補足的な目的ですが、通信ログの取得)
 ・ファイアウォールのルールをシンプルにすることで、セキュリティを強化する狙いもある。Proxyサーバを使うことで、社内からのHTTPやFTP通信は、送信元IPアドレスをProxyサーバのみに限定することができるなどのメリットがあります。

②インターネットアクセスの高速化
 ・一度閲覧したコンテンツをProxyサーバがキャッシュするため、他のクライアントPCが同一サイトにアクセスした場合に、表示が速い。
 ・(これにより、WANに流れる通信量を減らすことができる)

過去問(H19FE秋午前問37)では、プロキシの仕組みとして、以下のように述べられている。

社内ネットワークからインターネット接続を行うときに,インターネットへのアクセスを中継し, Webコンテンツをキャッシュすることによってアクセスを高速にする仕組みで,セキュリティ確保にも利用されるもの

また、H30秋NW午後Ⅰ問1では、「社内に対して,アクセス先URLのログ取得や,外部サーバのコンテンツをキャッシュして使用帯域を削減する目的で用いられる」と記載されています。

■Proxyサーバの機能
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)ウイルスチェック機能
 利用目的:インターネットサイトからのウイルス感染やインターネットサイトへのウイルス送信を防止する。送受信データ内のウイルスをチェックする。

利用者認証に関して補足します。
Proxyサーバで認証を設定することができます。
つまり、認証に成功した人しかログインさせないのです。
マルウェアがIDをパスワードを入力するのは一手間かかりますから、セキュリティ対策としては一定の効果があります。
また、R1秋SC午後Ⅰ問2には、「PC からインターネットにアクセスするためには利用者IDとパスワードによるBASIC認証(以下,PC からインターネットにアクセスする際にプロキシサーバで実施される BASIC認証をプロキシ認証という)を必須としている。」とあります。

認証にはBASIC認証とDIGEST認証があり、前者はパスワードが平文で流れますが、後者は暗号化されます。なのぜ、BASIC認証の場合、HTTPで通信する場合はパスワードが漏えいする危険があります。

では、実際の画面を紹介します。
プロキシ認証をする場合、インターネット接続のためにブラウザを立ち上げると、以下のような認証画面が出ます。
proxyAuth

■Proxyのセキュリティ機能
H22NW午後1問1には、以下の記述がある。

プロキシ1はキャッシュとURLフィルタリング用のプロキシサーバ,プロキシ2はウイルスチェック用のプロキシサーバである

女性ほおづえ

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

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

(4)HTTPS通信とプロキシサーバ(CONNECTメソッド)

女性目閉じる

疑問なんですが、HTTPSによる暗号化通信の場合、プロキシサーバはうまく処理できるのですか? 暗号化の鍵はPCとWebサーバでのみ共有されているから…
HTTPS通信の場合、PCはプロキシサーバに対し、HTTPSのセッション中継せずに、透過させるように依頼するCONNECTメソッドを使用します。
この処理はトンネリング処理と言われます。
H26PM2-1では、「プロキシサーバはPCにconnect応答を送信して,それ以降に受信したTCPデータをそのまま接続先に転送する,[ e :トンネリング ]処理の準備が整ったことを知らせる」とあります。

ネットワークスペシャリスト試験の過去問(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

■パケットをキャプチャしてみました。
プロキシサーバに対し、GETで送るのか、CONNECTメソッドにするかの判断をするのは誰でしょうか?
少なくとも利用者である人間はそんなことをしませんよね。
やっているのはブラウザです。
では、PCからのパケットを見てみましょう。
GoogleなどのHTTPS通信の場合は、以下のようにCONNECTメソッドを使っています。
connect

一方のHTTP通信の場合は、GETなどでアクセスします。
get

■Q&A

▼Q.CONNECTメソッドの場合、proxyサーバはCONNECTパケットを透過させて、そのままWebサーバに転送するのですか?






A.Noです。CONNECTメソッドは、そもそもProxyサーバまでしか送られません。
以下のように、CONNECTメソッドは、Proxyサーバまでです。

▼Q.そもそもですが、なぜ、CONNECTメソッドを使うんでしたっけ?






A.HTTPS通信であることをProxyサーバに通知するためです。

▼Q.じゃあ、通知が終わったらGETやPOSTで通信するのですか?






A.まず、TLSによる暗号化処理が行われます。
その後、暗号化された通信の中で、GETやPOST通信が行われます。
ちなみにですが、暗号化されているので、GETやPOSTなどの通信をパケットキャプチャでみることはできません。

▼Q.ProxyサーバはHTTPS通信を透過するのであれば、PCからWebサーバに直接通信をしますか?






A.いいえ。あくまでも通信先はProxyサーバです。なので、何もしない(転送するだけ)ですが、中継処理はしています。言葉だけの問題かもしれませんが、暗号鍵はWebサーバとPCしか持っていないので、WebサーバとPC間でTLSの通信路を確立します。過去問(H26PM2-1)では、「HTTPS通信の場合,プロキシサーバはSSLセッション開設のやりとりには介在しません。よって,SSLセッションはPCとWebサーバの間で開設されます。」とあります。

以下にパケットをお見せしますが、PCの通信相手は、全てProxyサーバのIPアドレスになっています。
connect
  こんな感じです。

▼Q.Proxyサーバで復号化する場合の流れはどうなりますか?






A.以下のシーケンスを参考にしてください。
2.復号機能をもつプロキシサーバ

■CONNECTメソッドの悪用
また、ここからはセキュリティの範囲になりますが、CONNECTメソッドを悪用してセキュリティをすり抜ける例を紹介します。

まずは過去問(2018春SC午後1問2)をみてみましょう。

W氏 :プロキシサーバの設定をみると,CONNECTメソッドの悪用を防ぐ制限がなされていませんね。
Kさん:CONNECTメソッドを悪用すると,どういう問題が生じるのでしょうか。
W氏 :図3に示すように,CONNECTメソッドを悪用してトンネルを確立させることで,Webメールサーバの機能を回避できます。そして,①この回避によっていくつかの問題が生じます。
Kさん: ポート制限機能に関する設計の見直しと設定変更案を作成します。

CONNECT x1.y1.z1.4:25 HTTP/1.1

図3 CONNECTメソッドを悪用したリクエスト

ここで、下線①のいくつかの問題というのは、本来するべきセキュリティチェックが行われないというものです。
この問題に即して解説します。(問題文を読んでいただくと、より状況が分かりやすいと思います)
・メールを送信するには、セキュリティチェック機能がある「Webメールサーバ」を経由する必要がある。それ以外の方法(外部メールサーバに直接や、インターネットから直接)を使って、セキュリティチェック機能を逃れようとしても、FWのポリシーでブロックされてしまっている。
・しかし、Proxyサーバへの通信はもちろん許可されている(この場合はなぜか、DMZにProxyサーバがある)。Proxyサーバ経由で上記のCONNECTメソッドを使って、外部メールサーバ(x1.y1.z1.4)に25番ポートで送信する。すると、CONNECTメソッドなので、Proxyサーバはなにもチェックせずに外部メールサーバに通信を中継していまう。→これが抜け道。
・こうして、FWのポリシーで絞られていても、社内のセキュリティチェックをすり抜けることができる。
1
ここで、通信を改めて整理しましょう。通常のHTTPSとの比較を記載しています。
①HTTPSで通信をする場合
・宛先IPアドレス:Proxyサーバ
・ポート番号:3128や8080などのProxyサーバのポート
・接続したいURL(HTTPヘッダに記載):CONNECT www.google.com:443

②SMTPで通信をする場合
・宛先IPアドレス:Proxyサーバ
・ポート番号:3128や8080などのProxyサーバのポート
・接続したいサーバ(HTTPヘッダに記載):CONNECT x1.y1.z1.4:25
※CONNECTメソッドはあくまでもHTTPのメソッドの一つなので、プロトコルはHTTPです。その後、SMTPに変わります。
以下も参考になります。
https://www.atmarkit.co.jp/ait/articles/0711/07/news125.html

さて、対策ですが、問題文にあるように、「ポート制限機能に関する設計の見直し」を行います。簡単にいうと、Proxyサーバで25番ポートの通信をうけないのです。

Proxyサーバ(オープンソースのSquidの場合)で、この設定をするには、設定ファイルを以下のようにします。

acl SSL_ports port 443  ←SSLのポートとして443を指定。複数指定する場合は、443 25 21などと複数ポートを並べて指定
http_access deny CONNECT !SSL_ports ←指定した上記のポート以外はCONNECTメソッドの使用を禁止

こう指定することで、HTTPSである443の通信以外のCONNECTメソッドによる通信を禁止します。


■Proxyサーバのログの例
(1)認証無し(Linux)
m/images/cleardot.gif - DIRECT/216.58.196.238 image/gif
1557126956.478     47 192.168.0.8 TCP_MISS/200 10436 GET http://sc.seeeko.com/ - DIRECT/203.104.130.159 text/html
1557126956.874     30 192.168.0.8 TCP_MISS/200 300 GET http://counter2.blog.livedoor.com/c? - DIRECT/125.6.146.22 image/gif
★こちらはHTTPSなので、CONNECTメソッドで接続している
1557126913.361    383 192.168.0.8 TCP_MISS/200 9887 CONNECT direct.bk.mufg.jp:443 - DIRECT/104.87.68.15 -

(2)認証有り(Windowsでやりました)
1558229766.648     71 192.168.0.7 TCP_MISS/200 10573 GET http://nw.seeeko.com/ user1 HIER_DIRECT/203.104.130.159 text/html
1558229766.881     35 192.168.0.7 TCP_MISS/200 3051 GET http://nw.seeeko.com/site.css? user1 HIER_DIRECT/203.104.130.159 text/css

2.復号機能をもつプロキシサーバ

(1)プロキシの復号機能

ネットワークスペシャリストの過去問(H26午後Ⅱ問1)に、プロキシの復号機能について述べられている

復号機能をもつプロキシサーバの場合,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)

しかし、プロキシサーバがSSLを終端してしまうと、利用者にはプロキシサーバの証明書しか見ることができない。その先で中間者攻撃が行われいるかどうかの判断ができないだ。最近では攻撃者もベリサインなどの正規の認証局から発行された証明書を使う。プロキシサーバでも中間者の証明書を確認するが、正規の認証局から発行されているので「正しい」としか判断できない(図2)。

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

(2)実際の動き

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

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

このとき、証明書ストアで「信頼されたルート証明機関」を選択すると確実です。

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

GoogleChromeの場合、ブラウザ右上の設定画面から「設定」>(一番下で)「詳細設定」>「証明書の管理」「信頼されたルート証明書」で「FGT~」という証明書がインストールされていることを確認する。

❹この状態でアクセスると、さきほどのように赤字でのセキュリティ警告は出ない。
また、URLの鍵マークを開き、「証明書」>「証明書のパス」を見て、FGTのルート証明書の配下にあることを確認する。
また、証明書の「詳細」を開くと、「発行者」は「FortiGate」であるが、たしかにCNはGoogleになってる。
参考だが、下記のように、*を使ったワイルドカード証明書が発生する。

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

この様子を動画にしました。ご覧ください。
https://drive.google.com/file/d/1jiqcy4hFdU2WNMV5_W0RARdIR8b9jSvQ/view?usp=sharing

3.パソコンの設定とPACファイル

(1)PACファイル

プロキシサーバを利用するためのパソコンの設定として、ネットワークスペシャリスト試験の過去問(H18NW午後1問2)では、以下のように述べられている。

プロキシサーバを利用するには,PCのWebブラウザにプロキシサーバの情報を設定する必要がある。その方法としては,プロキシサーバのIPアドレスを直接設定する方法と,プロキシサーバの利用情報を定義したファイル(以下,自動設定ファイルという)をWebサーバに登録し,その登録場所のURLをPCのWebブラウザに設定する方法とがある。B君はこれらの方法を比較し,自動設定ファイルを用いる方法を採用した。

1 
自動設定ファイルって、確かpac(proxy auto config)ファイルですよね。
メリットはありますか?
プロキシサーバのIPアドレスが変わっても、端末(パソコン)の設定変更をしなくて済む。パソコンが1000台などとたくさんある場合には、設定が大変だよね。
まあ、この点に関しては、IPアドレスを直接指定するのではなく、FQDNで指定しすればこの問題は解決する。

では、PACのメリットは何か?
メリットは、プログラムを書いたり、複雑な設定ができることである。たとえば、サーバAが落ちたらBに行くとか。大規模なネットワークでは、PACを使うことが多くなる。

(2)(試験には無関係)ProxyのPACファイルの作業メモ

試験には関係ないので、無視してください。けっこうはまってしまった・・・。
・やったことは、proxy.pacファイルを作成する。
・PACはローカルのパスは指定できない(HTTPで通信する必要がある)ので、Webサーバを建てて、そこに配置する。
管理が楽なので、XAMPPをWebサーバとして起動。C:\xampp\htdocsにproxy.pacを配置。
・PACファイルは、関数FindProxyForURLを使う
引数はurl, hostであり、インターネットにアクセスすると、この2つが引数として渡される。この値をもとに、PACにてプロキシの制御を行う。
たとえば、http://www.example.co.jpにアクセスすると、引数として、urlにhttp://www.example.co.jp、hostにwww.example.co.jpが渡される。
以下は、宛先がexample.co.jpであればプロキシを経由させない(direct)、それ以外はプロキシサーバ172.16.1.100に通信させるPACである。

proxy.pac
function FindProxyForURL(url, host) {
    // www.example.co.jpのホストへはProxyを経由せずに直接接続
    if (shExpMatch(host,"www.example.co.jp")) {
        return "DIRECT";
    }
    // それ以外のURLは、以下のProxyを利用する
      return "PROXY 172.16.1.100:8080";
    }

すごくはまった。原因の切り分けができていない。
まず、ローカルのファイルはダメなので、サーバにPACを置いた。http://127.0.0.1/proxy.pac
ループバックアドレスが原因かと思い、IPアドレスを指定したが、これが原因ではなかった。単なる構文の書き方なのか、よくわからない。まあ、動いてよかった。

簡単なテストとして、以下のpacには、nw.seeeko.comだけ直接接続。それ以外はProxyサーバ経由としている。以下のpacファイルを指定してもらい、nw.seeeko.comだけ接続できて、それ以外のサイトはエラーになることが確認できると思う。

function FindProxyForURL(url, host) {
    // nw.seeeko.comのホストへはProxyを経由せずに直接接続
    if (shExpMatch(host,"nw.seeeko.com")) {
        return "DIRECT";
    }
    // それ以外のURLは、以下のProxyを利用する
    return "PROXY 172.16.1.100:8080";
}

4.リバースプロキシ(Reverse Proxy)

女性悩み



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



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

一般に,プロキシには,[  ア:フォワード  ]プロキシと[  イ:リバース  ]プロキシがある。F社のプロキシのように[  ア:フォワード  ]プロキシは,社内に対して,アクセス先URLのログ取得や,外部サーバのコンテンツをキャッシュして使用帯域を削減する目的で用いられる。一方,[  イ:リバース  ]プロキシは,外部から公開サーバのオリジナルコンテンツに直接アクセスさせないことによる改ざん防止,キャッシュによる応答速度の向上,及び複数のサーバでの負荷分散を行う目的で用いられる。

ですから、リバースプロキシにも種類があり、大きく2つと考えておきましょう。
①外部からのリモートアクセス用
②公開サーバのセキュリティ確保や応答時間の向上

■リバースプロキシサーバの導入によるWebサーバのセキュリティ対策
H30NW午後Ⅰ問1には、以下の記載があります。

「一方,[ イ:リバース ]プロキシは,外部から公開サーバのオリジナルコンテンツに直接アクセスさせないことによる改ざん防止,キャッシュによる応答速度の向上,及び複数のサーバでの負荷分散を行う目的で用いられる。」

ネットワークスペシャリスト試験の過去問(H27秋NW午前Ⅱ問18)では、「プロキシサーバ又はリバースプロキシサーバを新たにDMZに導入するセキュリティ強化策のうち,導入によるセキュリティ上の効果が最も高いものはどれか」として、「DMZ上の公開用Webサーバとしてリバースプロキシサーバを設置し,その参照先のWebサーバを,外部からアクセスできない別のDMZに移設することによって,外部から直接Webサーバのコンテンツが改ざんされることを防ぐ」とあります。

別の過去問(H23春AP午後問5)もみてみましょう。

〔リバースプロキシサーバの導入〕
リバースプロキシサーバは,インターネットからのアクセスを受け付け,アクセス時に指定されたURLに対応する別のサーバに通信を中継する,プロキシサーバの一種である。 URLとサーバの対応は,あらかじめ設定されている。
C社では,セキュリティの強化とWebサーバの負荷分散のため,リバースプロキシサーバを導入してシステムを分散管理することにした。変更後のシステム構成を図2に示す。
変更後のシステム構成では,リバースプロキシサーバだけをDMZに配置し,それ以外のサーバは社内LANに配置する。
ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い,リバースプロキシサーバと各Webサーバ(192.168.5.201. 192.168.5.202及び192.168.5.203)の通信では, SSLは用いない。
第三者機関から取得したサーパ証明書は[ a:リバースプロキシサーバ ]にインストールする。
reverse_proxy
電話工事管理システム,インターネット工事管理システム及びテレビ工事管理システムは,それぞれ別々のWebサーバで運用する。ログインページのURLパスは,どの工事管理システムも共通で“login.html"とする。
FWlではポート番号[ b:443 ]の通信を, FW2ではポート番号[ c:80 ]の通信を許可しておく。また,リバースプロキシサーバには,表2の設定をする。

  表2 リバースプロキシサーバの設定
[ d:http ]