EdgeADC - Version 5.00.1986
User Guide
×
Menu

新しいflightPATHルールを追加する

フィールド
説明
フライトパス名
このフィールドはflightPATHルールの名前です。ここで指定した名前は、ADCの他の部分に表示され、参照されます。
VSに適用
この列は読み取り専用で、flightPATH ルールが適用される VIP を示します。
説明
読みやすくするために提供される説明を表す値。
flightPATHルールを追加する手順
1.     まず、DetailsセクションにあるAdd Newボタンをクリックします。
2.     ルールの名前を入力します。例 Auth2
3.     ルールの説明を入力します。
4.     ルールがサービスに適用されると、Applied To欄にIPアドレスとポート値が自動入力されます。
5.     更新ボタンを押して変更を保存するのをお忘れなく。もし間違えた場合は、キャンセルを押して前の状態に戻してください。
コンディション
flightPATHルールは、任意の数の条件を持つことができます。条件はANDベースで動作するため、アクションがトリガーされる条件を設定できます。OR 条件を使用する場合は、追加の flightPATH ルールを作成し、正しい順序で VIP に適用します。
CheckフィールドでMatch RegExを選択し、ValueフィールドでRegEx値を選択することで、RegExを使用することもできます。RegEx評価を含めることで、flightPATHの機能が飛躍的に向上します。
新しいflightPATH条件の作成
まず、条件欄から値を選択する必要がある。
私たちは、ドロップダウン内のいくつかの条件を提供し、予測されるすべてのシナリオをカバーしています。新しいコンディションが追加された場合は、Jetpackのアップデートで利用できるようになります。
選択肢は以下の通り:
コンディション
説明
<form>
HTMLフォームはサーバーにデータを渡すために使われる
例 "フォームの長さが0でない"
ゲオ所在地
送信元IPアドレスをISO 3166 Country Codesと比較する。
ゲオの所在地がGBである、またはゲオの所在地がドイツである
ホスト
URLから抽出されたホスト
www.mywebsite.com または 192.168.1.1
言語
言語HTTPヘッダーから抽出された言語
この条件は、言語のリストをドロップダウンメニューに表示します。
方法
HTTPメソッドのドロップダウン
GET、POSTなどを含むドロップダウン
オリジンIP
アップストリームプロキシがX-Forwarded-for (XFF)をサポートしている場合、真のOriginアドレスを使用します。
クライアントIP。複数のIPやサブネットを使用することもできる。
は10.1.2.0 /24サブネット
10.1.2.3|10.1.2.4 Use | for multiple IP's
パス
ウェブサイトのパス
/mywebsite/index.asp
ポスト
POST リクエストメソッド
ウェブサイトにアップロードされるデータのチェック
クエリー
クエリの名前と値。クエリ名または値も受け取ることができる。
「Best=jetNEXUS" マッチがBestで値がedgeNEXUSの場合
クエリー文字列
文字以降のクエリー文字列全体
 
リクエストクッキー
クライアントが要求したクッキーの名前
MS-WSMAN=afYfn1CDqqCDqUD::
リクエスト・ヘッダ
任意のHTTPヘッダー
Referrer、User-Agent、From、Date
リクエスト・バージョン
HTTPバージョン
http/1.0またはhttp/1.1
回答本文
レスポンス・ボディのユーザー定義文字列
サーバーアップ
レスポンスコード
レスポンスのHTTPコード
200 OK, 304 Not Modified
レスポンス・クッキー
サーバーから送信されるクッキーの名前。
MS-WSMAN=afYfn1CDqqCDqUD::
レスポンス・ヘッダ
任意のHTTPヘッダー
Referrer、User-Agent、From、Date
レスポンス・バージョン
サーバーが送信したHTTPバージョン
http/1.0またはhttp/1.1
ソースIP
オリジンIP、プロキシサーバーIP、またはその他の集約IPアドレスのいずれか
クライアントIP、プロキシIP、ファイアウォールIP。複数のIPやサブネットを使用することもできます。ドットはRegEXなのでエスケープする必要がある。例 10.1.1.2.3 は 10.1.2.3
 
試合
Matchフィールドは、ドロップダウンまたはテキスト値で、Conditionフィールドの値によって定義可能である。例えば、ConditionがHostに設定されている場合、Matchフィールドは利用できません。Conditionが<form>に設定されている場合、Matchフィールドはテキストフィールドとして表示され、ConditionがPOSTの場合、Matchフィールドは適切な値を含むドロップダウンとして表示されます。
選択肢は以下の通り:
マッチ
説明
受け入れる
許容されるコンテンツ・タイプ
アクセプト: text/plain
Accept-Encoding
使用可能なエンコーディング
Accept-Encoding: <compress | gzip | deflate | sdch | identity>.
受諾言語
対応可能な言語
受諾言語: ja-US
アクセプト・レンジ
このサーバーがサポートする部分コンテンツ範囲タイプ
許容範囲:バイト
認可
HTTP認証の認証情報
認証ベーシック QWxhZGRpbjpvcGVuIHNlc2FtZQ==
チャージ・トゥ
要求された方法の適用にかかる費用の勘定情報を含む。
 
コンテンツエンコーディング
使用されるエンコーディングのタイプ
コンテンツ・エンコーディング:gzip
コンテンツ長
オクテット(8ビットバイト)単位のレスポンスボディの長さ
コンテンツ長: 348
コンテンツタイプ
リクエスト本文のMIMEタイプ(POSTおよびPUTリクエストで使用される)
Content-Type: application/x-www-form-urlencoded
クッキー
Set-Cookie(下記)でサーバーが以前に送信したHTTPクッキー。
Cookie: $Version=1; Skin=new;
日付
メッセージが発信された日時
日付 = "日付" ":" HTTP日付
イータグ
リソースの特定のバージョンを示す識別子で、メッセージダイジェストであることが多い。
ETag:"aed6bdb8e090cd1:0"
より
リクエストを行うユーザーのメールアドレス
From: user@example.com
変更後
コンテンツが変更されていない場合、304 Not Modifiedが返されるようにする。
更新日時: Sat, 29 Oct 1994 19:43:31 GMT
最終更新日
リクエストされたオブジェクトの最終更新日(RFC 2822形式
最終更新日火曜日, 15 11月 1994 12:45:26 GMT
プラグマ
実装:実装: リクエストと応答の連鎖のどこかで、様々な効果を持つ可能性のある 特定のヘッダー。
プラグマ:no-cache
紹介者
現在リクエストされているページへのリンクがたどられた前のウェブページのアドレス。
リファラー:HTTP://www.edgenexus.io
サーバー
サーバー名
サーバーApache/2.4.1 (Unix)
セットクッキー
HTTPクッキー
Set-Cookie:UserID=JohnDoe; Max-Age=3600; Version=1
ユーザーエージェント
ユーザーエージェントの文字列
ユーザーエージェントMozilla/5.0 (互換性あり; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
可変
ダウンストリームのプロキシに、将来のリクエストヘッダをどのようにマッチさせるかを指示する。
キャッシュされたレスポンスが使用可能かどうかを決定する。
を決定します。
値を変更します:ユーザーエージェント
X-Powered-By
ウェブアプリケーションをサポートするテクノロジー(ASP.NET、PHP、JBossなど)を指定します。
X-Powered-By:PHP/5.4.0
 
センス
Senseフィールドはドロップダウンのブール値フィールドで、DoesかDoesn'tのどちらかを選択する。
チェック
チェックフィールドでは、コンディションに対するチェック値を設定することができます。
選択肢は以下の通り:Contain、End、Equal、Exist、Have Length、Match RegEx、Match List、Start、Exceed Length。
チェック
説明
存在する
これは状態の詳細を気にするものではなく、ただそれが存在する/しないだけである。
ホスト >> 存在する
スタート
文字列は値
Path> Does> Start /secure>
終了
文字列の最後は値
Path> Does> End - .jpg
コンテイン
文字列は値を含む
リクエスト・ヘッダ> Accept> Does> Contain> image
イコール
文字列は値と等しい
ホスト> Does> Equal> www.edgenexus.io
長さがある
文字列の長さは
ホスト >> は長さがあるか> 16
www.edgenexus.io = TRUE
www.edgenexus.com = FALSE
マッチ RegEx
Perl 互換の完全な正規表現を入力できます。
オリジン IP >> 正規表現と一致する
マッチリスト
値のリストと値をマッチさせることができる。これは、例えば特定のIPアドレスとマッチさせる必要がある場合に便利である。値はカンマ(,)またはピップ(|)で区切られる。
ソース IP>  Does > Match List > 10.10.10.1、10.10.10.2、10.10.10.3 など
エクシード・レングス
値が指定された長さを超えているかどうかをチェックできる。
パス > ドーズ > 長さの超過 > 200
 
コンディションを追加する手順
新しいflightPATH条件を追加するのはとても簡単です。例を上に示す。
1.     コンディションエリア内の「新規追加」ボタンをクリックします。
2.     ドロップダウン・ボックスから条件を選択する。ここではHostを例にとって説明する。フィールドに入力することもでき、ADCはドロップダウンに値を表示する。
3.     センスを選ぶ。例えば
4.     チェックを選択します。例えば
5.     値を選択します。例:mycompany.com
上記の例では、ルールが完了するためには、以下の2つの条件が両方とも真でなければならないことを示している。
     まず、リクエストされたオブジェクトが画像であるかどうかをチェックする。
     2つ目は、URLのホストがwww.imagepool.com。
評価
定義可能な変数を追加できることは、魅力的な機能だ。他の ADC では、スクリプトまたはコマンド・ライン・オプションを使用してこの機能を提供していますが、これは誰にとっても理想的ではありません。EdgeADC では、以下に示すように、使いやすい GUI を使用して任意の数の変数を定義できます。
flightPATH変数定義は、4つのエントリーを作成する必要がある。
     Variable - 変数の名前です。
     ソース - 可能なソースポイントのドロップダウンリスト。
     詳細 - ドロップダウンから値を選択するか、手入力する。
     値 - 変数が保持する値で、英数字か、微調整のためのRegExを指定します。
組み込み変数:
組み込み変数はすでにハードコードされているので、これらの評価エントリーを作成する必要はありません。
アクション・セクションには、以下のどの変数も使用できます。
     sourceip$ - リクエストの送信元IPアドレス
     sourceport$ - 使用されたソースポート。
     clientip$ - クライアントのIPアドレス
     clientport$ - クライアントが使用するポート
     host$ - リクエストで指定されたホスト
     method$ - 使用されるメソッド:GET、POST など。
     path$ - リクエストで指定されたパス
     querystring$ - リクエストで使用されるクエリストリング。
     version$ - REQUESTに含まれるHTTPリクエストのバージョン(現時点では1と1.1のみ許可)。
     resp$ - サーバからの応答。例:200OK、404など。
     geolocation$ - リクエストが発信されたGEOロケーション。
アクション
ターゲット
アクション = リダイレクト 302
ターゲット = HTTPs://$host$/404.html
アクション = ログ
ターゲット = $sourceip$:$sourceport$のクライアントが$path$ページをリクエストしました。
 
説明する:
     存在しないページにアクセスしたクライアントには、通常、ブラウザの404エラー・ページが表示される。
     代わりに、ユーザーは元のホスト名にリダイレクトされるが、間違ったパスは404.htmlに置き換えられる。
     Syslogに「154.3.22.14:3454のクライアントが間違った.htmlページをリクエストしました」というエントリーが追加される。
アクション
プロセスの次の段階は、flightPATHルールと条件に関連するアクションを追加することである。
この例では、ユーザーが入力したURLを反映させるために、URLのパス部分を書き換えたい。
     新規追加をクリックする
     アクション」ドロップダウンメニューから「パスの書き換え」を選択します。
     Targetフィールドに$path$/myimagesと入力する。
     更新をクリック
このアクションはパスに/myimagesを追加するので、最終的なURLは次のようになる。 www.imagepool.com/myimages
アクション
説明
リクエストクッキーの追加
Targetセクションに詳細なリクエストクッキーを、Dataセクションに値を追加する。
Target= Cookie Data= MS-WSMAN=afYfn1CDqqCDqCVii
リクエストヘッダーを追加
Dataセクションに値を持つTargetタイプのリクエストヘッダを追加する。
ターゲット= Accept Data= image/png
レスポンス・クッキーの追加
レスポンス・クッキーの詳細をターゲット・セクションに追加し、データ・セクションに値を追加する。
Target= Cookie Data= MS-WSMAN=afYfn1CDqqCDqCVii
レスポンス・ヘッダの追加
Targetセクションに詳細なリクエストヘッダを追加し、Dataセクションに値を追加する。
Target= Cache-Control Data= max-age=8888888
ボディ すべて交換
レスポンス・ボディを検索し、すべてのインスタンスを置き換える
Target= http:// (検索文字列) Data= https:// (置換文字列)
ボディ交換が先
レスポンス・ボディを検索し、最初のインスタンスだけを置き換える
Target= http:// (検索文字列) Data= https:// (置換文字列)
ボディは最後に交換する
レスポンス・ボディを検索し、最後のインスタンスだけを置き換える
Target= http:// (検索文字列) Data= https:// (置換文字列)
ドロップ
これは接続を切断する
目標=該当なし データ=該当なし
電子メール
Email Eventsで設定したアドレスにメールを送信します。アドレスまたはメッセージとして変数を使用できます。
Target="flightPATHはこのイベントにEメールを送った" Data= N/A
ログイベント
これは、システムログにイベントを記録します。
Target="flightPATHがsyslogにこれを記録した" Data= N/A
リダイレクト 301
これは恒久的なリダイレクトを発行する。
目標= http://www.edgenexus.io データ= 該当なし
リダイレクト 302
これは一時的なリダイレクトを発行する。
目標= http://www.edgenexus.io データ= 該当なし
リクエストクッキーの削除
ターゲット」セクションで詳述したリクエストクッキーを削除する
Target= Cookie Data= MS-WSMAN=afYfn1CDqqCDqCVii
リクエストヘッダの削除
ターゲットセクションで詳述されているリクエストヘッダを削除する
ターゲット=サーバー データ=N/A
レスポンスの削除
対象」セクションで詳述したレスポンスクッキーを削除する クッキー
ターゲット=jnAccel
レスポンスの削除
ターゲット」セクションの「ヘッダー」に詳述されているレスポンスヘッダーを削除する。
ターゲット= Etag データ= N/A
リクエスト・クッキーの置き換え
TargetセクションのリクエストクッキーをDataセクションの値に置き換える。
Target= Cookie Data= MS-WSMAN=afYfn1CDqqCDqCVii
リクエスト・ヘッダの置換
ターゲットのリクエストヘッダをデータ値で置き換える
ターゲット= 接続 データ= keep-alive
 
Targetセクションのレスポンス・クッキーをDataセクションの値で置き換える。
Target=jnAccel=afYfn1CDqqCDqCVii Date=MSWSMAN=afYfn1CDqqCDqCVii
リプレース・レスポンス
Targetセクションのレスポンス・ヘッダをDataセクションのヘッダで置き換える。
対象=サーバー データ=セキュリティのため非公開
パスの書き換え
これにより、リクエストは条件に基づいて新しいURLにリダイレクトされる。
Target= /test/path/index.html$querystring$ Data= N/A
セキュアサーバーの使用
使用するセキュアサーバーまたはバーチャルサービスを選択する
Target=192.168.101:443 Data=N/A
使用
使用するサーバーまたは仮想サービスを選択する
ターゲット= 192.168.101:80 データ= 該当なし
クッキーの暗号化
クッキーを3DES暗号化し、base64エンコードします。
Data= 暗号化のためのパスフレーズを入力します。
 
flightPATHルールのシナリオ
ある顧客がeコマースサイトを持っており、ブラウザの最新バージョンによってクッキーがブロックされるという問題を抱えている。
顧客は問題を追跡し、根本的な原因が問題のクッキーの「セキュア」と「同じサイト」のタグ付けの欠如にあることを発見しました。
flightPATHがどのように役立つかを見てみよう。
     wp_woocommerce_session_97929973749972642'という名前のクッキーがあります。
     クッキーの名前は「wp_woocommerce_session_」で、eコマース・システムによって生成されたランダムな一意のID値は「97929973749972642」です。
     same-site」と「secure」のタグは空白のようで、それゆえクッキーはブラウザの新しいセキュリティ制限によってブロックされています。
     これを防ぐには、次のようなflightPATHルールを作ればいい。
     セッションIDのflightPATHルール
o     コンディション
空白のまま
o     評価
変数 = $variable_1$
ソース = レスポンスクッキー
詳細 = wp_woocommerce_session_*
o    
アクション = レスポンスクッキーを置き換える
ターゲット = wp_woocommerce_session_*
データ = $variable_1$
     タグのflightPATHルール
o     条件
条件 = レスポンスクッキー
マッチ = woocommerce_cart_hash
センス = する
チェック = 存在する
値 = 空白のまま
o     評価:
変数 = $variable_2$
ソース = レスポンスクッキー
詳細 = woocommerce_cart_hash
値 = 空白のまま
o     アクション
アクション = レスポンスクッキーを置き換える
ターゲット = woocommerce_cart_hash
データ = $variable_2$,SameSite=None,Secure
次に、ルールが必要な仮想サービスにルールを適用します。