Leo Zhang
菩提本无树,明镜亦非台!
 

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。

 

表名包括:

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

 

posted on 2022-09-06 09:50  LeoZhanggg  阅读(134)  评论(0编辑  收藏  举报