透過型プロキシモードでは、WAF は Application Load Balancer (ALB) インスタンス、レイヤー 7 またはレイヤー 4 リスナーを持つ Server Load Balancer (SLB) インスタンス、Elastic Compute Service (ECS) インスタンスなどの Alibaba Cloud サービスへの Web トラフィックを保護します。このトピックでは、Web アプリケーションのアーキテクチャに基づいて、サーバーインスタンスのトラフィックリダイレクションポートを設定する方法について説明します。特定のポートで透過型プロキシモードを有効にすると、そのポートのトラフィックは保護のために WAF にリダイレクトされます。
注意事項
トラフィックリダイレクトは、サーバーインスタンスとポートの特定の組み合わせに適用されます。サーバーインスタンスのあるポートに対してトラフィックリダイレクトを設定すると、そのポート上のすべてのトラフィックが保護のために WAF に送信されます。
複数のドメイン名がサーバーポートを共有している場合、いずれかのドメイン名のトラフィックをリダイレクトすると、そのポート上のすべてのドメイン名のトラフィックが WAF にリダイレクトされます。WAF は、共有ポート上の一部のドメイン名のみのトラフィックをリダイレクトすることには対応していません。
たとえば、ドメイン名 A とドメイン名 B の両方が、ご利用の ECS インスタンスのポート 80 を介してトラフィックを処理しているとします。ドメイン名 A のトラフィックリダイレクトを設定すると、ドメイン名 B のトラフィックも自動的に WAF によって保護されます。後でドメイン名 B のトラフィックリダイレクトを設定する際には、ドメイン名 A の設定からポート 80 がすでにデフォルトで選択されていることがわかります。この設定は変更せずに確定できます。
レイヤー 4 SLB インスタンスまたは ECS インスタンスで実行されている HTTPS ウェブサイトのトラフィックリダイレクションポートを設定する場合、インスタンスとポートに関連付けられているすべての SSL 証明書をアップロードする必要があります。アップロードしない場合、サービスが中断される可能性があります。
ポートが 1 つの SSL 証明書のみを使用している場合は、デフォルト証明書のみをアップロードする必要があります。
ポートが複数の SSL 証明書を使用している場合は、デフォルト証明書とすべての拡張証明書をアップロードする必要があります。
設定例
以下の例では、単一サーバーで複数のドメイン名が別々のポートを使用する場合、単一サーバーで複数のドメイン名が共有ポートを使用する場合、および複数サーバーで複数のドメイン名が共有ポートを使用する場合の各シナリオで、異なるドメイン名のトラフィックリダイレクションポートを設定する方法について説明します。
シナリオ 1:1 つのサーバーインスタンス (server1) と 2 つのドメイン名 (domain1 と domain2) があります。server1 のポート 80 は domain1 へのトラフィックをリッスンし、server1 のポート 443 は domain2 へのトラフィックをリッスンします。
この場合、次の手順で各ドメイン名のトラフィックリダイレクトを設定できます。
WAF 保護のために domain1 を追加します。トラフィックリダイレクションポートの設定で、ポート 80 を選択します。
設定が完了すると、WAF は server1 のポート 80 上の domain1 の Web トラフィックを保護します。
WAF 保護のために domain2 を追加します。トラフィックリダイレクションポートの設定で、ポート 443 を選択します。
説明ポート 80 は domain1 に設定されているため、デフォルトで選択されています。この選択は変更しないでください。
設定が完了すると、WAF は server1 のポート 443 上の domain2 の Web トラフィックも保護します。
シナリオ 2:1 つのサーバーインスタンス (server1) と 2 つのドメイン名 (domain1 と domain2) があります。server1 のポート 80 は、domain1 と domain2 の両方へのトラフィックをリッスンします。
この場合、次の手順で各ドメイン名のトラフィックリダイレクトを設定できます。
WAF 保護のために domain1 を追加します。トラフィックリダイレクションポートの設定で、ポート 80 を選択します。
設定が完了すると、WAF は server1 のポート 80 上の domain1 と domain2 の両方のすべての Web トラフィックを保護します。
この時点では、ドメイン名リストには domain1 のみ表示されます。その後、domain1 に固有の保護ポリシーを設定し、関連データを表示できます。domain2 のトラフィックは、デフォルトの WAF 保護ポリシーによってのみ保護されます。
WAF 保護のために domain2 を追加します。トラフィックリダイレクションポートの設定では、ポート 80 がデフォルトで選択されています。設定を変更せずに、そのまま確定できます。
設定が完了すると、ドメイン名リストに domain2 が表示されます。これで、domain2 に固有の保護ポリシーを設定し、関連データを表示できます。
シナリオ 3:2 つのサーバーインスタンス (server1 と server2) と 3 つのドメイン名 (domain1、domain2、domain3) があります。server1 のポート 80 は domain1 と domain2 へのトラフィックをリッスンします。server2 のポート 80 は domain2 と domain3 へのトラフィックをリッスンします。
domain2 のトラフィックリダイレクトを設定する場合、トラフィックリダイレクションポートの設定で server1 のポート 80 と server2 のポート 80 を選択する必要があります。
設定が完了すると、WAF は server1 のポート 80 の Web トラフィック (domain1 のすべてのトラフィックと domain2 の一部のトラフィックを含む) と、server2 のポート 80 の Web トラフィック (domain2 の残りのトラフィックと domain3 のすべてのトラフィックを含む) を保護します。
この時点では、ドメイン名リストには domain2 のみ表示されます。これにより、domain2 に固有の保護ポリシーを設定し、関連データを表示できます。デフォルトの WAF 保護ポリシーは、server1 のポート 80 上の domain1 のトラフィックと、server2 のポート 80 上の domain3 のトラフィックを保護します。
WAF 保護のために domain1 と domain3 を追加する場合、トラフィックリダイレクションポートの設定では、server1 と server2 の両方のポート 80 がデフォルトで選択されています。設定を変更せずに、そのまま確定できます。
説明事前に選択されているポートは、domain2 の Web トラフィックがすでに WAF によって保護されていることを示します。この選択は変更しないでください。
設定が完了すると、ドメイン名リストに domain1 と domain3 が表示されます。
ALB ポートのリダイレクト
推奨シナリオ:Web サービスの入り口として ALB インスタンスをデプロイしており、インスタンスのリスナー上のトラフィックに対して WAF 保護を有効にしたい場合。
前提条件:ポート設定セクションで、SLB ベースのドメイン タブをクリックします。
インスタンスリストの説明:このリストには、SLB からのインターネット向け ALB インスタンスが表示されます。ポート 列には、ALB インスタンスに設定されている HTTP または HTTPS リスナーのポートが表示されます。
リスナーの WAF 保護を有効にする:SLB コンソールで、ALB インスタンスの HTTP または HTTPS リスナーを作成し、リスナー設定で WAF 保護の有効化 を選択します。ALB インスタンスのリスナー作成の詳細については、「HTTP リスナーの追加」および「HTTPS リスナーの追加」をご参照ください。
すでに HTTP または HTTPS リスナーを作成している場合は、その設定を変更して WAF 保護 を有効または無効にできます。
WAF コンソールの 透過型プロキシモード 設定の SLB ベースのドメイン タブでは、HTTP または HTTPS リスナーの WAF 保護ステータスを表示することしかできません。この設定を変更するには、SLB コンソールに移動する必要があります。
レイヤー 7 SLB ポートのリダイレクト
推奨シナリオ:Web サービスの入り口としてレイヤー 7 の HTTP または HTTPS リスナーを持つ SLB インスタンスをデプロイしており、インスタンスのリスナー上のトラフィックに対して WAF 保護を有効にしたい場合。
前提条件:ポート設定セクションで、レイヤ 7 SLB ベースのドメイン タブをクリックします。
インスタンスリストの説明:レイヤ 7 SLB ベースのドメイン リストには、SLB で作成されたインターネット向け SLB インスタンスが表示されます。ポート 列には、SLB インスタンスに設定されている HTTP または HTTPS リスナーのポートが表示されます。
リスナーポートの WAF 保護を有効にする:WAF コンソールの レイヤ 7 SLB ベースのドメイン タブで、ポート 列から目的のポートを選択します。この列には、利用可能な HTTP および HTTPS リスナーポートが一覧表示されます。
ポートを選択すると、そのトラフィックは検査と保護のために WAF にリダイレクトされます。選択されていないポートのトラフィックは、WAF をバイパスしてクライアントから直接オリジンサーバーに送信されます。
単一のポートが複数のドメイン名のトラフィックをリッスンしている場合、そのポートを選択すると、デフォルトでそれらすべてのドメイン名の WAF 保護が有効になります。そのポート上の特定のドメイン名のみの保護を有効にすることはできません。
ポート 列に 利用可能ポートなし と表示される場合、インスタンスに HTTP または HTTPS リスナーが作成されていません。まず SLB コンソールに移動して、インスタンスの HTTP または HTTPS リスナーを作成する必要があります。その後、WAF コンソールに戻ってポートの WAF 保護を有効にできます。詳細については、「HTTP リスナーの追加」および「HTTPS リスナーの追加」をご参照ください。
レイヤー 4 SLB ポートのリダイレクト
推奨シナリオ:Web サービスの入り口としてレイヤー 4 TCP リスナーを持つ SLB インスタンスをデプロイしており、インスタンスのリスナー上のトラフィックに対して WAF 保護を有効にしたい場合。
前提条件:ポート設定セクションで、レイヤ 4 SLB ベースのドメイン タブをクリックします。
インスタンスリストの説明:レイヤ 4 SLB ベースのドメイン リストには、SLB で作成されたインターネット向け SLB インスタンスが表示されます。ポート 列には、WAF コンソールに追加された TCP リスナーポートが表示されます。
手順
このシナリオでは、ポートの保護を有効にする前に、まずアクティブなリスナーポートを WAF に追加する必要があります。次の手順に従ってください:
既存の TCP リスナーポートを WAF に追加します。
重要WAF コンソールに TCP リスナーポートを追加する前に、SLB コンソールで SLB インスタンスの TCP リスナーを作成する必要があります。詳細については、「TCP リスナーの追加」をご参照ください。
WAF コンソールの レイヤ 4 SLB ベースのドメイン タブで、ポート 列の 追加 をクリックします。
ポートの追加 ダイアログボックスで、アクティブな TCP の ポート と、それに関連するアプリケーションプロトコル (HTTP または HTTPS) を選択します。
任意: HTTP を選択した場合は、このステップをスキップします。HTTPS を選択した場合は、プロンプトに従って対応するデフォルト証明書と拡張証明書をアップロードします。最大 3 つの拡張証明書を追加できます。
証明書は次のように説明されます:
デフォルト証明書:サーバーが HTTPS リクエストを受信したときに、デフォルトでクライアントに返す証明書です。サーバーが 1 つの SSL 証明書しか使用しない場合は、デフォルト証明書のみをアップロードする必要があります。
拡張証明書:クライアントの HTTPS リクエストのサーバ名表示 (SNI) フィールドとの照合が成功した後に、サーバーがクライアントに返す証明書です。サーバーは、SNI 拡張のドメイン名が拡張証明書のドメイン名と一致するかどうかを確認します。一致が見つからない場合、サーバーはデフォルト証明書を返します。
SNI は SSL/TLS プロトコルの拡張機能であり、単一のサーバーが異なる証明書を持つ複数のドメイン名をホストできるようにします。クライアントは、SSL 接続を確立する前にアクセスしたいホスト名を送信します。サーバーは、このホスト名を使用して適切な証明書を返します。
証明書は、次のいずれかの方法でアップロードできます:
手動でアップロード:証明書名、[証明書ファイル] の内容、および [秘密鍵ファイル] の内容を手動で入力する必要があります。
既存証明書の選択:SSL Certificates Service コンソールの既存の証明書リストから証明書を選択します。
証明書がリストにない場合は、[SSL Certificates Service] をクリックして一元管理のためにアップロードします。その後、リストから選択できます。
追加したポートの保護を有効にします。WAF コンソールの レイヤ 4 SLB ベースのドメイン タブで、ポート 列の追加されたポートのリストからポートを選択します。
ポートを選択すると、そのトラフィックは検査と保護のために WAF にリダイレクトされます。選択されていないポートのトラフィックは、WAF をバイパスしてクライアントから直接オリジンサーバーに送信されます。
重要単一のポートが複数のドメイン名のトラフィックをリッスンしている場合、そのポートを選択すると、デフォルトでそれらすべてのドメイン名の WAF 保護が有効になります。そのポート上の特定のドメイン名のみの保護を有効にすることはできません。
ECS ポートのリダイレクト
推奨シナリオ:Web サービスの入り口として ECS インスタンスを使用しており、その HTTP または HTTPS トラフィックに対して WAF 保護を有効にしたい場合。
前提条件:ポート設定セクションで、ECS ベースのドメイン タブをクリックします。
インスタンスリストの説明:ECS ベースのドメイン リストには、ECS で作成されたパブリック IP アドレスを持つ ECS インスタンスが表示されます。ポート 列には、WAF に追加されたポートが表示されます。
手順
このシナリオでは、ポートの保護を有効にする前に、まずポートを WAF に追加する必要があります。次の手順に従ってください:
保護したいポートを WAF に追加します。
WAF コンソールの ECS ベースのドメイン タブで、ポート 列の 追加 をクリックします。
ポートの追加 ダイアログボックスで、ポート をオリジン ECS インスタンスの HTTP または HTTPS アプリケーションポートに設定し、対応するプロトコル (HTTP または HTTPS) を選択します。
任意: HTTP を選択した場合は、このステップをスキップします。HTTPS を選択した場合は、プロンプトに従って対応するデフォルト証明書と拡張証明書をアップロードします。最大 3 つの拡張証明書を追加できます。
証明書は次のように説明されます:
デフォルト証明書:サーバーが HTTPS リクエストを受信したときに、デフォルトでクライアントに返す証明書です。サーバーが 1 つの SSL 証明書しか使用しない場合は、デフォルト証明書のみをアップロードする必要があります。
拡張証明書:クライアントの HTTPS リクエストのサーバ名表示 (SNI) フィールドとの照合が成功した後に、サーバーがクライアントに返す証明書です。サーバーは、SNI 拡張のドメイン名が拡張証明書のドメイン名と一致するかどうかを確認します。一致が見つからない場合、サーバーはデフォルト証明書を返します。
SNI は SSL/TLS プロトコルの拡張機能であり、単一のサーバーが異なる証明書を持つ複数のドメイン名をホストできるようにします。クライアントは、SSL 接続を確立する前にアクセスしたいホスト名を送信します。サーバーは、このホスト名を使用して適切な証明書を返します。
証明書は、次のいずれかの方法でアップロードできます:
手動でアップロード:証明書名、[証明書ファイル] の内容、および [秘密鍵ファイル] の内容を手動で入力する必要があります。
既存証明書の選択:SSL Certificates Service コンソールの既存の証明書リストから証明書を選択します。
証明書がリストにない場合は、[SSL Certificates Service] をクリックして一元管理のためにアップロードします。その後、リストから選択できます。
追加したポートの保護を有効にします。WAF コンソールの ECS ベースのドメイン タブで、ポート 列の追加されたポートのリストからポートを選択します。
ポートを選択すると、そのトラフィックは検査と保護のために WAF にリダイレクトされます。選択されていないポートのトラフィックは、WAF をバイパスしてクライアントから直接オリジンサーバーに送信されます。
重要単一のポートが複数のドメイン名のトラフィックをリッスンしている場合、そのポートを選択すると、デフォルトでそれらすべてのドメイン名の WAF 保護が有効になります。そのポート上の特定のドメイン名のみの保護を有効にすることはできません。