ネットワークスペシャリスト 2019年 午後1 問02
Webシステムの構成変更に関する次の記述を読んで、設問1〜3に答えよ。
A社は、中堅の菓子メーカーであり、自社で製造する商品を、店舗とオンラインショップで販売している。オンラインショップの利用者は、Webブラウザを使って Webシステムにアクセスする。A社のオンラインショップを構成する、現行の Webシステムを図1に示す。

A社では、Webシステムのアクセス数の増加に対応するために、Webサーバの増設と負荷分散装置(以下、LB という)の導入を決めた。また、昨今、Webアプリケーションプログラム(以下、WebAP という)の脆弱性を悪用したサイバー攻撃が報告されていることから、WAF(WebApplication Firewall)サービスの導入を検討することになった。そのための事前調査から設計までを情報システム部の Uさんが担当することになった。
〔WAFサービス導入の検討〕
Uさんは、SaaS 事業者の T社が提供する WAFサービスを調査した。T社による WAFサービスの説明は、次のとおりである。
・WAFサービスは、利用者の Webブラウザと Webシステム間の HTTPS 通信を中継する。利用者の Webブラウザは、WAFサービスにアクセスするためのIPアドレス(以下、IP-wt という)宛に HTTP リクエストを送信する。
・WAFサービスは、HTTPS 通信を復号して HTTP リクエストを検査する。そのために、A社は、現行と同じコモンネームのサーバ証明書と秘密鍵を、WAFサービスに提供する必要がある。
・WAFサービスは、WebAPへのサイバー攻撃が疑われる通信を検知し、Webシステムへのアクセスを制御する。
・WAFサービスは、アクセスを許可したHTTPリクエストの送信元IPアドレスを、HTTPヘッダのX-Forwarded-Forヘッダフィールド(以下、XFFヘッダという)に追加すると、XFFヘッダへの追加後に、HTTPリクエストの送信元IPアドレスを、HTTPレスポンスがWAFサービスに送られるようにするためのIPアドレス(以下、IP-w2という)に変更する。
・WAFサービスは、HTTPリクエストを再度HTTPSで暗号化して、WebシステムにアクセスするためのIPアドレスである199.α.β.2宛てに転送する。
・WAFサービスは、HTTPレスポンスを検査する。HTTPレスポンスに対する処理の説明は省略する。
Uさんは、Webブラウザから送信されるHTTPリクエストを、WAFサービス宛てに変える方法について、T社に確認した。T社からの回答は、次のとおりである。
・A社DNSサーバに、RDATAにIP-w1を設定したAレコードを登録する方式と、RDATAにT社WAFサービスのFQDNを設定したCNAMEレコードを登録する方式がある。
・T社は、IP-w1を変更する場合があるので、①CNAMEレコードを登録する方式を推奨している。
T社からの説明を踏まえて、Uさんが検討したA社DNSサーバのゾーンファイルを、図2に示す。

現行の WebAP では、Webシステムへのアクセス時の送信元IPアドレスをアクセスログに記録している。Uさんは、送信元IPアドレスの代りに XFF ヘッダの情報を記録するように、WebAP の設定を変更することにした。
Uさんは、FW に設定している WebシステムへのHTTPS通信に関するアクセス制御について、IP-w2 を送信元とする通信だけを許可するように、設定を変更することにした。
〔LB に関する検討〕
A社が導入する LB には、HTTP リクエストの振分け機能、死活監視機能、セッション維持機能、TLS アクセラレーション機能、HTTP ヘッダの編集(追加、変更、削除)機能をもっている。
HTTP リクエストの振分け機能について、Uさんは、HTTP リクエストをWebサーバ ア に振り分けるラウンドロビン方式を採用することにした。
死活監視機能について、Uさんは、WebAP の稼働状況を監視するために、レイヤ 7 方式を利用することにした。死活監視に用いるメッセージの設定を表1に示す。

セッション維持機能には、HTTP リクエストの送信元IPアドレスに基づいて行う方法と、LB によって生成されるセッションIDに基づいて行う方法がある. セッションIDに基づいて行う方式では、Webサーバと Webブラウザ間で状態を管理するために用いられる Cookie を利用する。LB は、HTTP レスポンスのエヘッダフィールドにセッションIDを追加する。HTTP レスポンスを受け取った利用者の Webブラウザは、エヘッダフィールドにあるセッションIDを、次に送信する HTTP リクエストのオヘッダフィールドに追加する. HTTP リクエストを受け取った LB は、オヘッダフィールドのセッションIDに基づいて、セッション維持を行う. Uさんは、②WAFサービスの利用を考慮し、セッションIDに基づいて行う方式を採用した。
TLS アクセラレーション機能は、TLS の暗号化・復号処理を専用ハードウェアで高速に処理する機能である. Uさんは、TLS の暗号化・復号処理の性能向上の目的と、③LB が行うある処理のために、TLS アクセラレーション機能を利用することにした. Uさんは、LB とWebサーバ間の通信に HTTP を用い、ポート番号を HTTP のウェルノウンポート番号を用いることにした。
構成変更後の Webシステムを図3に示す。

〔WAFサービス停止時の対応検討〕
Uさんは、障害などで WAFサービスを 1 日以上利用できなくなった場合に備え、対応を検討した. WAFサービス停止期間中も、オンラインショップでの商品販売を継続させたい. Uさんは、WAFサービスを経由せずに、利用者の Webブラウザと Webシステム間で直接通信させるために、WAFサービス導入箇所に設定変更を予定している力の④設定を変更することと、図2中の⑤資源レコードの1行を書き換えることで対応できると考えた。
Uさんは、WebAP のアクセスログについて、WAFサービスの有無にかかわらず、XFF ヘッダの情報から Webシステムへのアクセス時の送信元IPアドレスを記録することとし、⑥LBに設定を追加した。
その後、Webシステムの構成変更に関する Uさんの報告書は経営会議で承認され、導入の準備を開始した。
設問1:
本文中の下線①について、A社にとっての利点を45字以内で述べよ。
模範解答
T社がIP-w1を変更しても、A社DNSサーバの変更作業が不要となる。
解説
解答の論理構成
-
事前情報
- 問題文には「A社DNSサーバに、RDATAにIP-w1を設定したAレコードを登録する方式と、RDATAにT社WAFサービスのFQDNを設定したCNAMEレコードを登録する方式がある。」とあります。
- さらに「T社は、IP-w1を変更する場合があるので、①CNAMEレコードを登録する方式を推奨している。」と明示されています。
-
IP アドレス変更の影響
- A レコード採用時は DNS に直接「IP-w1」を書くため、T 社が IP を変更すると A 社側でも書き換えが必要になります。
- 一方、CNAME 方式では A 社 DNS には FQDN だけを置き、実際の IP 解決は T 社側の DNS に委ねられます。
-
導かれる利点
- したがって、T 社が「IP-w1」を変更しても A 社 DNS の設定はそのままでよく、運用作業が発生しません。
-
まとめ
- 上記から模範解答「T社がIP-w1を変更しても、A社DNSサーバの変更作業が不要となる。」が導かれます。
誤りやすいポイント
- 「CNAME は参照先の FQDN が変わらない限り効果がない」と思い込み、IP 変更時の運用削減効果を見落とす。
- 「A レコードでも TTL を短くすれば問題ない」と考え、恒常的な設定変更作業コストを軽視する。
- 「CNAME は名前解決回数が増える=デメリット」とだけ捉え、本問の“運用面での利点”を答え忘れる。
FAQ
Q: A レコードではなく CNAME を使う欠点はないのですか?
A: 参照が1回増える分レイテンシがわずかに延びる可能性がありますが、今回のように外部サービスの IP 変更頻度が読めない場合、運用負荷軽減の効果が大きいため推奨されています。
A: 参照が1回増える分レイテンシがわずかに延びる可能性がありますが、今回のように外部サービスの IP 変更頻度が読めない場合、運用負荷軽減の効果が大きいため推奨されています。
Q: CNAME を用いる場合、TTL を変更する必要がありますか?
A: 特に必須ではありません。ただし障害時に名前解決結果を早く切り替えたい場合は TTL を短めに設定する運用もあります。
A: 特に必須ではありません。ただし障害時に名前解決結果を早く切り替えたい場合は TTL を短めに設定する運用もあります。
Q: 複数レコードを組み合わせて登録することはできますか?
A: 同じホスト名に A レコードと CNAME レコードを併存させることは RFC で禁じられています。CNAME を採用するなら同名の A レコードは登録しません。
A: 同じホスト名に A レコードと CNAME レコードを併存させることは RFC で禁じられています。CNAME を採用するなら同名の A レコードは登録しません。
関連キーワード: DNS, CNAME, Aレコード, IPアドレス変更, 運用負荷, 名前解決
設問2:〔LBに関する検討〕について、(1)〜(3)に答えよ。
(1)本文及び表1中のア〜オに入れる適切な字句又は数値を答えよ。
模範解答
ア:順番
イ:80
ウ:200
エ:Set-Cookie
オ:Cookie
解説
解答の論理構成
-
- [ア]
- 問題文では「HTTP リクエストを Webサーバ ア に振り分けるラウンドロビン方式」とあります。
- ラウンドロビン方式は Web サーバを“順番”に回して割り当てる代表的な方式です。
- よって [ア] は「順番」です。
-
- [イ]
- 「LB と Webサーバ間の通信に HTTP を用い、ポート番号を HTTP のウェルノウンポート番号を用いることにした」と明記されています。
- HTTP のウェルノウンポート番号は 80 です。
- よって [イ] は「80」です。
-
- [ウ]
- 表1では「成功時の HTTP レスポンス」を指定させています。
- Web サーバが正常応答する場合、HTTP 的にはステータスコード 200(OK)が一般的です。
- よって [ウ] は「200」です。
-
- [エ]
- 問題文は「LB は、HTTP レスポンスのエヘッダフィールドにセッション ID を追加する」と記載。
- HTTP レスポンスでブラウザへ Cookie を渡す標準ヘッダは “Set-Cookie” です。
- よって [エ] は「Set-Cookie」です。
-
- [オ]
- 「HTTP レスポンスを受け取った利用者の Webブラウザは、エヘッダフィールドにあるセッション ID を、次に送信する HTTP リクエストのオヘッダフィールドに追加する」との記述。
- ブラウザは Cookie を次回リクエストの “Cookie” ヘッダに入れて送出します。
- よって [オ] は「Cookie」です。
誤りやすいポイント
- ラウンドロビン=“負荷均等”と連想し「均等」などと書いてしまう誤答が多いです。ラウンドロビンのキーワードは“順番”。
- 死活監視のポート番号を 443 と勘違いするケース。問題文に「HTTP を用い」とあり、TLS アクセラレーションで HTTPS は終端されている点を見落とさないこと。
- ステータスコードを 302 や 304 とする誤り。成功(OK)は 200 が基本。
- Cookie ヘッダの方向性を混同し、Set-Cookie と Cookie を入れ替えるミスに注意。
FAQ
Q: TLS アクセラレーションを使っているのに死活監視は HTTP で良いのですか?
A: はい。TLS は LB で終端しており、その先の Web サーバとは平文 HTTP で通信する設計です。従って監視も HTTP のまま行えます。
A: はい。TLS は LB で終端しており、その先の Web サーバとは平文 HTTP で通信する設計です。従って監視も HTTP のまま行えます。
Q: ランダム方式とラウンドロビン方式はどう選択すべきですか?
A: 本問では「セッション維持」を Cookie で実現するため、均等に順番を保証するラウンドロビンが扱いやすいと判断されました。ランダムでは同一クライアントが毎回別サーバへ行く可能性が高く、セッション維持機構に負荷が掛かります。
A: 本問では「セッション維持」を Cookie で実現するため、均等に順番を保証するラウンドロビンが扱いやすいと判断されました。ランダムでは同一クライアントが毎回別サーバへ行く可能性が高く、セッション維持機構に負荷が掛かります。
Q: Set-Cookie ヘッダは複数付く場合がありますか?
A: あります。1 レスポンスに複数の Set-Cookie 行を付与して複数の Cookie をブラウザへ送ることが可能です。
A: あります。1 レスポンスに複数の Set-Cookie 行を付与して複数の Cookie をブラウザへ送ることが可能です。
関連キーワード: ラウンドロビン, HTTPステータスコード, ウェルノウンポート, Cookie, TLSアクセラレーション
設問2:〔LBに関する検討〕について、(1)〜(3)に答えよ。
(2)本文中の下線②について、送信元IPアドレスに基づいて行う方式を採用した場合に発生するおそれがある問題を、10字以内で述べよ。
模範解答
負荷が偏る。
解説
解答の論理構成
- 【問題文】には、セッション維持機能の候補として
― “HTTP リクエストの送信元 IP アドレスに基づいて行う方法”
― “LB によって生成されるセッション ID に基づいて行う方法”
が示されています。 - しかし WAF 導入後は、
“WAF サービスは、HTTPリクエストの送信元IPアドレスを…IP-w2に変更する。”
とあるため、LB に到着するすべての通信の送信元 IP は IP-w2 で共通になります。 - 送信元 IP ベースでセッション維持を行うと、LB は “同じ送信元 IP の要求は同じ Web サーバへ” と判断します。よって IP-w2 に見える全ユーザのトラフィックが 1 台に集中してしまいます。
- その結果、特定サーバにのみ処理が偏り、他サーバとの間でロードバランスが取れません。
- したがって、送信元 IP 方式を採った場合に懸念される問題は「負荷が偏る」となります。
誤りやすいポイント
- “ラウンドロビンを使うから大丈夫” と考え、セッション維持設定の影響を見落とす。
- “IP-w2 は複数あるのでは” と勘違いし、同一 IP で固定される点を読み飛ばす。
- “X-Forwarded-For に本来の IP が入るから問題ない” と早合点し、LB が参照する IP は変わらない事実を取り違える。
FAQ
Q: X-Forwarded-For に元の IP が載るのに、LB は参照できないのですか?
A: LB が送信元 IP 方式でセッション維持を行う場合、判断材料はパケットの IP ヘッダ部です。HTTP ヘッダである X-Forwarded-For を参照する機能を別途設定しない限り、負荷分散判断には用いられません。
A: LB が送信元 IP 方式でセッション維持を行う場合、判断材料はパケットの IP ヘッダ部です。HTTP ヘッダである X-Forwarded-For を参照する機能を別途設定しない限り、負荷分散判断には用いられません。
Q: 送信元 IP 方式にしてもラウンドロビンが働くことはありますか?
A: セッション維持が優先されるため、最初の 1 度はラウンドロビンで振り分けられても、以後は同じサーバ固定になります。大量アクセス時は実質的に片寄りが発生します。
A: セッション維持が優先されるため、最初の 1 度はラウンドロビンで振り分けられても、以後は同じサーバ固定になります。大量アクセス時は実質的に片寄りが発生します。
Q: セッション ID 方式で WAF が停止した場合は問題になりませんか?
A: WAF が停止しても送信元 IP が多様化するだけで、セッション ID 方式は継続動作します。どの経路でも一貫してバランスが取れるため、安全策として採用されています。
A: WAF が停止しても送信元 IP が多様化するだけで、セッション ID 方式は継続動作します。どの経路でも一貫してバランスが取れるため、安全策として採用されています。
関連キーワード: セッション維持, ラウンドロビン, WAF, X-Forwarded-For
設問2:〔LBに関する検討〕について、(1)〜(3)に答えよ。
(3)本文中の下線③の処理の内容を、20字以内で答えよ。
模範解答
HTTPヘッダを編集する処理
解説
解答の論理構成
- 【問題文】には、LB の機能として
「HTTP ヘッダの編集(追加、変更、削除)機能をもっている」
と明記されています。 - さらに TLS アクセラレーション利用理由の一つとして
「③LB が行うある処理のために、TLS アクセラレーション機能を利用することにした」
と述べられています。 - 暗号化された HTTPS 通信では、ヘッダを編集するにはいったん復号が必要です。TLS アクセラレーションは復号/再暗号化を高速化する機能なので、対応する “ある処理” は「HTTP ヘッダ編集」と判断できます。
- 以上より、③に入る内容は
「HTTPヘッダを編集する処理」
となります。
誤りやすいポイント
- TLS アクセラレーション=暗号化処理高速化とだけ考え、ヘッダ編集との関係を見落とす。
- 死活監視やセッション維持の処理と誤って結び付けてしまう。
- 「HTTPヘッダ追加」や「HTTPヘッダ変更」のように限定的に書き、設問の「ある処理」の範囲を外してしまう。
FAQ
Q: なぜセッション維持ではなくヘッダ編集が該当するのですか?
A: セッション維持自体は Cookie の読み書きで完結しますが、Cookie は平文の HTTP メッセージ内に含まれます。HTTPS のままではヘッダに触れられないため、TLS アクセラレーションで復号→ヘッダ編集→再暗号化という流れが必須となります。
A: セッション維持自体は Cookie の読み書きで完結しますが、Cookie は平文の HTTP メッセージ内に含まれます。HTTPS のままではヘッダに触れられないため、TLS アクセラレーションで復号→ヘッダ編集→再暗号化という流れが必須となります。
Q: ヘッダ編集は具体的に何を行うのですか?
A: X-Forwarded-For などのヘッダ付与・書き換え、Cookie へのセッション ID 追加・削除など、ロードバランサが正しく振り分けやログ取得を行うための情報操作を指します。
A: X-Forwarded-For などのヘッダ付与・書き換え、Cookie へのセッション ID 追加・削除など、ロードバランサが正しく振り分けやログ取得を行うための情報操作を指します。
Q: TLS アクセラレーションによって性能以外の利点はありますか?
A: 復号処理を装置内で統一的に行うため、証明書管理の一元化やセキュリティポリシーの集中適用が可能になります。
A: 復号処理を装置内で統一的に行うため、証明書管理の一元化やセキュリティポリシーの集中適用が可能になります。
関連キーワード: TLSアクセラレーション, HTTPS終端, ヘッダ編集, ロードバランサ, X-Forwarded-For
設問3:〔WAFサービス停止時の対応検討〕について、(1)〜(3)に答えよ。
(1)本文中のカに入れる機器を、図3中のDNSサーバ以外の機器名で答えよ。また、本本文中の下線④の変更内容を35字以内で述べよ。
模範解答
カ:FW
変更内容:任意のIPアドレスからWebシステムへのHTTPS通信を許可する。
解説
解答の論理構成
- まず本文には、WAF 経由運用時に行った FW の設定変更として
「FW に設定している WebシステムへのHTTPS通信に関するアクセス制御について、IP-w2 を送信元とする通信だけを許可するように、設定を変更することにした。」
とあります。ここで FW が HTTPS の許可/遮断を制御していることが明示されています。 - 次に WAF を長期間利用できなくなった場合の対策として
「WAF サービスを経由せずに…直接通信させるために、WAF サービス導入箇所に設定変更を予定しているカの④設定を変更する」
と記載されています。
直接通信させるには、送信元が WAF(IP-w2)ではなく利用者各自の IP になるため、FW の「送信元 IP 制限」を元に戻す必要があります。 - したがって カ に入る機器は、HTTPS 通信をフィルタリングしている「FW」です。
- 下線④で求められる具体的な変更内容は、先の制限を解除し
「任意のIPアドレスからWebシステムへのHTTPS通信を許可する」
ことになります。これで WAF を介さない通常の HTTPS アクセスが成立します。
誤りやすいポイント
- 「LB にもアクセス制御機能があるのでは」と考えて カ を LB としてしまう。本文でアクセス制御を担当しているのは FW である点を見落としやすいです。
- ④の設定変更を「IP-w1 を許可」など DNS 側の操作と勘違いするケース。実際には FW ルールの送信元条件を“Any”に戻す作業です。
- 「HTTPS 以外も許可する」と解釈してしまう。問題文は「WebシステムへのHTTPS通信に関するアクセス制御」と限定しているため、対象プロトコルは変わりません。
FAQ
Q: IP アドレスを “任意” にするとセキュリティが下がりませんか?
A: 一時的に WAF をバイパスする非常措置なので、FW で IP 制限を外さないと利用者が接続できません。再開後は元の設定に戻します。
A: 一時的に WAF をバイパスする非常措置なので、FW で IP 制限を外さないと利用者が接続できません。再開後は元の設定に戻します。
Q: DNS 側の⑤の書き換えだけでは不十分なのですか?
A: ⑤で FQDN を 199.α.β.2 に向けても、FW が IP-w2 だけを許可したままではパケットが拒否されるため、④の FW 変更が必須です。
A: ⑤で FQDN を 199.α.β.2 に向けても、FW が IP-w2 だけを許可したままではパケットが拒否されるため、④の FW 変更が必須です。
Q: WAF なし運用でも X-Forwarded-For は残りますか?
A: ⑥で「LBに設定を追加」し、LB が XFF ヘッダを付与するため、WAF の有無にかかわらず送信元 IP をログに残せます。
A: ⑥で「LBに設定を追加」し、LB が XFF ヘッダを付与するため、WAF の有無にかかわらず送信元 IP をログに残せます。
関連キーワード: WAF, ファイアウォール, HTTPS, アクセス制御, DNSレコード
設問3:〔WAFサービス停止時の対応検討〕について、(1)〜(3)に答えよ。
(2)本文中の下線⑤について、書換え後の資源レコードを答えよ。
模範解答
shop IN A 199.α.β.2
解説
解答の論理構成
- 初期状態の資源レコード
図2には【問題文】「shop IN CNAME waf-asha.tsha.net.」とあります。これは通常時、shop.asha.com への問い合わせを T 社の WAF へ転送するための設定です。 - WAF が 1 日以上停止した場合の方針
【問題文】「WAF サービス停止期間中も、オンラインショップでの商品販売を継続させたい。」
→ WAF を経由せず、直接 Web システム(LB)へ到達させる必要があります。 - DNS で切替える対象
【問題文】「⑤資源レコードの1行を書き換えることで対応できる」とあるため、shop.asha.com に関する行のみを書き換えます。 - 直接接続時に示すべき宛先
構成変更後の図3より、利用者が直接アクセスする LB のグローバル IP は【問題文】「199.α.β.2」です。 - 必要なレコード種別
・CNAME は “別の名前” を指し示すレコードであり、今回は FQDN ではなく IP アドレスを返す必要があります。
・IP アドレスを返すレコード種別は A レコードです。 - したがって書換え後の資源レコードは
shop IN A 199.α.β.2
となります。
誤りやすいポイント
- CNAME のまま IP アドレスを設定してしまう
CNAME は必ず FQDN を指定します。IP アドレスを記述すると仕様違反です。 - 末尾のドットを忘れる/付ける場所を誤る
FQDN を書く場合は末尾のドットが要りますが、今回は A レコードなので不要です。 - TTL や $ORIGIN を一緒に書き換えてしまう
指定は「⑤資源レコードの1行」だけです。他の行を変更すると不具合の原因になります。 - AAAA レコードを追加してしまう
既存システムが IPv4 で運用されているため、IPv6 用の AAAA を追加すると接続できない利用者が出る恐れがあります。
FAQ
Q: CNAME から A レコードに変えると名前解決の手順はどう変わりますか?
A: CNAME はまず別名を返し、その別名に対して再帰的に A レコードを取得します。A レコードへ置き換えると、一度の問い合わせで IP アドレスが返るため解決が簡略化されます。
A: CNAME はまず別名を返し、その別名に対して再帰的に A レコードを取得します。A レコードへ置き換えると、一度の問い合わせで IP アドレスが返るため解決が簡略化されます。
Q: WAF 復旧後に何を戻せばいいですか?
A: shop.asha.com の資源レコードを再び「shop IN CNAME waf-asha.tsha.net.」へ戻せば、トラフィックは WAF 経由に切替わります。
A: shop.asha.com の資源レコードを再び「shop IN CNAME waf-asha.tsha.net.」へ戻せば、トラフィックは WAF 経由に切替わります。
Q: ゾーンファイル内に同一名前で A と CNAME を併用できますか?
A: RFC 違反となるため併用できません。切替え時は必ずどちらか一方のみを残してください。
A: RFC 違反となるため併用できません。切替え時は必ずどちらか一方のみを残してください。
関連キーワード: DNSレコード, CNAME, Aレコード, フェイルオーバー, 負荷分散
設問3:〔WAFサービス停止時の対応検討〕について、(1)〜(3)に答えよ。
(3)本文中の下線⑥の設定内容を、30字以内で答えよ。
模範解答
XFFヘッダに送信元IPアドレスを追加する設定
解説
解答の論理構成
-
送信元 IP をログに残す要件
- 問題文より引用
「現行の WebAP では、Webシステムへのアクセス時の送信元 IP アドレスをアクセスログに記録している。」
「U さんは、送信元 IP アドレスの代りに XFF ヘッダの情報を記録するように、WebAP の設定を変更することにした。」
⇒ 今後は WebAP が XFF ヘッダ を参照してログを取る。
- 問題文より引用
-
WAF が存在する場合
- WAF の動作
「WAF サービスは、アクセスを許可した HTTP リクエストの送信元 IP アドレスを、HTTP ヘッダの X-Forwarded-For ヘッダフィールド(以下、XFF ヘッダという)に追加する…」
⇒ WAF 経由時は自動的に XFF ヘッダ が付与されるので WebAP は問題なく記録できる。
- WAF の動作
-
WAF をバイパスする場合
- 対応方針
「U さんは、WebAP のアクセスログについて、WAF サービスの有無にかかわらず、XFF ヘッダの情報から Webシステムへのアクセス時の送信元 IP アドレスを記録することとし、⑥LBに設定を追加した。」
⇒ WAF がない経路では誰も XFF ヘッダ を付けないため、LB が代わりに付与する必要がある。
- 対応方針
-
LB の機能確認
- 「LB には… HTTP ヘッダの編集(追加、変更、削除)機能をもっている。」
⇒ LB はヘッダ追加が可能。WAF バイパス時でも要件を満たせる。
- 「LB には… HTTP ヘッダの編集(追加、変更、削除)機能をもっている。」
-
結論
- したがって ⑥ の設定は
「XFFヘッダに送信元IPアドレスを追加する設定」
となる。
- したがって ⑥ の設定は
誤りやすいポイント
- 「WAF が無い=XFF ヘッダ不要」と勘違いし、LB の設定を忘れる。WebAP は XFF しか見ないのでログが空になる。
- XFF ヘッダの“追記”と“置換”を混同し、既に WAF が付けた情報を上書きしてしまうケース。
- 送信元 IP を別ヘッダ(例: Via)に入れると誤解しやすいが、問題文は明確に「XFF ヘッダ」と指定している。
FAQ
Q: なぜ WebAP を改修せず LB にヘッダ追加を任せるのですか?
A: LB には「HTTP ヘッダの編集(追加、変更、削除)機能」があり、インフラ側で制御できるのでアプリ改修より影響範囲が小さいためです。
A: LB には「HTTP ヘッダの編集(追加、変更、削除)機能」があり、インフラ側で制御できるのでアプリ改修より影響範囲が小さいためです。
Q: WAF と LB の両方が XFF を付けた場合、どちらが優先されますか?
A: 一般的には“追記”で複数の IP がカンマ区切りで入るため、最初の値がクライアント、次が中継装置という順になります。問題文でも「追加する」と記載されており上書きではありません。
A: 一般的には“追記”で複数の IP がカンマ区切りで入るため、最初の値がクライアント、次が中継装置という順になります。問題文でも「追加する」と記載されており上書きではありません。
Q: セキュリティ上、XFF ヘッダは改ざんリスクがありませんか?
A: あります。信頼できる中継装置(今回の WAF や LB)が付与・検証する運用とし、任意のクライアントが自由に書き換えられないよう FW や ACL で直接アクセスを制限します。
A: あります。信頼できる中継装置(今回の WAF や LB)が付与・検証する運用とし、任意のクライアントが自由に書き換えられないよう FW や ACL で直接アクセスを制限します。
関連キーワード: X-Forwarded-For, ロードバランサ, リバースプロキシ, HTTPヘッダ, 送信元IP


