Linux 包过滤
Linux下的包过滤软件主要是iptables,它位于用户空间,通过命令操作netfilter来实现网络数据包的处理和转发,Netfilter位于内核空间,是真正管理网络数据包的模块,Iptables包括“表(tables)”、“链(chain)”和“规则(rules)”三个层面。
一、iptables的表、链结构
1、规则链:规则的作用是对数据包进行过滤或处理,链的作用是容纳各种防火墙规则,链的分类依据是处理数据包的不同时机。
2、五链:默认包括5种规则链,分别是INPUT(处理入站数据包)、OUTPUT(处理出战数据包)、FORWARD(处理转发数据包)、POSTROUTING(在进行路由选择后处理数据包)和PREROUTING(在进行路由选择前处理数据包)。
3、规则链之间的顺序:入站:prerouting–>input;出站:output->postrouting;转发:prerouting->forward->postrouting。
4、规则链内部各防火墙规则之间的顺序:按顺序依次检查,匹配即停止(log策略例外),若找不到相匹配的规则,则按该链的默认策略处理。
5、规则表:表的作用是容纳各种规则链,表的划分依据是防火墙规则的作用相似。
6、四表:默认包括4个规则表,分别是raw表(确认是否对该数据包进行状态跟踪)、mangle表(为数据包设置标记)、nat表(修改数据包中的源、目标IP地址或端口)和filter表(确定是否放行该数据包)。
7、规则表之间的顺序:raw–>mangle–>nat–>filter。
8、规则表与链的关系:filter表内建有三条链:INPUT、OUTPUT、FORWARD。
二、使用iptables工具
1、iptables安装:通常在Linux发行版中已经预装了iptables,如果没有,可以使用包管理器进行安装,在Debian/Ubuntu系统中,可以使用sudo apt-get install iptables
进行安装。
2、iptables的基本语法:iptables [选项] [链] [规则]
,添加一条规则允许所有来自特定IP的数据包通过,可以使用iptables -A INPUT -s 192.168.1.100 -j ACCEPT
,查看当前规则列表可以使用iptables -L
。
3、添加新的规则:使用-A
选项可以向指定链添加新规则。iptables -A FORWARD -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
表示接受所有新的和已建立的TCP连接,目标端口为80的数据包。
4、查看规则列表:使用iptables -L
可以列出所有链的规则,加上-v
参数可以看到详细信息,如数据包计数等。
5、设置默认策略:使用-P
选项可以为链设置默认策略。iptables -P INPUT DROP
表示丢弃所有进入INPUT链的数据包。
三、规则的匹配条件
1、匹配类型:通用匹配、隐含匹配和显式匹配。
2、常见的通用匹配条件:协议匹配(-p)、地址匹配(-s/-d)、接口匹配(-i/-o)。
3、常用的隐含匹配条件:端口匹配(–sport/–dport)、TCP匹配(–tcp-flags)、ICMP匹配(–icmp-type)。
4、常用的显式匹配:多端口匹配(-m multiport –sport)。
四、iptables命令行参数解说
1、-t:指定要操纵的表,默认条件下是filter表。
2、-A:向链中添加规则条目。
3、-D:从链中删除规则条目。
4、-i:向链中插入规则条目。
5、-R:替换链中的规则条目。
6、-L:显示链中已有的规则条目。
7、-F:清空链中选择的规则条目,如果后面不跟参数代表所有规则。
8、-N:创建新的用户自定义链。
9、-X:删除用户定义链,不过必须是这个链里面的规则都被清空了才能删除。
10、-E:为用户自定义的链重命名。
11、-P:定义链中规则的默认目标。
12、-p:指定要匹配的数据包协议类型。
13、-s:指定要匹配的数据包源IP地址。
14、-j:指定指定的目标执行规则,如accept接收数据包,DROP丢弃数据包,REDIRECT重定向,SNAT源地址转换,DNAT目标地址转换,还有MASQUERADE,LOG等动作。
15、-i:指定数据包进入本机的网络接口。
16、-o:指定数据包要离开本机所使用的网络接口。
五、FAQs
1、什么是iptables?:Iptables是一个配置Linux内核防火墙的命令行工具,用于设置、维护和检查IP数据包过滤规则,它提供了一种机制来制定各种规则以决定不同数据包的命运,这些规则可以在数据包进入、离开或通过Linux系统时应用,Iptables功能强大且灵活,支持多种匹配条件和动作,可以满足复杂的网络需求。
2、如何更改iptables规则的顺序?:Iptables规则的顺序非常重要,因为数据包会根据规则的顺序依次进行匹配,如果需要更改规则的顺序,可以使用-R
选项替换现有规则,或者使用-D
选项删除规则后再用-A
或-I
重新添加,调整规则顺序时要小心,以免意外阻止合法流量或允许恶意流量,建议在修改规则前备份当前的iptables配置,以便出现问题时可以恢复。
Linux下的包过滤主要通过iptables实现,它提供了丰富的功能和灵活性,适用于各种网络环境和安全需求,掌握iptables的使用对于保障网络安全至关重要。
小伙伴们,上文介绍了“linux 包过滤”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1298729.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复