応用情報技術者 2011年 春期 午後 問05
リバースプロキシサーバの導入に関する次の記述を読んで、設問1~3に答えよ。
C社は、電話、インターネット及びテレビのサービスを一括して顧客に提供するCATV事業者である。
〔現在のシステム構成〕
C社では、日々の業務において、工事担当者が現場にいながらにして、作業予定の確認や作業報告ができるように、電話工事管理システム、インターネット工事管理システム及びテレビ工事管理システムという携帯電話端末用のWebシステムを導入し、業務効率向上を目指してきた。
現在のシステム構成を図1に示す。携帯電話端末は、携帯電話網とインターネットを接続するためのゲートウェイを経由して、インターネット上に公開されたWebサーバにアクセスする。“www.example.com”は、FW1のインターネット側IPアドレスに割り付けられたドメイン名である。

電話工事管理システム、インターネット工事管理システム及びテレビ工事管理システムは同一のWebサーバ上に配置されており、通信時にはSSLを用いた暗号化が行われる。HTTPで用いるポート番号は80、HTTPSで用いるポート番号は443であり、Webサーバには第3者機関から取得したサーバ証明書がインストールされている。
FW1 に到着したWebサーバへのアクセス要求のパケットのうち通信が許可されたものだけが、ファイアウォールの静的アドレス変換の機能によって 192.168.3.90 に転送されるように設定されている。
Webシステムが利用するデータは、社内 LAN 内部の DBサーバに蓄積される。
電話工事管理システム、インターネット工事管理システム及びテレビ工事管理システムは、それぞれが独立した Webアプリケーションとして構築されている。Webアプリケーションを利用するにはログイン操作が必要であり、Webサーバ上のログインページの URL パスは表1のとおりである。
なお、URL パスとは、URL 中のドメイン名より後の部分のことである。

各工事管理システムへの携帯電話端末以外からのアクセスを禁止するために、Webサーバにはアクセス制御の設定をしている。携帯電話端末以外から各工事管理システムにアクセスしようとしても、システムを利用することはできない。
なお、携帯電話端末からのアクセスか否かの判定は、Webサーバに通知される送信元IPアドレスを参照することで行われる。
〔リバースプロキシサーバの導入〕
リバースプロキシサーバは、インターネットからのアクセスを受け付け、アクセス時に指定された URL に対応する別のサーバに通信を中継する、プロキシサーバの一種である。URL とサーバの対応は、あらかじめ設定されている。
C社では、セキュリティの強化とWebサーバの負荷分散のため、リバースプロキシサーバを導入してシステムを分散管理することにした。変更後のシステム構成を図2に示す。
変更後のシステム構成では、リバースプロキシサーバだけを DMZ に配置し、それ以外のサーバは社内 LAN に配置する。
ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い、リバースプロキシサーバと各Webサーバ(192.168.5.201、192.168.5.202及び192.168.5.203)の通信では、SSLは用いない。
第三者機関から取得したサーバ証明書は a にインストールする。
電話工事管理システム、インターネット工事管理システム及びテレビ工事管理システムは、それぞれ別々のWebサーバで運用する。ログインページのURLパスは、どの工事管理システムも共通で "login.html" とする。
FW1ではポート番号 b の通信を、FW2ではポート番号 c の通信を許可しておく。また、リバースプロキシサーバには、表2の設定をする。
現在のシステム構成(図1)では、Webサーバで携帯電話端末以外からのアクセスを禁止するアクセス制御を行っているが、①変更後のシステム構成(図2)では、各Webサーバ(192.168.5.201、192.168.5.202及び192.168.5.203)でアクセス制御を適切に行うことができない。そこで、②ファイアウォールのパケットフィルタに、携帯電話端末からのアクセス時に使用されるIPアドレスの範囲以外からの通信を禁止する設定を追加することで、アクセス制御を行うように変更した。
携帯電話端末から、インターネット工事管理システムのログイン画面にアクセスする際の処理の流れを次に示す。
(1) 携帯電話端末から、e://f にアクセスする操作が行われる。
(2) ゲートウェイを経由して e://f に対するアクセス要求が送信される。
(3) 静的アドレス変換の機能によって、通信はリバースプロキシサーバに転送される。
(4) リバースプロキシサーバは、設定に基づいて g://h にアクセスする。
(5) リバースプロキシサーバは、Webサーバから受け取った結果をゲートウェイに返す。
(6) ゲートウェイは、ログイン画面の表示内容を携帯電話端末に返す。設問1:
本文中のa~dに入れる適切な字句を答えよ。ここで、aには図2中の機器の名称が入る。
模範解答
a:リバースプロキシサーバ
b:443
c:80
d:http
解説
解答の論理構成
-
サーバ証明書の設置先
引用: “第三者機関から取得したサーバ証明書は a にインストールする。”
直前の記述で “リバースプロキシサーバだけを DMZ に配置し…ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い” とあります。SSLを終端する機器に証明書を置くのが原則なので、a は “リバースプロキシサーバ” となります。 -
FW1 で許可すべきポート番号
引用: “ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い”
SSL (HTTPS) は “HTTPで用いるポート番号は80、HTTPSで用いるポート番号は443” と定義済み。したがって、インターネット側(FW1)で許可するのは “443” です。
よって b=443。 -
FW2 で許可すべきポート番号
引用: “リバースプロキシサーバと各Webサーバ…の通信では、SSLは用いない。”
SSL を用いない=平文 HTTP なので、c には HTTP の既定ポート “80” を設定します。 -
転送先 URL のスキーム
表2では “d://192.168.5.201/” などと記載されています。前項で確認したとおり内部通信は非SSLですから、スキームは “http”。
よって d=http。
これにより模範解答
a: リバースプロキシサーバ
b: 443
c: 80
d: http
が導かれます。
a: リバースプロキシサーバ
b: 443
c: 80
d: http
が導かれます。
誤りやすいポイント
- “SSL を用いた通信” と聞いて、DMZ 内部もすべて HTTPS と決めつけてしまい c まで “443” にしてしまう。
- 証明書は Webサーバに載せるものという思い込みから a を “各Webサーバ” と誤記する。
- 表2の “d://” の空欄を URL の先頭に来る “https” と思い込む(内部通信は平文という条件を見落とし)。
FAQ
Q: リバースプロキシサーバで SSL を終端すると、内部通信が平文になりますが安全でしょうか?
A: DMZ 内で暗号を解除し、FW2 で社内 LAN へ限定したルートを提供しています。内部ネットワークは物理的・論理的に外部から隔離されているため、許容される設計です。必要に応じて内部を HTTPS にすることもできますが、本問では負荷分散と管理性を優先しています。
A: DMZ 内で暗号を解除し、FW2 で社内 LAN へ限定したルートを提供しています。内部ネットワークは物理的・論理的に外部から隔離されているため、許容される設計です。必要に応じて内部を HTTPS にすることもできますが、本問では負荷分散と管理性を優先しています。
Q: 証明書を各 Web サーバではなくリバースプロキシサーバに置くメリットは?
A: 1枚の証明書で複数サーバをまとめて保護でき、証明書更新の手間を削減できます。また暗号処理をプロキシに集約できるため、バックエンドサーバの負荷軽減にもつながります。
A: 1枚の証明書で複数サーバをまとめて保護でき、証明書更新の手間を削減できます。また暗号処理をプロキシに集約できるため、バックエンドサーバの負荷軽減にもつながります。
Q: ポート番号 80 と 443 以外を使ってはいけませんか?
A: 技術的には他ポートでも SSL/TLS や HTTP は動作します。ただしファイアウォール設定・端末側設定を簡素化する観点から、標準ポートの “80” と “443” を用いるのが一般的です。
A: 技術的には他ポートでも SSL/TLS や HTTP は動作します。ただしファイアウォール設定・端末側設定を簡素化する観点から、標準ポートの “80” と “443” を用いるのが一般的です。
関連キーワード: リバースプロキシ, パケットフィルタ, DMZ, SSL/TLS, ポート番号
設問2:
本文中のe~hに適切な字句を入れてURLを完成させよ。
模範解答
e:https
f:www.example.com/srv2/login.html
g:http
h:192.168.5.202/login.html
解説
解答の論理構成
-
外部アクセス時のプロトコル
- 【問題文】「ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い」とあるため、外部(携帯電話端末→リバースプロキシサーバ)では HTTPS(https)を利用します。
- よって e は https です。
-
外部アクセス時のホスト名+パス
- インターネット側から見える FQDN は【問題文】「“www.example.com”は、FW1のインターネット側IPアドレスに割り付けられたドメイン名である。」と明示されています。
- インターネット工事管理システムは【問題文】「表2 リバースプロキシサーバの設定」で /srv2/ が転送対象。ログインページは【問題文】「ログインページのURLパスは、どの工事管理システムも共通で login.html とする。」とあります。
- 以上より外部 URL は www.example.com/srv2/login.html。したがって f は www.example.com/srv2/login.html です。
-
内部転送時のプロトコル
- 【問題文】「リバースプロキシサーバと各Webサーバ(192.168.5.201、192.168.5.202及び192.168.5.203)の通信では、SSLは用いない。」とあるので平文 HTTP(http)となります。
- したがって g は http です。
-
内部転送時のホスト名+パス
- インターネット工事管理システム用 Web サーバは【問題文】図2 に示すとおり 192.168.5.202。
- リバースプロキシは /srv2/ を http://192.168.5.202/ に転送する設定になっているので、ログインページは http://192.168.5.202/login.html。
- よって h は 192.168.5.202/login.html です。
以上をまとめると
- e:https
- f:www.example.com/srv2/login.html
- g:http
- h:192.168.5.202/login.html
誤りやすいポイント
- 「リバースプロキシサーバと各Webサーバの通信では、SSLは用いない」を読み落として g を https にしてしまう。
- 表2の「/srv2/」設定を見落とし、/srv1/ や /srv3/ と取り違えて f を誤記。
- 外部 URL に内部 IP アドレス 192.168.5.202 を書いてしまうなど、DMZ/社内 LAN の区別を混同する。
FAQ
Q: 外部 URL の先頭が https になる根拠はどこですか?
A: 【問題文】「ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い」とあるため HTTPS となります。
A: 【問題文】「ゲートウェイとリバースプロキシサーバの通信ではSSLを用いた通信を行い」とあるため HTTPS となります。
Q: 内部転送先の URL に /srv2/ を付けなくて良いのですか?
A: リバースプロキシが /srv2/ を取り除いたうえで http://192.168.5.202/ に転送する設定(表2)なので、内部 URL は http://192.168.5.202/login.html になります。
A: リバースプロキシが /srv2/ を取り除いたうえで http://192.168.5.202/ に転送する設定(表2)なので、内部 URL は http://192.168.5.202/login.html になります。
Q: もし各 Web サーバにも SSL 証明書を入れたら g はどうなりますか?
A: 各 Web サーバが SSL に対応し、プロキシとの間も暗号化する設計に変更した場合は g=https に変わります。ただし今回の条件では「SSLは用いない」と明記されているため http が正解です。
A: 各 Web サーバが SSL に対応し、プロキシとの間も暗号化する設計に変更した場合は g=https に変わります。ただし今回の条件では「SSLは用いない」と明記されているため http が正解です。
関連キーワード: SSL/TLS, リバースプロキシ, DMZ, パケットフィルタ, URL ルーティング
設問3:本文中の下線①、②について、(1)、(2)に答えよ。
(1)下線①について、変更後のシステム構成で、各Webサーバ(192.168.5.201,192.168.5.202及び192.168.5.203)ではアクセス制御を適切に行えない理由は何か。図2中のIPアドレスを用いて40字以内で述べよ。
模範解答
送信元のIPアドレスが、すべて192.168.3.90になるから
解説
解答の論理構成
- 【問題文】には、リバースプロキシサーバが “DMZ” に置かれ、IP アドレスが “192.168.3.90” であると記されています。
引用:「リバースプロキシサーバ…右上にIPアドレス “192.168.3.90” の表記」 - 同じく【問題文】には、携帯電話端末かどうかの判定を「送信元 IP アドレスを参照」して行うと書かれています。
引用:「携帯電話端末以外からのアクセスか否かの判定は、Webサーバに通知される送信元 IP アドレスを参照することで行われる。」 - 変更後は、外部からの通信が必ずリバースプロキシサーバを経由して社内 LAN の各 Web サーバ( “192.168.5.201” “192.168.5.202” “192.168.5.203” )に届けられます。
引用:「リバースプロキシサーバは、インターネットからのアクセスを受け付け…通信を中継する」 - この中継で元の送信元 IP はプロキシの IP に書き換えられるため、各 Web サーバが受け取るパケットの送信元は常に “192.168.3.90” となります。
結果として、元々 Web サーバで行っていた「送信元 IP によるアクセス制御」が機能しなくなります。 - 以上から、解答は「送信元のIPアドレスが、すべて192.168.3.90になるから」となります。
誤りやすいポイント
- 「X-Forwarded-For ヘッダを見れば良い」と考えてしまう
→ 出題は OSI 第3層のパケットフィルタ条件について問うており、アプリ層ヘッダは対象外です。 - 「192.168.5.201 など社内側で何らかの NAT を行えば区別できる」と誤解する
→ 区別したいのは送信元、つまり外部利用者の IP。NAT は宛先アドレスの変換であり解決策になりません。 - 「UA(User-Agent)が携帯ブラウザなら判定可能では?」
→ 問題文に「送信元 IP アドレスを参照」と明示されているため、他の情報は前提として使えません。
FAQ
Q: Web サーバ側で X-Forwarded-For ヘッダを解析すれば、アクセス制御を続けられませんか?
A: 技術的には可能ですが、設問は「現状のままでは適切に行えない理由」を問うており、ネットワーク層での制約を説明することが求められています。
A: 技術的には可能ですが、設問は「現状のままでは適切に行えない理由」を問うており、ネットワーク層での制約を説明することが求められています。
Q: リバースプロキシサーバに複数 IP アドレスを持たせれば区別できますか?
A: 可能ですが、同じサーバで外部アクセスを終端する限り、Web サーバ側が直接外部アドレスを確認することはできず、追加設計が必要になります。
A: 可能ですが、同じサーバで外部アクセスを終端する限り、Web サーバ側が直接外部アドレスを確認することはできず、追加設計が必要になります。
Q: パケットフィルタで携帯電話網のアドレス帯以外を遮断する方法は安全ですか?
A: 携帯電話事業者がアドレス帯を変更した場合に通信不能となるリスクがあるため、定期的なメンテナンスが欠かせません。
A: 携帯電話事業者がアドレス帯を変更した場合に通信不能となるリスクがあるため、定期的なメンテナンスが欠かせません。
関連キーワード: リバースプロキシ, IPアドレス変換, 送信元フィルタリング, DMZ
設問3:本文中の下線①、②について、(1)、(2)に答えよ。
(2)下線②について、ファイアウォールはFW1とFW2の2か所に設置されているが、どちらのファイアウォールに設定を追加すればよいか。答案用紙の“FW1・FW2”のいずれかを示せ。
模範解答
FW1
解説
解答の論理構成
-
追加するパケットフィルタの目的
下線②では、
“ファイアウォールのパケットフィルタに、携帯電話端末からのアクセス時に使用されるIPアドレスの範囲以外からの通信を禁止する設定を追加する”
と記載されています。したがって設定は「携帯電話端末の送信元 IP アドレス」を識別できる場所に施す必要があります。 -
送信元 IP アドレスを識別できるポイント
変更後の構成(図2)を見ると、
・インターネット → “FW1” → DMZ(“リバースプロキシサーバ”)
・DMZ → “FW2” → 社内LAN(各Webサーバ)
の順でパケットが流れます。
アクセスは一度リバースプロキシサーバで終端されるため、リバースプロキシサーバより後ろ(すなわち “FW2” 側)では送信元 IP が “192.168.3.90” に変わります。外部クライアントの実 IP は保持されません。 -
どちらにフィルタを置くべきか
“FW2” に設定してしまうと、すべての通信の送信元 IP はリバースプロキシサーバの “192.168.3.90” であり、携帯電話端末の IP 範囲か否かを判定できません。
一方、“FW1” はインターネットに直接面しており、携帯電話端末が持つグローバル IP 範囲をそのまま確認できます。したがって下線②の要件を満たせるのは “FW1” です。 -
結論
追加設定を行うファイアウォールは “FW1” となります。
誤りやすいポイント
- 「リバースプロキシサーバがあるから送信元 IP が後段でも分かる」と早合点する。実際にはリバースプロキシで TCP セッションが分断されるため、FW2 からは外部 IP を確認できません。
- 「DMZ 内で制御すれば十分」と考えて FW2 を選ぶ。外部不正アクセスを DMZ 内に入れないこと自体がセキュリティ強化の主旨です。
- “静的アドレス変換” と “逆引きプロキシ” を混同し、どの段階で IP が書き換わるかを取り違える。
FAQ
Q: リバースプロキシサーバで X-Forwarded-For ヘッダを使えば FW2 でも制御できませんか?
A: それは HTTP レベルのヘッダです。FW2 は L3/L4 のパケットフィルタなのでヘッダを参照できず、要件を満たせません。
A: それは HTTP レベルのヘッダです。FW2 は L3/L4 のパケットフィルタなのでヘッダを参照できず、要件を満たせません。
Q: 携帯電話端末の IP 範囲が変更された場合、FW1 のみ更新すれば良いですか?
A: はい。送信元 IP アドレスに基づく許可/拒否は FW1 の設定で一元管理できます。
A: はい。送信元 IP アドレスに基づく許可/拒否は FW1 の設定で一元管理できます。
Q: DMZ にもう一段ファイアウォールを追加する案は有効でしょうか?
A: 追加は可能ですが、本設問は既存の “FW1” “FW2” のいずれかで要件を満たすシンプルな構成を想定しています。
A: 追加は可能ですが、本設問は既存の “FW1” “FW2” のいずれかで要件を満たすシンプルな構成を想定しています。
関連キーワード: DMZ, パケットフィルタリング, 逆プロキシ, 静的アドレス変換


