2.9. 阻止对特定主机接口上 NodePort 服务的外部访问
OVN-Kubernetes 不限制可以从红帽构建的 MicroShift 节点外部访问 NodePort 服务的主机接口。以下流程解释了如何在特定主机接口上阻止 NodePort 服务并限制外部访问。
先决条件
- 您必须具有具有 root 特权的帐户。
流程
运行以下命令,将
NODEPORT
变量更改为分配给 Kubernetes NodePort 服务的主机端口号:export NODEPORT=30700
# export NODEPORT=30700
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
INTERFACE_IP
值从您要阻止的主机接口更改为 IP 地址。例如:export INTERFACE_IP=192.168.150.33
# export INTERFACE_IP=192.168.150.33
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
nat
表 PREROUTING 链中插入一条新规则,以丢弃与目标端口和 IP 地址匹配的所有数据包。例如:sudo nft -a insert rule ip nat PREROUTING tcp dport $NODEPORT ip daddr $INTERFACE_IP drop
$ sudo nft -a insert rule ip nat PREROUTING tcp dport $NODEPORT ip daddr $INTERFACE_IP drop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令列出新规则:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意请记录下新添加的规则的
handle
号。您需要删除以下步骤中的handle
号。使用以下示例命令删除自定义规则:
sudo nft -a delete rule ip nat PREROUTING handle 134
$ sudo nft -a delete rule ip nat PREROUTING handle 134
Copy to Clipboard Copied! Toggle word wrap Toggle overflow