iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。
-t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -I:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:创建新的用户自定义规则链; -P:定义规则链中的默认目标; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源IP地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口; -m: 匹配扩展模块; -h:显示帮助信息。
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。
动作包括:
ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。 LOG:日志记录。
安装iptables-services并启动服务,保存防火墙规则。
yum -y install iptables-services systemctl start iptables.service systemctl enable iptables.service service iptables save 防火墙规则存放文件:/etc/sysconfig/iptables
实例:K8S添加iptables防火墙策略
#a) 查看当前iptables规则 iptables -L -n --line-number #b) 插入禁止访问的端口规则并允许本机访问 iptables -I INPUT -p tcp -m multiport --dports 6443,2379:2381,10250:10259 -j DROP iptables -I INPUT -p tcp -s 127.0.0.1 -m multiport --dports 6443,2379:2381,10250:10259 -j ACCEPT iptables -I INPUT -p tcp -s `hostname -i` -m multiport --dports 6443,2379:2381,10250:10259 -j ACCEPT #c) 对特定IP解除6443访问限制(Flannel和工作节点) iptables -I INPUT -p tcp -s 10.244.0.0/16 --dport 6443 -j ACCEPT iptables -I INPUT -p tcp -s 10.3.61.189,10.3.61.192 --dport 6443 -j ACCEPT #d) 开机自动添加防火墙规则(k8s_iptables.sh为上述命令) chmod +x /etc/rc.d/rc.local echo ". /etc/kubernetes/k8s_iptables.sh" >>/etc/rc.d/rc.local
常见的模块拓展-m iprange 、-m multiport
1)指定-m multiport就可以使用–dports、–sports
标准的–dport与–sport使用方式: 80、80:90、:80、90:
扩展的–dports与–sports使用方式:以上组合,使用冒号来分离。
iptables -I INPUT -p tcp -m multiport --dports 6443,2379:2380,10250:10259 -j DROP
2)指定-m iprange就可以使用–src-range 、–dst-range
标准的-s 使用方式:192.168.1.1、192.168.1.0/24、192.168.1.2,10.1.1.1、(192.168.1.1,10.1.1.0/24)
扩展的–src-range使用方式:192.168.1.5-192.168.1.6
iptables -A INPUT -p tcp --dport 6443 -m iprange --src-range 10.3.61.189-10.3.61.192 -j ACCEPT
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/287946.html