Citrix ADC

ジオロケーションデータベースを使用してユーザーのIPアドレスから場所の詳細を取得する

注: この機能は、Citrix ADCリリース12.1ビルド 50.x以降から利用できます。

Citrix ADCアプライアンスは、大陸、郡、都市などのユーザーの場所の詳細を取得できます。地理的位置データベースからの任意のパブリック IP アドレス。これは、高度なポリシーインフラストラクチャを使用して実行されます。取り出された場所の詳細は、次のユースケースを実行するための書き換えアクションまたは応答側アクションで使用されます。

  • クライアント要求をバックエンドサーバーに送信するときに、ユーザーの場所の詳細(国、都市情報など)を含む HTTP ヘッダーを挿入します。
  • 無効なユーザーの HTML ページ応答に国名を追加します。

アプライアンスは、監査ロギングメカニズムを使用してロケーションの詳細を記録することもできます。

ジオロケーション関数を使用したユーザーの位置情報の取得

コンポーネントは、次のように相互作用します。

  1. ユーザーは、特定の地理的な場所からクライアント要求を送信します。
  2. Citrix ADCアプライアンスは、クライアント要求からユーザーIPアドレスを検索し、地理的場所の詳細を取得します。詳細には、大陸、国、地域、都市、ISP、組織、または地理位置情報データベースからのカスタム詳細が含まれます。
  3. 場所の詳細を取得すると、アプライアンスは応答側ポリシーまたは書き換えポリシーのいずれかを使用して要求を評価します。
  4. 書き換えポリシーでは、アプライアンスは geo ロケーションの詳細を含むヘッダーを追加し、バックエンドサーバーに送信します。たとえば、国情報を含むカスタム HTTP ヘッダーを挿入します。
  5. レスポンダーポリシーでは、アプライアンスは HTTP 要求を評価し、ポリシーの評価に基づいて、ユーザーへのアクセスを許可するか、ユーザーをエラーページにリダイレクトします。これは、彼らがアプリケーションにアクセスしている領域にアクセスしていないことを述べています。

ジオロケーションデータベースの設定

前提条件として、Citrix ADCアプライアンスで実行するジオロケーションデータベースが必要です。ジオロケーションデータベースファイルは、Citrix ADCファームウェアで使用できます。ベンダーからデータベースファイルをダウンロードするには、Citrix ADC形式に変換してアプライアンスにインポートします。 位置情報データベースの詳細については、位置ファイルを追加して静的近接データベースを作成する トピックを参照してください。

ジオロケーション関数

次の表は、任意のパブリック IP アドレスの場所の詳細を取得するジオロケーション関数のリストです。これらの関数は、書き換えポリシーまたはレスポンダーポリシーで使用できます。

位置情報関数
CLIENT.IP.SRC.LOCATION Asia.In.Karnataka.Bangalore
CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG India
CLIENT.IP.SRC.LOCATION(3) Asia.In.Karnataka
CLIENT.IP.SRC.LAT_LONG 12,77
CLIENT.IPV6.SRC.LOCATION North America.US.California.Santa Clara.Verizon.Citrix
CLIENT.IPV6.SRC.LOCATION(3) North America.US.California
CLIENT.IPV6.SRC.LOCATION.GET(1).LOCATION_LONG United States
CLIENT.IPV6.SRC.LOCATION.GET(3) California
CLIENT.IPV6.SRC.LAT_LONG 36, -119

位置情報関数の設定

高度なポリシーインフラストラクチャを使用して地理位置情報機能を設定するには、負荷分散、書き換え、レスポンダー機能を有効にして、次のユースケースを完了する必要があります。

負荷分散、レスポンダー、書き換え機能の有効化

Citrix ADCアプライアンスで特定の地域からのユーザーアクセスを許可する場合は、負荷分散、書き換え、レスポンダー機能を有効にする必要があります。

enable ns feature loadbalancing rewrite responder

ユースケース1:地理的位置以外の無効なユーザーをリダイレクトするためのジオロケーション機能の構成

インドのユーザーがウェブページへのアクセスを要求している場合、リクエストをブロックし、国名の HTML ページで応答します。

次の手順は、このユースケースの設定を完了するのに役立ちます。

  • 応答側アクションの追加
  • レスポンダーポリシーの追加
  • レスポンダーポリシーをロードバランシングサーバーにバインドする

書き換えアクションおよび書き換えポリシー設定の GUI 手順の詳細については、「レスポンダー」を参照してください。

応答側アクションの追加

国名の HTML ページで応答するレスポンダーアクションを追加します。 コマンドプロンプトで、次のように入力します。

add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>][-reasonPhrase <string>]

例:

add responder action responder_act respondwith "HTTP.REQ.VERSION + " 304 Requested Page not allowed in your country - " + CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG + "\r\n""

監査ログメッセージの追加アクション

監査メッセージアクションは、syslog 形式のみ、または syslog 形式と newnslog 形式の両方で、さまざまなログレベルでメッセージをログに記録するように設定できます。監査メッセージアクションでは、式を使用して監査メッセージの形式を指定します。 コマンドラインインターフェイスを使用して監査メッセージアクションを作成するには

コマンドプロンプトで、次のように入力します。 add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)] [-bypassSafetyCheck (YES|NO)]

例:

add audit messageaction msg1 DEBUG ""Request Location: "+CLIENT.IP.SRC.LOCATION"

レスポンダーポリシーの追加

インドからのリクエストを識別するレスポンダーポリシーを追加し、レスポンダーアクションをこのポリシーに関連付けます。 コマンドプロンプトで、次のように入力します。

add responder policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>] [-appflowAction <string>]

例:

add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction msg1

レスポンダーポリシーをロードバランシングサーバーにバインドする

レスポンダーポリシーを HTTP/SSL タイプの負荷分散仮想サーバーにバインドします。 コマンドプロンプトで、次のように入力します。

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>

例:

bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST

ユースケース2:バックエンドが応答するための場所の詳細を持つ新しいHTTPヘッダーを挿入するためのジオロケーション関数の設定

たとえば、Citrix ADCアプライアンスがアプリケーションサーバーに送信された要求のHTTPヘッダーにユーザーの場所を挿入し、サーバーがビジネスロジックに情報を使用できるようにする必要がある場合を考えてみましょう。 次の手順は、このユースケースの設定を完了するのに役立ちます。

  • 書き換えアクションを追加
  • 書き換えポリシーの追加
  • リライト・ポリシーをロード・バランシングにバインドする

書き換えアクションおよび書き換えポリシー設定の GUI 手順の詳細については、「レスポンダー」を参照してください。

書き換えアクションを追加

リライトアクションを追加して、リクエストにユーザーの地理位置情報の詳細を含むカスタム HTTP ヘッダーを挿入し、バックエンドサーバーを送信します。 コマンドプロンプトで、次のように入力します。

add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-pattern <expression> | -search <expression>] [-refineSearch <string>][-comment <string>]

例:

add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION

書き換えポリシーの追加

書き換えアクションを実行する必要があるかどうかを評価する書き換えポリシーを追加します。この場合、アプリケーションサーバーに送信されるすべての要求にはカスタム HTTP ヘッダーが必要です。したがって、ルールは「true」になります。 コマンドプロンプトで、次のように入力します。

add rewrite policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>]

例:

add rewrite policy rewrite_pol true rewrite_act -logaction log_act

リライト・ポリシーをロード・バランシングにバインドする

書き換えポリシーを、HTTP/SSL タイプの必要な負荷分散仮想サーバーにバインドします。 コマンドプロンプトで、次のように入力します。

bind lb vserver <vserver name> -policyName < policy_name >  -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>

例:

bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST

ジオロケーションの詳細をロギングするための Syslog サポート(オプション)

ユーザーの地理位置情報の詳細をログに記録する場合は、要求がポリシーに一致したときに実行される SYSLOG アクションを指定する必要があります。アプライアンスは、詳細をログ・メッセージとしてns.logファイルに保存します。 SYSLOGおよびNSLOG監査の詳細については、「監査ログ」を参照してください。

ユーザーの地理位置情報の詳細の出力

バンガロールの場所からアプリケーションにアクセスしようとした場合、アプライアンスがジオロケーション機能「CLIENT.IP.SRC.LOCATION」を使用している場合は、SYSLOG または newnslog アクションを使用してアプライアンスに次の出力が記録されます。

Asia.India.Karnataka.Banglore

出力ログの例:

07/23/2018:19:03:54 GMT  Debug 0-PPE-0 : default REWRITE Message 22 0 :  "Request Location: asia.in.karnataka.bangalore.\*.\*"
07/23/2018:19:23:55 GMT  Debug 0-PPE-0 : default RESPONDER Message 32 0
Done

ジオロケーションデータベースを使用してユーザーのIPアドレスから場所の詳細を取得する