Webアプリケーションファイアウォール (WAF) にWebサイトを追加すると、Webサイト宛てのトラフィックがWAFにリダイレクトされ、配信元サーバーに転送されます。 配信元サーバーのIPアドレスが公開されている場合、攻撃者はWAFをバイパスして配信元への直接攻撃を開始できます。 オリジンサーバーのアクセス制御ポリシーを設定して、WAFのback-to-origin CIDRブロックからのインバウンドトラフィックのみを許可できます。 このトピックでは、オリジンサーバーのアクセス制御ポリシーを設定する方法について説明します。 このトピックでは、Server Load Balancer (SLB) インスタンスに追加されたElastic Compute Service (ECS) インスタンスを例として使用します。
WebサイトをWAFに追加すると、オリジンサーバーに保護が設定されているかどうかに関係なく、トラフィックが転送されます。
ECSインスタンスとSLBインスタンスを透過プロキシモードでWAFに追加すると、トラフィックリダイレクトポート上のすべてのトラフィックがWAFにリダイレクトされます。 攻撃者は、WAFをバイパスして直接配信元攻撃を開始することはできません。 この場合、オリジンサーバーの保護を構成する必要はありません。
注意事項
オリジンサーバーのアクセス制御ポリシーを誤って設定すると、セキュリティ上のリスクが生じる可能性があります。 オリジンサーバーの保護を構成する前に、次の項目に注意してください。
ECSまたはSLBインスタンスでホストされているすべてのドメイン名がWAFに追加されていることを確認します。 WAFに追加されていないドメイン名を使用してオリジンサーバーを攻撃した場合、オリジンサーバーでホストされている他のドメイン名のサービスが影響を受けます。
WAFクラスターに障害が発生した場合、Webサイト宛てのトラフィックが配信元サーバーに転送され、サービスの継続性が確保されます。 この場合、ECSインスタンスのセキュリティグループルールまたはSLBインスタンスのリスナーのホワイトリストを設定した場合、インターネット経由でオリジンサーバーにアクセスすることはできません。
WAFの新しいback-to-origin CIDRブロックが追加され、ECSインスタンスのセキュリティグループルールまたはSLBインスタンスのリスナーのホワイトリストが設定されている場合、HTTP 5XXステータスコードが頻繁に返されることがあります。 WAFのback-to-origin CIDRブロックの更新をWAFコンソールで定期的に表示し、関連するアクセス制御ポリシーをできるだけ早く更新することをお勧めします。
WAFを使用しなくなった場合は、トラフィックをオリジンサーバーに戻す前に、設定したアクセス制御ポリシーを削除する必要があります。 そうしないと、トラフィックをオリジンサーバーに送信できず、サービスの中断が発生する可能性があります。
前提条件
オリジンサーバーは、SLBインスタンスに追加されたAlibaba Cloud ECSインスタンスです。 詳細については、「ECSの概要」および「SLBの概要」をご参照ください。
ECSインスタンスまたはSLBインスタンスでホストされているすべてのドメイン名は、CNAMEレコードモードでWAFに追加されます。 詳細については、「WAFへのドメイン名の追加」をご参照ください。
ステップ1: オリジンサーバーにIPアドレス公開リスクがあるかどうかを確認する
Telnetを使用して、サービスポートとオリジンサーバーのパブリックIPアドレスを使用して、Alibaba Cloudにデプロイされていないホストからオリジンサーバーへの接続を確立します。
接続が成功すると、オリジンサーバーのIPアドレスが公開されます。 この場合、パブリックIPアドレスを取得した攻撃者は、WAFをバイパスして、直接配信元攻撃を開始できます。
接続に失敗した場合、オリジンサーバーのIPアドレスは公開されません。
例: ポート80と8080を介して、WAFによって保護されているオリジンサーバーに接続できるかどうかを確認します。 ポート80と8080を介してオリジンサーバーに接続できる場合、オリジンサーバーのIPアドレスが公開されます。
ステップ2: WAFのback-to-origin CIDRブロックを取得する
WAFのback-to-origin CIDRブロックは定期的に更新されます。 サービスの中断を回避するには、更新通知に注意し、更新されたback-To-origin CIDRブロックをできるだけ早くセキュリティグループルールとホワイトリストに追加します。
WAFコンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスがデプロイされているリソースグループとリージョンを選択します。 リージョンは、中国本土または中国本土以外です。
左側のナビゲーションウィンドウで、 .
の右下隅にプロダクト情報ページを検索し、WAF IPセグメントセクションをクリックし、すべてのIPをコピー.
WAF IPセグメントセクションには、WAFの最新のback-to-origin CIDRブロックが表示されます。
ステップ3: ECSインスタンスのセキュリティグループルールの設定
WAFのback-to-origin CIDRブロックを取得し、ECSインスタンスのセキュリティグループルールを設定して、WAFのback-to-origin CIDRブロックからのインバウンドトラフィックのみを許可します。
セキュリティグループのリストページに移動します。
にログインします。ECSコンソール.
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーの左上隅で、リージョンを選択します。
ルールを追加するセキュリティグループを見つけて、[操作] 列の [ルールの管理] をクリックします。
セキュリティグループルールの方向を選択します。
セキュリティグループが仮想プライベートクラウド (VPC) にある場合、[インバウンド] または [アウトバウンド] タブをクリックします。
セキュリティグループがクラシックネットワークに存在する場合、[インバウンド] 、[アウトバウンド] 、[インターネットイングレス] 、または [インターネットエグレス] タブをクリックします。
最も優先度の高いセキュリティグループルールを追加して、WAFのback-to-origin CIDRブロックからのインバウンドトラフィックのみを許可します。
On theインバウンドのタブアクセスルールセクション、をクリックルールの追加.
パラメーターを設定し、保存. 下表に、各パラメーターを説明します。
パラメーター
説明
Action
[許可する] を選択します。
優先度
最高の優先度を指定する1を入力します。
プロトコルタイプ
[カスタムTCP] を選択します。
ポート範囲
[HTTP (80)] および [HTTPS (443)] を選択します。
権限付与オブジェクト
取得したback-to-origin CIDRブロックを [ソース] フィールドに貼り付けます。
説明
セキュリティグループルールの説明を入力します。 例: WAF back-to-origin CIDRブロックからのインバウンドトラフィックを許可します。
重要配信元サーバーが、指定されたWAF back-to-origin CIDRブロックとHTTPまたはHTTPSポート以外のIPアドレスとポートを使用してアプリケーションと通信する場合は、そのIPアドレスとポートをセキュリティグループルールに追加する必要があります。
セキュリティグループルールを追加すると、ルールはセキュリティグループで最も高い優先度を受け取ります。 これにより、ECSインスタンスは、WAF back-to-origin CIDRブロックからのすべてのインバウンドトラフィックを許可します。
警告すべてのWAF back-to-origin CIDRブロックを必ずセキュリティグループルールに追加してください。 そうでない場合、アクセス例外が発生する可能性があります。
優先度が最も低いセキュリティグループルールを追加して、他のCIDRブロックからのインバウンドトラフィックを拒否します。
On theインバウンドのタブアクセスルールセクション、をクリックルールの追加.
パラメーターを設定し、保存. 下表に、各パラメーターを説明します。
パラメーター
説明
Action
[拒否] を選択します。
優先度
最も低い優先度を指定する100を入力します。
プロトコルタイプ
[カスタムTCP] を選択します。
ポート範囲
[HTTP (80)] および [HTTPS (443)] を選択します。
権限付与オブジェクト
ソースフィールドに0.0.0.0/0と入力します。 0.0.0.0/0はすべてのCIDRブロックを指定します。
説明
セキュリティグループルールの説明を入力します。 例: すべてのインバウンドトラフィックをブロックします。
セキュリティグループルールを追加すると、ECSインスタンスはWAFのback-to-origin CIDRブロックを除くすべてのCIDRブロックからのインバウンドトラフィックをブロックします。 これにより、すべてのサービストラフィックは、トラフィックがECSインスタンスに到達する前にWAFを通過します。
手順4: SLBインスタンスのアクセス制御ポリシーの設定
オリジンサーバーをSLBインスタンスに追加した場合、WAFのback-to-origin CIDRブロックからのインバウンドトラフィックのみを許可するように、SLBインスタンスのアクセス制御ポリシー (ホワイトリスト) を設定する必要があります。
次のセクションでは、アクセス制御ポリシーを設定する方法について説明します。 この例では、Classic Load Balancer (CLB) インスタンスが使用されています。 Application Load Balancer (ALB) インスタンスを使用する場合は、次の手順と [アクセス制御] トピックの説明に基づいてアクセス制御ポリシーを設定します。
- CLBコンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、 .
アクセス制御リスト (ACL) を作成します。
On theアクセス制御ページをクリックします。ACLの作成.
では、アクセス制御リストの作成パネル、パラメータを設定し、作成. 下表に、各パラメーターを説明します。
パラメーター
説明
ACL名
ACLの名前を入力します。 例: WAF back-to-origin CIDRブロック。
複数のアドレス /CIDRブロックと説明の追加
すべてのWAF back-to-origin CIDRブロックをコピーして貼り付けます。
各行に1つのCIDRブロックを入力します。 Enterキーを押して新しい行を開始します。
説明コピーされるすべてのWAF back-to-origin CIDRブロックは、コンマ (,) で区切ります。 CIDRブロックを貼り付ける前に、拡張子の置き換えをサポートするテキストエディターを使用して、コンマ (,) を改行 (\n) に置き換えることをお勧めします。
リスナーのホワイトリストを設定します。
左側のナビゲーションウィンドウで、 .
On theインスタンスページで、管理するインスタンスを検索し、インスタンスのIDをクリックします。
[リスナー] タブで、ホワイトリストを設定するリスナーを見つけ、[操作] 列のアイコンをクリックし、[アクセス制御の設定] をクリックします。
WAFによって保護されているサービスのタイプに基づいてリスナーを選択します。
HTTPサービスがWAFに追加されている場合は、HTTPリスナーを選択します。
HTTPSサービスがWAFに追加されている場合は、HTTPSリスナーを選択します。
HTTPおよびHTTPSサービスがWAFに追加されている場合は、HTTPリスナーとHTTPSリスナーを選択します。
では、アクセス制御の設定パネルは、つけますアクセス制御の有効化パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
アクセス制御方式
[ホワイトリスト] を選択して、特定のIPアドレスがCLBインスタンスにアクセスできるようにします。
アクセス制御リスト
WAF back-to-origin CIDRブロック用に作成したACLを選択します。
上記の設定が完了すると、CLBインスタンスはWAF back-to-origin CIDRブロックからのインバウンドトラフィックを許可します。
次のステップ
ECSインスタンスのセキュリティグループルールまたはSLBインスタンスのリスナーのホワイトリストを設定した後、ポート80と8080でオリジンサーバーに接続できるかどうかを確認することを推奨します。 これにより、設定が有効かどうかを判断できます。
ポート80 8080でオリジンサーバーに接続できないが、サービスが期待どおりに実行されている場合、設定は有効です。