1、查看当前火墙服务,开启firewalld

说明:本次文章是接着上一篇iptables所写,需要切换服务,若用户未切换过服务,查看火墙状态时为firewall running,则无需切换。

<1> 关闭iptables服务:systemctl stop iptables systemctl disable iptables systemctl mask iptables

<2> 开启firewalld服务:systemctl unmask firewalld systemctl able --now firewalld

 

火墙管理のfirewalld
图 1 切换火墙服务

【注】这里使用mask对服务进行冻结,是为了防止在开机启动时,有与之相依赖的程序将其启动。

2、firewalld的域及域的管理

2.1 域的说明:

iptables是通过链对数据进行管理,而firewalld则是将这些策略集成在一起,组成一些域,通过设置firewall的域,对数据进行管理。其设定的域如下:

trusted:接受所有的网络连接;

home:家庭网络,允许的服务:ssh mdns ipp-client samba-client dhcp-client;

work:工作网络,允许的服务: ssh ipp-client dhcp-client;

public:公共网络,允许的服务:  ssh dhcp-client;

dmz:军用网络,允许的服务:  ssh;

block:拒绝所有访问;

internal:内部网络,允许的服务:ssh mdns ipp-client samba-client dhcp-client

external:外部网络,ipv4网络地址伪装转发,允许的服务: sshd

2.2 域的管理:

2.2.1 查看所有域:firewall-cmd --get-zones;

2.2.2 查看当前运行的域:firewall-cmd --get-active-zones;

2.2.3 查看默认的域:firewall-cmd --get-default-zone;

2.2.4 设置默认的域:firewal-cmd --set-default-zone=block;

2.2.5 查看指定的域:firewall-cmd --list-all --zone=work;

火墙管理のfirewalld
图 2 域的操作

当设置默认的域为block时,拒绝所有数据访问,在另一台主机进行测试:

测试结果可以看到所有的数据包都被拒绝。

火墙管理のfirewalld
图 3 测试结果

3、firewalld的数据存储

3.1 设置存储目录:/etc/firewalld

该目录主要存贮firewall的主配置文件:firewalld.conf;默认域的管理文件:zones;

火墙管理のfirewalld
图 4 firewall 主配置文件

3.2 模块目录存储:/lib/firewalld

火墙管理のfirewalld
图 5 模块存储

 其中:zones存储的是每个域的信息,services存储的是可识别服务信息,例如ssh的配置。

4、firewalld的管理命令

查看火墙状态:firewall-cmd --stat;

重新加载配置文件:firewall-cmd --reload;

查看火墙默认策略:firewall-cmd --list-all;

查看 火墙的支持的所有服务:firewall-cmd --get-service;

永久添加服务:firewall-cmd --permanent --add-service=***;

永久删除服务:firewall-cmd --permanent --remove-service=***;

指定数据访问来源以及域:firewall-cmd --permanent --add-source=192.168.1.0/24 --zone=block;

删除指定域中的数据来源:firewall-cmd --permanent --remove-source=192.168.1.0/24 --zone=block;

添加指定域的网络接口:firewall-cmd --permanent --add-interface=ens224 --zone=public;

删除指定域的网络接口:firewall-cmd --permanent --remove-interface=ens224 --zone=public;

更改网络接口到指定的域:firewall-cmd --permanent --change-interface=ens224 --zone=block;

全部终止并刷新:firewall-cmd --complete-reload。

火墙管理のfirewalld
图 6 状态列出

 

火墙管理のfirewalld
图 7 添加服务

 

火墙管理のfirewalld
图 8 服务设定操作
火墙管理のfirewalld
图 9 设定指定域

 

火墙管理のfirewalld
图 10 查看域的结果

 

火墙管理のfirewalld
图 11 域的结果

【注】其中的permanent会更改配置文件,使之永久生效。

5、firewalld的高级管理篇

虽然firewalld服务将策略都进行的封装,但是其底层任然是iptables的服务方式,所以在火墙中我们同样可添加相应的策略。

查看高级规则列表:firewall-cmd --direct --get-all-rules;

添加策略:firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22  -j ACCEPT;

火墙管理のfirewalld
图 12 策略修改

【注】这里的语言规则和iptables是相同的,不再进行过多的赘述。

6、firewalld中的NAT转换

路由上的火墙,在当今的网络编码时代中,同样是十分重要的,那如何使路由在转发时不受到火墙的影响,该如何排至配置其策略呢?请往下看:

6.1firewall的SNAT

           firewall-cmd --permanent --add-masquerade

火墙管理のfirewalld
图 13 开启SNAT功能

6.2 firewall的DNAT

          firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

火墙管理のfirewalld
图  14 打开转发端口

对火墙进行相应的操作后,均要进行刷新,使策略生效。

对上述两个结果测定,并分析:192.168.1.200连接172主机---->路由进行转发---->经过172.25.25.100的22端口---->地址转回192.168.1.200

火墙管理のfirewalld
图 15 结果测定

 

相关文章: