清除防火墙规则,以实际情况为准
iptables -F && iptables -X && iptables -Z
自动生成iptables规则脚本,针对于k8s的nodeport端口需要同时drop容器内端口和映射端口,同时如果k8s master集群是高可用需要3个节点都设置防火墙规则,某个nodeport端口才能被禁止;
#!/bin/bash
# 允许访问的主机列表,可以添加多个,此处举例写了三个
ACCAPT_IPS="100.20.1.35,100.20.1.36,100.20.1.99"
REPORT_FILE='./iptables_rules.sh'
> $REPORT_FILE
# 需要禁止外部访问的端口
PORT_1_LIST=(
80
5672
9002
)
for PORT in ${PORT_1_LIST[@]};do
echo "# $PORT ------" >> $REPORT_FILE
cat <<EOF>> $REPORT_FILE
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport ${PORT} -j DROP
iptables -A FORWARD -s 0.0.0.0/0 -p tcp --dport ${PORT} -j DROP
iptables -I INPUT -s ${ACCAPT_IPS} -p tcp --dport ${PORT} -j ACCEPT
iptables -I FORWARD -s ${ACCAPT_IPS} -p tcp --dport ${PORT} -j ACCEPT
EOF
done
echo "# ==================================" >> $REPORT_FILE
设置开机自启
执行如下命令编辑/etc/rc.local配置开机启动
vi /etc/rc.local
执行如下命令为/etc/rc.local赋予启动权限
chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.local