关于Firewalld防火墙的基本概念、使用方法和管理规则的详细指南
目录
企业级Firewalld防火墙
firewalld%E5%8C%BA%E5%9F%9F-toc" style="margin-left:40px;">1、firewalld区域
1.1、trusted区域
1.2、home/internal区域
1.3、work区域
1.4、public区域
1.5、external区域
1.6、dmz区域
1.7、block区域
1.8、drop区域
firewalld%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3-toc" style="margin-left:40px;">2、firewalld命令详解
2.1、区域zone相关的命令
2.2、服务管理的命令
2.3、端口管理命令
2.4、其他命令
firewalld%E5%AE%9E%E6%88%98-toc" style="margin-left:40px;">3、firewalld实战
3.1、查看默认区域
3.2、更改默认区域
3.3、向public区域添加服务
3.4、指定IP10.211.55.60/24进入drop区域
3.5、将10.211.55.60/24移除drop区域
3.6、向pubic区域添加服务(以添加端口的方式)
3.7、删除服务、端口
3.8、允许指定ip访问某个端口
企业级Firewalld防火墙
- 动态管理:Firewalld可以在运行时动态更新防火墙规则,而不需要重启服务,这使得防火墙配置更加灵活。
- 区域(Zones):Firewalld引入了区域的概念,每个区域代表一种安全级别,预定义了不同的规则集。常见的区域包括public(默认区域)、trusted(允许所有流量)、drop(丢弃所有流量)等。
- 服务管理:Firewalld允许基于服务来管理防火墙规则,可以轻松允许或拒绝特定服务的流量。
firewalld%E5%8C%BA%E5%9F%9F" style="text-align:justify;">1、firewalld区域
1.1、trusted区域
完全信任区域,允许所有流量通过
1.2、home/internal区域
家庭网络环境,信任级别较高,仅允许ssh数据通过
1.3、work区域
工作网络环境,仅允许ssh,ipp-client,dhcpv6-client数据通过
1.4、public区域
默认区域,用于公共网络环境,仅允许ssh,dhcpv6-client数据通过
1.5、external区域
用于启用伪装的外部网络,特别是路由器仅允许ssh数据通过,通过该区域的数据将会伪装(SNAT/DNAT)
1.6、dmz区域
非军事区,用于公开访问但对内部网络有限制的计算机,仅允许ssh数据通过
1.7、block区域
任何传入的网络数据包都将被阻止。只允许系统发起的传出流量
1.8、drop区域
丢弃所有传入流量,不发送任何响应。
firewalld%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3" style="text-align:justify;">2、firewalld命令详解
2.1、区域zone相关的命令
查看可用区域:firewall-cmd --get-zones
查看默认区域:firewall-cmd --get-default-zone
查看区域配置:firewall-cmd --zone=<zone> --list-all
更改默认区域:firewall-cmd --set-default-zone=home
列出活动区域和分配的网络接口:firewall-cmd --get-active-zones
将网络接口分配给区域:firewall-cmd --zone=home --add-interface=enp1s0
2.2、服务管理的命令
firewal-cmd --add-service=<服务名> --zone=<区域>
一般现在什么区域就设成什么区域
临时添加服务:firewall-cmd --add-service=http --zone=public
永久添加服务:firewall-cmd --add-service=http --zone=public --permanent
firewal-cmd --remove-service=<服务名> --zone=<区域> #删除指定区域的服务名
临时移除服务:firewall-cmd --remove-service=http --zone=public
永久移除服务:firewall-cmd --remove-service=http --zone=public --permanent
2.3、端口管理命令
firewal-cmd --add-port=<端口号/协议> --zone=<区域> #设置指定区域允许该端口的流量
临时添加端口:firewall-cmd --add-port=80/tcp --zone=public
永久添加端口:firewall-cmd --add-port=80/tcp --zone=public --permanent
firewal-cmd --remove-port=<端口号/协议> --zone=<区域> #设置指定区域不再允许该端口的流量
临时移除端口:firewall-cmd --remove-port=80/tcp --zone=public
永久移除端口:firewall-cmd --remove-port=80/tcp --zone=public --permanent
2.4、其他命令
每当进行永久配置更改后,需要重载Firewalld以应用更改:firewall-cmd --reload
查看Firewalld是否处于活动状态:firewall-cmd --state
查看Firewalld服务状态:systemctl status firewalld
启动Firewalld服务:systemctl start firewalld
停止Firewalld服务:systemctl stop firewalld
设置开机自启:systemctl enable firewalld
禁用开机自启:systemctl disable firewalld
firewalld%E5%AE%9E%E6%88%98" style="text-align:justify;">3、firewalld实战
3.1、查看默认区域
firewall-cmd --get-default-zone
[root@iptables ~]# firewall-cmd --get-default-zone
public
3.2、更改默认区域
更改默认区域为trusted
firewall-cmd --set-default-zone=trusted
[root@iptables ~]# firewall-cmd --set-default-zone=trusted
success
[root@iptables ~]# firewall-cmd --reload#刷新配置
success
查询默认区域
[root@iptables ~]# firewall-cmd --get-default-zone
trusted
3.3、向public区域添加服务
允许其他机器通过public区域访问本机httpd服务的流量
firewall-cmd --permanent --add-service=http --zone=public
3.4、指定IP10.211.55.60/24进入drop区域
将10.211.55.60/24地址的机器添加进drop区域(drop区域拒绝所有流量,不会返回回应消息)
firewall-cmd --permanent --add-source=10.211.55.60/24 --zone=drop
[root@iptables ~]# firewall-cmd --permanent --add-source=10.211.55.60/24 --zone=drop
success
[root@iptables ~]# firewall-cmd --reload#刷新配置
success
3.5、将10.211.55.60/24移除drop区域
firewall-cmd --permanent --remove-source=10.211.55.60/24 --zone=drop
[root@iptables ~]# firewall-cmd --permanent --remove-source=10.211.55.60/24 --zone=drop
success
[root@iptables ~]# firewall-cmd --reload#刷新配置
success
3.6、向pubic区域添加服务(以添加端口的方式)
public区域中,允许其他机器访问本机的tcp,80端口流量访问本机
firewall-cmd --permanent --add-port=80/tcp --zone=public
[root@iptables ~]# firewall-cmd --permanent --add-port=80/tcp --zone=public
success
[root@iptables ~]# firewall-cmd --reload#刷新配置
success
3.7、删除服务、端口
publice删除其他机器访问本机http端口的规则
firewall-cmd --permanent --remove-service=http --zone=public
[root@iptables ~]# firewall-cmd --permanent --remove-service=http --zone=public
success
[root@iptables ~]# firewall-cmd --reload#刷新配置
success
3.8、允许指定ip访问某个端口
添加一个永久的富规则(Rich Rule),允许特定 IP 地址通过 TCP 协议访问特定端口。
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.211.55.40" port protocol="tcp" port="6379" accept"
--add-rich-rule 用于添加一个复杂的防火墙规则。
rule family="ipv4" 指定规则适用于 IPv4 协议