Linux防火墙原理

本文详细介绍了Linux内核中的Netfilter框架,它提供了数据包过滤、NAT和负载均衡功能,是iptables和firewalld的基础。iptables基于规则链,firewalld基于区域管理,更易用且支持动态更新。数据包通过三表五链的流程进行处理,不同区域对应不同的默认规则。firewalld的区域设置如trusted、public等,提供了更灵活的安全策略管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux系统内核中的一个功能强大的框架Netfilter,为其他内核模块提供数据包过滤、网络地址转换(NAT)和负载均衡的功能。我们常用的iptables和firewalld服务都依赖于Netfilter来过滤数据包,不同之处在于iptables基于“过滤规则链”,firewalld基于区域。

三表五链

三表:

  • filter:对数据包进行过滤
  • nat:地址转换、端口转发
  • mangle:对数据包进行修改

此外,还有raw表,一般用于不让iptables对数据包进行跟踪,以提高性能。优先级:raw>mangle>nat>filter

五链:

  • PREROUTING:路由之前的数据包
  • INPUT:输入数据包
  • FORWARD:转发路由
  • POSTROUTING:路由之后数据包
  • OUTPUT:输出数据包

数据流程: 
1. 数据包进入raw表的PREROUTING链,如果不进行连接跟踪,在此处理。 
2. 进入mangle表的 PREROUTING链,在此可以修改数据包等。 
3. 进入nat表的PREROUTING链,可以在此做目的地址转换,但不要做过滤。 
4. 对数据包进行路由,判断交给本地主机还是转发给其它主机。 
若数据包转发给其他主机:
5. 进入mangle表的FORWARD链,可以对数据包进行修改。 
6. 进入filter表的FORWARD链,对转发的数据包进行过滤。
7. 进入mangle表的POSTROUTING链,可以对数据包进行修改。
8. 进入nat表的POSTROUTING链,进行源地址转换并发出。 
若数据包发给当前主机的: 
5. 进入 mangle 表的 INPUT链,可以对数据包进行修改。 
6. 进入 filter 表的 INPUT链,对流入的数据包进行过滤。 
7. 交给本地主机的应用程序进行处理。 
8. 对数据包进行路由
9. 进入raw表的OUTPUT链,不对本地的数据包连接跟踪处理。  
10. 进入mangle表的OUTPUT链,修改数据包。 
11. 进入nat表的OUTPUT链,可以对防火墙自己发出的数据做网络地址转换。 
12. 进入filter 表的OUTPUT链,可以对本地出去的数据包进行过滤。 
13. 进入mangle表的POSTROUTING链,修改数据包。 
14. 进入nat表的POSTROUTING链,进行源地址转换并发出。 

Firewalld

Firewalld与iptables的区别:

  • iptables基于规则链,firewalld基于zone区域的方式
  • firewalld提供了图形化方式
  • firewalld支持动态更新规则
  • iptables无守护进程,不能算作真正的服务,firewalld存在守护进程
区域默认规则
trusted允许所有的数据包。
home拒绝流入的数据包,除非与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许。
internal等同于home区域
work拒绝流入的数据包,除非与输出流量数据包相关或是ssh,ipp-client与dhcpv6-client服务则允许。
public拒绝流入的数据包,除非与输出流量数据包相关或是ssh,dhcpv6-client服务则允许。
external拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
dmz拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
block拒绝流入的数据包,除非与输出流量数据包相关。
drop拒绝流入的数据包,除非与输出流量数据包相关。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangsh_1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值