4.5. 为集群配置出口防火墙和网络策略审计
作为集群管理员,您可以自定义集群的审计日志。
先决条件
-
安装 OpenShift CLI(
oc)。 -
使用具有
cluster-admin权限的用户登陆到集群。
流程
要自定义审计日志配置,请输入以下命令:
oc edit network.operator.openshift.io/cluster
$ oc edit network.operator.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 提示您还可以自定义并应用以下 YAML 来配置审计日志记录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要创建带有网络策略的命名空间,请完成以下步骤:
创建命名空间进行验证:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功输出使用网络策略和创建的状态列出命名空间。
为命名空间创建网络策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
为
default命名空间中的源流量创建 pod:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
verify-audit-logging命名空间中创建两个 pod:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功输出会列出两个 pod,如
pod/client和pod/server,以及创建的状态。要生成流量并生成网络策略审计日志条目,请完成以下步骤:
在
verify-audit-logging命名空间中获取名为server的 pod 的 IP 地址:POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')$ POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
default命名空间中名为client的 pod 中 ping 之前命令中的 IP 地址,并确认所有数据包都已丢弃:oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n default -- /bin/ping -c 2 $POD_IPCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041msCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
verify-audit-logging命名空间中的客户端 pod 中,pingPOD_IP shell环境变量中存储的 IP 地址,并确认系统允许所有数据包。oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IPCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
显示网络策略审计日志中的最新条目:
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow