2.9. 特定のホストインターフェイス上の NodePort サービスへの外部アクセスをブロック
OVN-Kubernetes は、MicroShift ノードの外部から NodePort サービスにアクセスできるホストインターフェイスを制限しません。次の手順では、特定のホストインターフェイスで NodePort サービスをブロックし、外部アクセスを制限する方法を説明します。
前提条件
- root 権限を持つアカウント。
手順
次のコマンドを実行して、
NODEPORT
変数を Kubernetes NodePort サービスに割り当てられたホストポート番号に変更します。# export NODEPORT=30700
INTERFACE_IP
値を、ブロックするホストインターフェイスの IP アドレスに変更します。以下に例を示します。# export INTERFACE_IP=192.168.150.33
nat
テーブル PREROUTING チェーンに新しいルールを挿入して、宛先ポートと IP アドレスに一致するすべてのパケットをドロップします。以下に例を示します。$ sudo nft -a insert rule ip nat PREROUTING tcp dport $NODEPORT ip daddr $INTERFACE_IP drop
次のコマンドを実行して、新しいルールをリスト表示します。
$ sudo nft -a list chain ip nat PREROUTING table ip nat { chain PREROUTING { # handle 1 type nat hook prerouting priority dstnat; policy accept; tcp dport 30700 ip daddr 192.168.150.33 drop # handle 134 counter packets 108 bytes 18074 jump OVN-KUBE-ETP # handle 116 counter packets 108 bytes 18074 jump OVN-KUBE-EXTERNALIP # handle 114 counter packets 108 bytes 18074 jump OVN-KUBE-NODEPORT # handle 112 } }
注記新しく追加したルールの
handle
番号をメモします。次の手順でhandle
番号を削除する必要があります次のサンプルコマンドを使用してカスタムルールを削除します。
$ sudo nft -a delete rule ip nat PREROUTING handle 134