Web サイトを Web Application Firewall (WAF) に追加すると、すべてのトラフィックは WAF を経由してからオリジンサーバーに到達します。しかし、オリジンサーバーのパブリック IP アドレスが公開されている場合、攻撃者は WAF をバイパスしてオリジンに直接リクエストを送信する可能性があります。これを防ぐには、オリジンサーバーでアクセス制御ポリシーを設定し、WAF の back-to-origin CIDR ブロックからのトラフィックのみを受け入れるようにします。
このトピックでは、Server Load Balancer (SLB) インスタンスの背後にある Elastic Compute Service (ECS) インスタンスをオリジンサーバーの例として使用します。
-
オリジンサーバーの保護が設定されているかどうかにかかわらず、Web サイトが WAF に追加されるとすぐにトラフィック転送が開始されます。
-
ECS インスタンスと SLB インスタンスが 透過型プロキシモード で WAF に追加されている場合、リダイレクトポート上のすべてのトラフィックは自動的に WAF を経由します。このモードでは攻撃者は WAF をバイパスできないため、オリジンサーバーの保護は必要ありません。
オリジンサーバーのアクセス制御におけるリスク
アクセス制御ポリシーが正しくないと、サービスが中断する可能性があります。続行する前に、以下のリスクを確認してください。
-
ホストされているすべてのドメインを WAF に追加する必要があります。 ECS インスタンスまたは SLB インスタンスでホストされているドメインが WAF に追加されていない場合、攻撃者はそのドメインを使用してオリジンサーバーに到達し、同じサーバー上の他のすべてのドメインのサービスに影響を与える可能性があります。
-
WAF クラスターのフェールオーバーはアクセス制御をバイパスします。 WAF クラスターに障害が発生した場合、サービスの継続性を維持するためにトラフィックは直接オリジンサーバーに転送されます。WAF トラフィックのみを許可するようにセキュリティグループルールまたは SLB リスナーのホワイトリストが設定されている場合、フェールオーバー中にオリジンサーバーに到達できなくなります。
-
back-to-origin CIDR ブロックは時間とともに変化します。 WAF は定期的に back-to-origin CIDR ブロックを更新します。新しいブロックがセキュリティグループルールまたは SLB リスナーのホワイトリストに追加されない場合、HTTP 5XX エラーが発生する可能性があります。WAF コンソールで定期的に更新を確認し、アクセス制御ポリシーを速やかに調整してください。
-
WAF の使用を停止する前にアクセス制御ポリシーを削除してください。 WAF を使用しなくなった場合は、トラフィックをオリジンに切り替える前に、すべてのオリジンサーバーのアクセス制御ポリシーを削除してください。そうしないと、トラフィックがオリジンサーバーに到達できず、サービスが中断されます。
前提条件
開始する前に、以下の準備が整っていることを確認してください。
-
オリジンサーバーとして、Alibaba Cloud ECS インスタンスが SLB インスタンスに追加されていること。 詳細については、「ECS とは」および「SLB とは」をご参照ください。
-
ECS または SLB インスタンスでホストされているすべてのドメイン名を、[CNAME レコードモード]で WAF に追加する必要があります。詳細については、「WAF へのドメイン名の追加」をご参照ください。
オリジンサーバーの IP アドレスが公開されているかの確認
Alibaba Cloud 外部のホストから Telnet を使用して、オリジンサーバーのパブリック IP アドレスのサービスポートに接続します。
-
接続成功:IP アドレスは公開されています。この IP を取得した攻撃者は、WAF をバイパスしてオリジンに直接リクエストを送信できます。
-
接続失敗:IP アドレスは公開されていません。
例:ポート 80 と 8080 でオリジンサーバーへの接続性をテストします。両方の接続が成功した場合、IP アドレスは公開されています。

WAF の back-to-origin CIDR ブロックの取得
WAF の back-to-origin CIDR ブロックは定期的に更新されます。サービスの中断を避けるため、更新通知を監視し、新しい CIDR ブロックを速やかにセキュリティグループルールとホワイトリストに追加してください。
-
WAF コンソールにログインします。トップナビゲーションバーで、WAF インスタンスのリソースグループとリージョン (中国本土 または 中国本土以外) を選択します。
-
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
-
[CNAME アクセス] タブで、[Back-to-origin CIDR ブロック] をクリックします。
-
Back-to-origin CIDR ブロック ダイアログで、複製 をクリックします。
ECS セキュリティグループルールの設定
2 つのセキュリティグループルールを作成します。1 つは WAF の back-to-origin CIDR ブロックからのインバウンドトラフィックを許可するルール、もう 1 つは他のすべてのインバウンドトラフィックを拒否するルールです。
セキュリティグループ設定を開く
-
ECS コンソールにログインします。
-
左側のナビゲーションウィンドウで、ネットワーク & セキュリティ > Security groups を選択します。
-
トップナビゲーションバーの左上で、ECS インスタンスのリージョンを選択します。
-
ターゲットのセキュリティグループを見つけ、操作 列の [ルールの管理] をクリックします。
-
ルールの方向を選択します。
-
Virtual Private Cloud (VPC):受信 または 送信 タブをクリックします。
-
クラシックネットワーク: 受信、送信、インターネット入力、またはインターネット出力タブをクリックします。
-
WAF トラフィックを許可するルールの追加
-
受信 タブで、ルールの追加 をクリックします。
-
以下のパラメーターを設定し、保存 をクリックします。
パラメーター
説明
許可ポリシー
許可 を選択します。
優先度
[1] (最高優先度) を入力します。
プロトコルタイプ
カスタム TCP を選択します。
ポート番号の範囲
HTTP (80) と HTTPS (443) を選択します。
権限付与オブジェクト
WAF の back-to-origin CIDR ブロックを貼り付けます。
説明
例:WAF の back-to-origin CIDR ブロックからのインバウンドトラフィックを許可します。
オリジンサーバーが WAF の back-to-origin CIDR ブロックおよび標準の HTTP/HTTPS ポート以外の IP アドレスとポートで他のアプリケーションと通信する場合、それらの IP アドレスとポートもセキュリティグループルールに追加してください。
許可ルールは最高の優先度を持つため、WAF の back-to-origin CIDR ブロックからのすべてのインバウンドトラフィックが許可されます。
すべての WAF の back-to-origin CIDR ブロックが含まれていることを確認してください。CIDR ブロックが欠落していると、アクセスに失敗します。
他のすべてのトラフィックを拒否するルールの追加
-
受信 タブで、ルールの追加 をクリックします。
-
以下のパラメーターを設定し、保存 をクリックします。
パラメーター
説明
許可ポリシー
拒否 を選択します。
優先度
[100](最も低い優先度)を入力します。
プロトコルタイプ
カスタム TCP を選択します。
ポート番号の範囲
HTTP (80) と HTTPS (443) を選択します。
権限付与オブジェクト
0.0.0.0/0を入力します。これはすべての CIDR ブロックに一致します。Description
例:すべてのインバウンドトラフィックをブロックします。
両方のルールが設定されると、ECS インスタンスは WAF の back-to-origin CIDR ブロックからのリクエストを除くすべてのインバウンドトラフィックをブロックします。すべてのサービストラフィックは、ECS インスタンスに到達する前に WAF を経由する必要があります。
SLB アクセス制御ポリシーの設定
オリジンサーバーが SLB インスタンスの背後にある場合、SLB リスナーにホワイトリストを設定して WAF トラフィックのみを許可します。
以下の例では、クラシックロードバランサー (CLB) インスタンスを使用します。Application Load Balancer (ALB) インスタンスの場合は、「アクセス制御」を参照し、手順を適宜調整してください。
アクセス制御リストの作成
-
CLB コンソールにログインします。
-
トップナビゲーションバーで、CLB インスタンスのリージョンを選択します。
-
左側のナビゲーションウィンドウで、Classic Load Balancer (CLB) > アクセス制御 を選択します。
-
アクセス制御 ページで、ACL の作成 をクリックします。
-
ACL の作成 パネルで、以下のパラメーターを設定し、作成 をクリックします。
パラメーター
説明
ポリシーグループ名
名前を入力します。例:WAF の back-to-origin CIDR ブロック。
Add Multiple Addresses/CIDR Blocks and Descriptions
すべての WAF の back-to-origin CIDR ブロックを 1 行に 1 つずつ貼り付けます。コピーしたリストはカンマを区切り文字として使用します。貼り付ける前に、カンマを改行に置き換えてください。
リスナーのホワイトリスト設定
-
左側のナビゲーションウィンドウで、CLB > インスタンス を選択します。
-
インスタンス ページで、ターゲットのインスタンスを見つけ、その ID をクリックします。
-
リスナー タブで設定するリスナーを見つけ、操作 列の
アイコンをクリックして、設定 をクリックします。WAF によって保護されているサービスに基づいてリスナーを選択します:-
HTTP サービス:HTTP リスナーを選択します。
-
HTTPS サービス:HTTPS リスナーを選択します。
-
HTTP と HTTPS の両方のサービス:両方のリスナーを選択します。
-
-
アクセス制御設定 パネルで、アクセス制御の有効化 をオンにし、以下のパラメーターを設定します。
パラメーター
説明
アクセス制御モード
ホワイトリスト: 指定された IP アドレスが ALB インスタンスにアクセスすることを許可する を選択して、特定の IP アドレスのみを許可します。
ACL の選択
WAF の back-to-origin CIDR ブロック用に作成した ACL を選択します。
ホワイトリストが適用されると、CLB インスタンスは WAF の back-to-origin CIDR ブロックからのインバウンドトラフィックのみを受け入れます。
設定の確認
セキュリティグループルールまたは SLB リスナーのホワイトリストを設定した後、設定が有効になっていることを確認します。
-
Alibaba Cloud 外部のホストから、Telnet を使用してオリジンサーバーのポート 80 と 8080 に接続します。
-
結果を確認します。
-
ポート 80 または 8080 に接続できないが、サービスは正常に動作している:設定は有効です。オリジンへの直接アクセスはブロックされ、すべてのトラフィックは WAF を経由しています。
-
まだ接続できる:セキュリティグループルールと SLB ホワイトリストの設定に欠落しているエントリがないか確認してください。
-