Citrix ADC ingress controller

IP アドレスの許可リストまたはブロックリスト

Allowlisting IP addresses では、ユーザーがドメインにアクセスできる、信頼できる IP アドレスまたは IP アドレス範囲の一覧を作成できます。これはセキュリティ機能で、信頼できるユーザーのみにアクセスを制限および制御するためによく使用されます。

Blocklisting IP addresses は基本的なアクセス制御メカニズムです。ブロックリストに登録した IP アドレスを使用してドメインにアクセスするユーザーのアクセスを拒否します。

Citrix が提供する Rewrite and Responder CRD を使用すると、データセット、パッチセット、および文字列マップを使用して広範な書き換えポリシーとレスポンダーポリシーを定義できます。また、Ingress Citrix ADC の統計情報の監査ログを有効にすることもできます。

書き換えポリシーまたはレスポンダーポリシーを使用して、ユーザーがドメインにアクセスできる IP アドレス/CIDR を許可リストまたはブロックリストに登録できます。

次のセクションでは、書き換えポリシーまたはレスポンダーポリシーを使用して IP アドレス/CIDR を許可リストまたはブロックリストに登録するさまざまな方法について説明します。

許可リスト IP アドレス

レスポンダーポリシーを使用すると、IP アドレスを許可リストに登録し、許可リスト IP アドレスとは異なる IP アドレスを使用しているクライアントからの要求をサイレントにドロップできます。

次の書き換えポリシー設定を使用して、 allowlist-ip.yaml という名前のファイルを作成します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: allowlistip
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        drop:
        respond-criteria: '!client.ip.src.TYPECAST_text_t.equals_any("allowlistip")'
        comment: 'Allowlist certain IP addresses'
  patset:
    - name: allowlistip
      values:
        - '10.xxx.170.xx'
        - '10.xxx.16.xx'
<!--NeedCopy-->

IP アドレスをリストとして指定することもできます。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: allowlistip
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        drop:
        respond-criteria: '!client.ip.src.TYPECAST_text_t.equals_any("allowlistip")'
        comment: 'Allowlist certain IP addresses'
  patset:
    - name: allowlistip
      values: [ '10.xxx.170.xx', '10.xxx.16.xx' ]
<!--NeedCopy-->

次に、以下のコマンドを使用して YAML ファイル (allowlist-ip.yaml) をデプロイします。

kubectl create -f allowlist-ip.yaml

IP アドレスを許可リストに登録し、許可リストにないクライアントからの要求に対して 403 応答を送信する

レスポンダーポリシーを使用すると、IP アドレスのリストを許可リストに登録し、許可リストに登録された IP アドレスとは異なる IP アドレスを使用するクライアントからの要求にHTTP/1.1 403 Forbidden応答を送信できます。

次の書き換えポリシー設定を使用して、 allowlist-ip-403.yaml という名前のファイルを作成します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: allowlistip
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        respondwith:
          http-payload-string: '"HTTP/1.1 403 Forbidden\r\n\r\n" + "Client: " + CLIENT.IP.SRC + " is not authorized to access URL:" + HTTP.REQ.URL.HTTP_URL_SAFE +"\n"'
        respond-criteria: '!client.ip.src.TYPECAST_text_t.equals_any("allowlistip")'
        comment: 'Allowlist a list of IP addresses'
  patset:
    - name: allowlistip
      values: [ '10.xxx.170.xx',  '10.xxx.16.xx' ]
<!--NeedCopy-->

次に、以下のコマンドを使用して YAML ファイル (allowlist-ip-403.yaml) をデプロイします。

kubectl create -f allowlist-ip-403.yaml

CIDR を許可リストに登録する

レスポンダーポリシーを使用して CIDR を許可リストに登録できます。CIDR を許可リストに登録するレスポンダーポリシー設定の例を次に示します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: blocklistips1
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        respondwith:
          http-payload-string: '"HTTP/1.1 403 Forbidden\r\n\r\n" + "Client: " + CLIENT.IP.SRC + " is not authorized to access URL:" + HTTP.REQ.URL.HTTP_URL_SAFE +"\n"'
        respond-criteria: '!client.ip.src.IN_SUBNET(10.xxx.170.xx/24)'
        comment: 'Allowlist certain IPs'
<!--NeedCopy-->

ブロックリスト IP アドレス

レスポンダーポリシーを使用すると、IP アドレスをブロックリストに登録し、ブロックリストに登録された IP アドレスを使用しているクライアントからの要求をサイレントにドロップできます。

次のレスポンダーポリシー構成でblocklist-ip.yamlという名前のファイルを作成します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: blocklistips
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        respondwith:
        drop:
        respond-criteria: 'client.ip.src.TYPECAST_text_t.equals_any("blocklistips")'
        comment: 'Blocklist certain IPS'

  patset:
    - name: blocklistips
      values:
        - '10.xxx.170.xx'
        - '10.xxx.16.xx'
<!--NeedCopy-->

次に、以下のコマンドを使用して YAML ファイル (blocklist-ip.yaml) をデプロイします。

kubectl create -f blocklist-ip.yaml

CIDR をブロックリストに登録する

レスポンダーポリシーを使用して CIDR をブロックリストに登録できます。CIDR をブロックリストに登録するレスポンダーポリシー設定の例を次に示します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: blocklistips1
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        respondwith:
          http-payload-string: '"HTTP/1.1 403 Forbidden\r\n\r\n" + "Client: " + CLIENT.IP.SRC + " is not authorized to access URL:" + HTTP.REQ.URL.HTTP_URL_SAFE +"\n"'
        respond-criteria: 'client.ip.src.IN_SUBNET(10.xxx.170.xx/24)'
        comment: 'Blocklist certain IPs'
<!--NeedCopy-->

CIDR とブロックリスト IP アドレスの許可リスト

レスポンダーポリシーを使用して、CIDR を許可リストに登録したり、IP アドレスをブロックリストに登録したりすることもできます。レスポンダーポリシー設定の例を次に示します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: allowlistsub
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        drop:
        respond-criteria: 'client.ip.src.TYPECAST_text_t.equals_any("blocklistips") || !client.ip.src.IN_SUBNET(10.xxx.170.xx/24)'
        comment: 'Allowlist a subnet and blocklist few IP's'

  patset:
    - name: blocklistips
      values:
        - '10.xxx.170.xx'
<!--NeedCopy-->

CIDR と許可リスト IP アドレスのブロックリスト

レスポンダーポリシーを使用して、CIDR をブロックリストに登録したり、IP アドレスを許可リストに登録したりすることもできます。レスポンダーポリシー設定の例を次に示します。

apiVersion: citrix.com/v1
kind: rewritepolicy
metadata:
  name: blocklistips1
spec:
  responder-policies:
    - servicenames:
        - frontend
      responder-policy:
        drop:
        respond-criteria: 'client.ip.src.IN_SUBNET(10.xxx.170.xx/24) && !client.ip.src.TYPECAST_text_t.equals_any("allowlistips")'
        comment: 'Blocklist a subnet and allowlist few IP's'

  patset:
    - name: allowlistips
      values:
        - '10.xxx.170.xx'
        - '10.xxx.16.xx'
<!--NeedCopy-->