支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
支持IPV4、IPV6防火墙设置以及以太网桥
支持服务或应用程序直接添加防火墙规则接口
拥有两种配置模式
1、运行时配置
2、永久配置
Firewalld | iptables | |
---|---|---|
配置文件 | /usr/lib/firewalld/、/etc/firewalld/ | /etc/sysconfig/iptables |
对规则的修改 | 不需要全部刷新策略,不丢失现行连接 | 需要全部刷新策略,丢失连接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
3.2 Firewalld 数据处理流程
下面就带大家详细了解Firewalld图形工具的详细配置:
firewalld工具的“服务”、“服务”选项卡中有大量的子选项:
1、启动firewalld
[root@localhost ~]# systemctl start firewalld
2、设置firewalld为开机自启动
[root@localhost ~]# systemctl enable firewalld
3、查看firewalld运行状态(2种)
[root@localhost ~]# systemctl status firewalld
[root@localhost ~]# firewall-cmd --state
4、停止firewalld
[root@localhost ~]# systemctl stop firewalld
5、设置firewall开机不自启动
[root@localhost ~]# systemctl disable firewalld
6、显示预定义区域
[root@localhost ~]# firewall-cmd --get-zones
7、显示预定义的服务
[root@localhost ~]# firewall-cmd --get-service
8、显示预定义的ICMP类型
[root@localhost ~]# firewall-cmd --get-icmptypes
9、显示网络连接或接口的默认区域
[root@localhost ~]# firewall-cmd --get-default-zone
10、设置网络连接或接口的默认区域(以work区域举例,下同)
[root@localhost ~]# firewall-cmd --set-default-zone=work
11、显示已激活的所有区域
[root@localhost ~]# firewall-cmd --get-active-zones
12、显示指定接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
13、为指定接口绑定区域
[root@localhost ~]# firewall-cmd --zone=work --add-interface=ens33
14、为指定的区域更改绑定的网络接口
[root@localhost ~]# firewall-cmd --zone=work --change-interface=ens33
15、为指定的区域删除绑定的网络接口
[root@localhost ~]# firewall-cmd --zone=work --remove-interface=ens33
16、显示所有指定区域的所有规则
[root@localhost ~]# firewall-cmd --zone=work --list-all
ps:如果不加--zone=work则仅显示默认区域:
[root@localhost ~]# firewall-cmd --list-all
17、显示指定区域内允许访问的所有服务
[root@localhost ~]# firewall-cmd --zone=work --list-service
18、为指定区域设置允许访问的某项服务
[root@localhost ~]# firewall-cmd --zone=work --add-service=http
19、删除指定区域已设置的允许访问的某项服务
[root@localhost ~]# firewall-cmd --zone=work --remove-service=http
20、显示指定区域内允许访问的所有端口号
[root@localhost ~]# firewall-cmd --zone=work --list-ports
21、为指定区域设置允许访问的某个/某段端口号(包括协议名)
[root@localhost ~]# firewall-cmd --zone=work --add-port=80/tcp
22、删除指定区域已设置的允许访问的端口号(包括协议名)
[root@localhost ~]# firewall-cmd --zone=work --remove-port=80/tcp
23、显示指定区域内拒绝访问的所有 ICMP 类型
[root@localhost ~]# firewall-cmd --zone=work --list-icmp-blocks
24、为指定区域设置拒绝访问的某项 ICMP 类型(请求类型)
[root@localhost ~]# firewall-cmd --zone=work --add-icmp-block=echo-request
25、删除指定区域已设置的拒绝访问的某项 ICMP 类
[root@localhost ~]# firewall-cmd --zone=work --remove-port=69/tcp
ps:如果忽略--zone=work,则表示对默认区域操作
例:
[root@localhost ~]# firewall-cmd --permanent --zone=work --add-port=443/tcp
需求:
分析:
首先,想实现该需求我们要分别对源IP为192.168.50.132的主机及其他的各类主机建立防火墙规则,所以需要设置两个区域,我这里为work与public区域,work区域中的规则针对客户机,而public区域中的规则针对所有其他主机,有了配置思路后下面进行试验:
实验步骤:
1、将两台虚拟机分别重命名为“server“(服务器)与“client”(PC)
可以ping通
在ICMP过滤器中勾选“echo-reply”与“echo-request”两项
可以连接
7、在服务器上安装httpd并开启服务,在“服务”中将“http”服务勾选上
成功!
9、针对客户机的work区域已经设置完成,下面设置public区域
在“服务中将”ssh“取消勾选,将http进行勾选
在ICMP过滤器中勾选“echo-reply”与“echo-request”两项
10、设置完成够我们才测试一下,将客户机更换一个临时IP
[root@client ~]# ifconfig ens33 192.168.50.136
均失败,实验成功!