firewalld介绍

(1).什么是firewalld?

  firewalld是提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。

(2).firewalld与iptables之间的关系

  firewalld 提供了一个daemon 和service,还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables作为防火墙规则管理入口。firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

(3).什么是区域(zone)?

  在firewalld中将过滤规则集合称之为zone。一个zone就是一套过滤规则,数据包必须要经过某个zone才能入站或出站。firewalld将网卡对应到不同的区域(zone),zone 默认共有9个,分别为block、dmz、drop external、home、internal、public、trusted、work。不同的区域之间的差异是其对待数据包的默认行为不同,根据区域名字我们可以很直观的知道该区域的特征,在CentOS7系统中,默认区域被设置为public。

(4).区域(zone)说明

  drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。

  block(限制):任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。

  public(公共):在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。

  external(外部):特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算机,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。

  dmz(非军事区):用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。

  work(工作):用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅接收经过选择的连接。

  home(家庭):用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅接收经过选择的连接。

  internal(内部):用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅接受经过选择的连接。

  trusted(信任):可接受所有的网络连接。

  指定以上9个区域中的一个区域为默认区域。当接口连接加入了 NetworkManager,它们就被分配为默认区域。安装时,firewalld 里的默认区域为public。

(5).预设服务配置文件

  在/usr/lib/firewalld/services/目录下存放了许多.xml结尾的配置文件,每个文件对应一个服务,例如ssh.xml。这些配置文件中存放了服务的短描述、长描述、端口号及端口协议。

[root@youxi1 ~]# cat /usr/lib/firewalld/services/ssh.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

  当默认提供的服务不够用或者需要自定义某项服务的端口时,我们需要将 service 配置文件放置在 /etc/firewalld/services/ 目录中。

  /etc/firewalld/              存放修改过的配置(优先查找,找不到再找默认的配置)

  /usr/lib/firewalld/         默认的配置

  例如:将ssh服务的端口改为23591,就需要将/usr/libfirewalld/ssh.xml文件拷贝到/etc/firewalld/services/目录下,再就该文件内的端口号。

  service配置文件可以更加高效的管理端口,每一个service配置文件都对应了一个网络应用(可内网可外网)。

(6).firewalld的两种重启

  firewall-cmd --reload  无需断开连接

  firewall-cmd --complete-reload  需要断开连接,类似重启服务

 

posted @ 2019-06-02 19:12  苦逼运维  阅读(1143)  评论(0编辑  收藏  举报