Firewalld 防火墙配置

Firewalld 防火墙配置

1. Firewalld 概述

firewalld 是一个动态防火墙管理器,作为 Systemd 管理的防火墙前端工具,它为 Linux 操作系统提供了一种方便且灵活的方式来管理网络访问控制。

在传统的 iptables 防火墙中,管理员需要手动配置防火墙规则,并将规则保存到静态的配置文件中。这种方式相对复杂且不够动态,特别是在面对频繁变动的网络环境时。而 firewalld 提供了一种更高级、更易用的方式来管理防火墙规则。

firewalld 使用基于 “区域”(Zone) 的概念来管理防火墙策略。每个区域都对应一组特定的规则,用于定义该区域内允许和禁止的网络访问。

firewalld 还可以动态更新防火墙规则,而无需重启防火墙服务。这意味着管理员可以在运行时添加、删除或修改规则,使网络访问控制更加灵活和实时。此外,firewalld 还支持连接跟踪,可以自动管理由于网络连接状态的变化而需要调整的规则。

除了基本的端口过滤、包转发和网络地址转换等功能外,firewalld 还提供了高级功能,如源地址验证、负载均衡、IPset、Rich Rules 等。管理员可以使用这些功能来创建更复杂、更精细的防火墙策略。

注意:firewalld不要与iptables混用,如果要使用firewalld就将iptables规则清空。

2. 区域名称及策略规则

firewalld九个区域

  • trusted(信任区域):允许所有的数据包

  • home(家庭区域):拒绝流入的流量,除非与流出的流量相关,而如果是与ssh,mdns,ipp-client,amba-client与dhcp-client服务相关流量,则是允许通过。

  • internal(内部区域):默认值时与homel区域相同。

  • work(工作区域):拒绝流入的流量,除非与流出的流量相关,而如果是与ssh,ipp-client与dhcpv6-client服务相关流量,则是允许通过。

  • public(公共区域):拒绝流入的流量,除非与流出的流量相关;而如果是与ssh或dhcpv6-client服务相关流量,则允许通过。

  • external(外部区域):拒绝流入的流量,除非与流出的流量相关;而如果与ssh服务相关流量,则允许通过。

  • dmz(隔离区域也称为非军事区域):拒绝流入的流量,除非与流出的流量相关;而如果与ssh服务相关流量,则允许通过。

  • block(限制区域):拒绝流入的流量,除非与流出的流量相关。

  • drop(丢弃区域):拒绝流入的流量,除非与流出的流量相关。

3. Firewalld 配置方法

使用Firewalld命令行工具

firewalld-cmd

使用Firewalld图形工具

firewalld-config

4. Firewalld 参数和命令

参数作用
-get-default-zone查询默认区域
-set-default-zone=区域名称设置默认区域,使其永久生效
–get-zones显示可用的区域
–get-active-zones显示当前正在使用的区域以及网卡的名称
–add-source=ip将源自此的IP或子网的流量导向指定的区域
–remove-source=ip不再将源自此的IP或子网的流量导向指定的区域
–add-interface=网卡名称将源自此的网卡的流量导向指定的区域
–change-interface=网卡名称将某个网卡与区域进行关联
–list-all显示当前区域的网卡配置参数,资源,端口及服务信息
–list-all-zones显示所有区域的网卡配置参数,资源,端口及服务信息
–add-service=服务名称设置默认区域允许该服务的流量
–add-port=端口协议设置默认区域允许该端口的流量
–remove-service=服务名称不再设置默认区域允许该服务的流量
–remove-port=端口协议不再设置默认区域允许该端口的流量
–reload让永久生效的配置规则立即生效,并覆盖当前的配置规则
–panic-on开启应急模式
–panic-off关闭应急模式
–query-masquerade检查是否允许伪装IP
–add-masquerade允许防火墙伪装IP
–remove-masquerade禁止防火墙伪装IPs

5. Firewalld 两种模式

运行时模式 Runtime

  • 配置后立即生效,重启后失效

永久生效模式 permanent

  • 当前不生效,重启后生效

6. Firewalld 使用

查看当前使用的区域

firewall-cmd --get-default-zone

image-20230910180729382

显示可用的区域

firewall-cmd --get-zones

image-20230910180818592

显示当前正在使用的区域以及网卡的名称

firewall-cmd --get-active-zones

image-20230910181942660

查看指定网卡所在的区域

firewall-cmd --get-zone-of-interface=ens224

image-20230910185100966

显示当前区域的网卡配置参数,资源,端口及服务信息

firewall-cmd --list-all

image-20230910182723070

显示所有区域的网卡配置参数,资源,端口及服务信息

firewall-cmd --list-all-zones

image-20230910182817082

修改当前网卡所在的区域,并永久生效

firewall-cmd --permanent --zone=external --change-interface=ens224

image-20230910192906185

重启服务器,查看网卡所在区域

firewall-cmd --get-zone-of-interface=ens224

image-20230910192959119

开启应急模式

firewall-cmd --panic-on

image-20230910193645411

开启后ssh服务就无法使用了,因为应急模式拦截一切流量。

关闭应急模式

firewall-cmd --panic-off

image-20230910193943460

关闭后SSH即可正常连接

image-20230910194011817

因为我们现在的处于public区域,所以SSH的流量可以进入。

image-20230910194414184

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值