iptables命令用于创建数据过滤与NAT规则,主流的Linux系统都会默认启用iptables命令。
在iptables命令中设置数据过滤或处理数据包的策略叫做规则
accept:允许通过
reject:拒绝通过,必要时会给出提示
drop:直接丢弃,不给出任何回应
其中reject和drop的操作都是将数据包拒绝,但reject会再回复一条“您的信息我已收到,但被扔掉了”
规则链依据处理数据包的位置不同而进行分类:
input:处理入站的数据包
output:处理出站的数据包
forward:处理转发的数据包
prerouting:在进行路由选择前处理数据包
postrouting:在进行路由选择后处理数据包
iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。
raw表:确定是否对该数据包进行跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确认是否放行该数据包(过滤)
iptables命令太过复杂,在firewalld推出的今天,对于不追求完美的我来说知道命令的部分实例即可
查看已有的规则:
清空已有的规则:
允许所有的ping操作:
iptables -I INPUT -p icmp -j ACCEPT
仅允许来自10.180.108.140/24的用户连接本机的ssh服务
iptables防火墙会按照顺序匹配规则,请一定要保证“允许”规则是在“拒绝”规则的上面。
不允许任何用户访问本机的12345端口
iptables -I INPUT -p tcp --dport 12345 -j REJECT
iptables -I INPUT -p udp --dport 12345 -j REJECT
udp也有端口号哦!!!