firewalld基本概念

1、firewalld由d-bus层和core层构成。d-bus层提供api,其它程序(如firewall-cmd、firewall-config、firewall-applet、甚至是你自己编写的程序或守护进程)通过调用api可定义防火墙规则或查询防火墙状态等等。core层为d-bus层提供服务,负责和后端交互。架构图如下:

备注:firewalld提供的firecmd-offline-cmd不调用d-bus层,而是直接调用core层中的IO来修改防火墙规则。

2、firewalld、iptables和nftables关系

在centos7及之前版本中,iptables也提供了类似firewalld的daemon,用户可以选择iptables或firewalld daemon其一。

nftables和iptables负责的应该属于数据包过滤框架。nftables是从linux内核3.13开始出现,旨在替代现存的 {ip,ip6,arp,eb}_tables(本文统称为iptables)。

 3、firewalld zone、network interface、connection关系

firewalld使用了zone和service概念简化了流量管理的概念。zone实际是网络可信等级的划分,预先定了9个(可修改,也可以自己创建额外的zone),通过对网卡(实际上是connection,即网卡配置文件。虽然一个网卡可有多个配置文件,但同时只能有一个活动配置文件,可以在配置文件中使用zone=来定义connection所属zone)切换zone,将网络置于不同的可信等级。在zone中可依据service/port(经常使用)、source等定义防火墙规则。此外,firewalld zone也提供了类似路由器一些功能,如端口转发、ip地址伪装等。

对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:

  • source,也就是源地址
  • interface,接收请求的网卡
  • firewalld.conf中配置的默认zone

这三个的优先级按顺序依次降低,也就是说如果按照source可以找到就不会再按interface去查找,如果前两个都找不到才会使用第三个,也就是firewalld.conf中配置的默认zone。

 

猜你喜欢

转载自www.cnblogs.com/laop520/p/12054956.html
今日推荐