(1)XFFとは
ネットワークスペシャリストの過去問(R1NW午後橘2)を見ましょう。
・WAFサービスは,アクセスを許可したHTTPリクエストの送信元IPアドレスを,HTTPヘッダのX-Forwarded-Forヘッダフィールド(以下,XFFヘッダという)に追加する。
ここで、HTTPヘッダが何だったかは、思い出してください。以下の記事の「HTTPリクエストやレスポンスの構成」に記載しています。
http://nw.seeeko.com/archives/50915346.html

XFF(X-Forwarded-For)は,HTTPヘッダのフィールド(項目)の一つです。
XFFにより、接続元(クライアント)のIPアドレス情報を追加できます。たとえば、皆さんにも馴染み深いプロキシサーバ経由でインターネットに接続する構成で考えます。構成図は以下です。
xff
192.168.1.11のPCから、Proxyサーバ経由でWebサーバに通信します。
 この場合、Proxyサーバが、PCからのHTTPリクエストのXFFヘッダにPCのIPアドレスを追加します。そして、WebサーバにHTTPリクエストを転送します。以下がそのHTTPヘッダの例です。PCのIPアドレス192.168.1.11が追記されていることが分かります。
GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ja
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SVl)
X-Forwarded-For: 192.168.1.11 ←Proxyサーバが追加したPCのIPアドレス
Host: nw.seeeko.com
Connection: keep-alive

(2)XFFの目的
LBやProxyサーバにて、このフィールドに、接続元(クライアント)のIPアドレス情報を追記することができます。
追記するかは設定次第なので、たとえばProxyサーバのsquidであれば、forwarded_for on と設定します。もちろんOFFにしてIPアドレスを追記しないことも可能です。
 
この点は、過去問(H24SC午後橘4)にて、LBの機能として「また,HTTPヘッダフィールドとしてX-Forwarded-Forヘッダフィールドを追加可能であるが,現在は利用していない」とあります。
一般的にはどっちが多いと思いますか?
ネットワークスペシャリストを目指す女性SEあれ?

ログを取るためにはONですか?
企業側は取られたくないですよね。社内情報が漏えいしますから。通常は,PCのIPアドレスを見せないようにするため,OFFにすることが多いです。

過去に、X-Forwarded-Forに関する出題が何度かされています。
LBに限らずProxyサーバでもそうであるが、IPアドレスが変換される場合がある。たとえば、Proxyサーバからの通信であれば、送信元IPアドレスは全てProxyになり、実際に通信する端末のIPアドレスは分からない。LBもLBにて振り分けた場合に、送信元IPアドレスをLBにしてしまうと、サーバにはすべてLBからの通信に見える。
そこで、HTTPヘッダフィールどに、X-Forwarded-Forとして、IPアドレス変換をする前の端末のIPアドレスをセットするのである。

(3)過去問をみてみましょう。
過去問(H28SC秋午後1問3)を見てみましょう。もともとは多段プロキシの問題だったのですが、わかりにくいので私にて変更してあります。
ある企業のネットワークは、プロキシサーバを経由し、FWからインターネットにアクセスします。しかし、FWの通信ログだけでは送信元PCが特定できない。
そこで、プロキシでは、HTTPヘッダとして[ d ]ヘッダフィールドを追加するように設定し、FWでは、[ d ]ヘッダフィールドをログに出力するように設定した。

設問(1) 本文中の下線,砲弔い董FWのログだけでは送信元PCが特定できない理由を、30字以内で述べよ。
(2)本文中の[ d ]に入る適切な字句を答えよ。
(1)送信元IPアドレスがプロキシのIPアドレスとなるので(2)X-Forwarded-For

実際にSquidによるプロキシサーバを使ってXFFを設定した様子は以下です。
http://sm.seeeko.com/archives/21495764.html

スポンサードリンク