Linux防火墙管理工具之iptables

iptables命令用于创建数据过滤与NAT规则,主流的Linux系统都会默认启用iptables命令。

在iptables命令中设置数据过滤或处理数据包的策略叫做规则

accept:允许通过

reject:拒绝通过,必要时会给出提示

drop:直接丢弃,不给出任何回应

其中reject和drop的操作都是将数据包拒绝,但reject会再回复一条“您的信息我已收到,但被扔掉了”

 

规则链依据处理数据包的位置不同而进行分类:

input:处理入站的数据包

output:处理出站的数据包

forward:处理转发的数据包

prerouting:在进行路由选择前处理数据包

postrouting:在进行路由选择后处理数据包

iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。

raw表:确定是否对该数据包进行跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源、目标IP地址或端口

filter表:确认是否放行该数据包(过滤)

Linux防火墙管理工具之iptables

iptables命令太过复杂,在firewalld推出的今天,对于不追求完美的我来说知道命令的部分实例即可

查看已有的规则:

Linux防火墙管理工具之iptables

清空已有的规则:

Linux防火墙管理工具之iptables

允许所有的ping操作:

iptables -I INPUT -p icmp -j ACCEPT

Linux防火墙管理工具之iptables

仅允许来自10.180.108.140/24的用户连接本机的ssh服务

iptables防火墙会按照顺序匹配规则,请一定要保证“允许”规则是在“拒绝”规则的上面。

Linux防火墙管理工具之iptables

不允许任何用户访问本机的12345端口

iptables -I INPUT -p tcp --dport 12345 -j REJECT

iptables -I INPUT -p udp --dport 12345 -j REJECT

udp也有端口号哦!!!