Firewalld——字符管理工具

防火墙进程操作

[root@Server /]# systemctl 选项 firewalld
选项:start stop restart status

防火墙管理操作
firewall-cmd命令
支持全部防火墙特性
对于状态和查询模式,命令只返回状态,没有其他输出

--permanent参数:携带该参数表示永久配置,否则表示运行时配置
[--zone=<zone>]选项:不携带此选项表示针对默认区域操作,否则针对指定区域操作

查询Firewalld状态

重新加载Firewalld的配置

firewall-cmd-reload
firewall-cmd --complete-roload
状态信息将会丢失,多用于处理防火墙出现问题时
systemctl restart firewalld

获取预定义信息

Firewalld区域操作命令
显示网络连接或接口的默认区域

firewall-cmd --get-default-zone

设置网络连接或接口的默认区域为internal

firewall-cmd --set-default-zone=internal

显示已激活的所有区域

firewall-cmd --get-active-zones
激活的条件:区域至少关联一个接口或一个源地址/网段

显示ens33接口绑定的区域

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

为ens33接口绑定work区域

firewall-cmd --zone=work --add-interface=ens33

为work区域更改绑定的网络接口ens33

firewall-cmd --zone=work --change-interface=ens33

为work区域删除绑定的网络接口ens33

firewall-cmd --zone=work --remove-interface=ens33

查询work区域中是否包含接口ens33

firewall-cmd --zone=work --query-interface=ens33

显示区域及其规则
显示所有区域及其规则

firewall-cmd --zone=internal --list-all

显示默认区域的所有规则

firewall-cmd --list-all

Firewalld服务操作命令
显示internal区域内允许访问的所有服务

firewall-cmd --zone=internal --list-service

为public区域设置允许访问SMTP服务

firewall-cmd --zone=public --add-service=smtp

删除internal区域中的SSH服务

firewall-cmd --zone=internal --remove-service=ssh

查询internal区域中是否启用了SSH服务

firewall-cmd --zone=internal --query-service=ssh

Firewalld端口操作命令
显示internal区域内允许访问的所有端口好

firewall-cmd --zone=internal --list-ports

启用internal区域22端口的TCP协议组合

firewall-cmd --zone=internal --add-port=22/tcp --timeout=5m
--timeout=5m:表示5分钟后删除该端口,多用于测试目的

禁用internal区域22端口的TCP协议组合

firewall-cmd --zone=internal --remove-port=22/tcp

查询internal区域中是否启用了22端口和TCP协议组合

firewall-cmd --zone=internal --query-port=22/tcp

Firewalld阻塞ICMP操作命令
显示work区域内阻塞的所有ICMP类型

firewall-cmd --zone=work --list-icmp-blocks

为work区域设置阻塞echo-reply类型的ICMP

firewall-cmd --zone=work --add-icmp-block=echo-reply

删除work区域已阻塞的echo-reply类型的ICMP

firewall-cmd --zone=work --remove-icmp-block=echo-reply

查询work区域的echo-request类型的ICMP是否阻塞

firewall-cmd --zone=work --query-icmp-block=echo-request
### 如何检查 RedHat 7 中防火墙是否已永久关闭 在 Red Hat Enterprise Linux 7 (RHEL 7) 系统中,可以通过 `systemctl` 和其他相关工具来确认防火墙的状态以及其是否被设置为永久关闭。以下是具体方法: #### 使用 systemctl 检查防火墙状态 可以运行以下命令查看当前防火墙服务 (`firewalld`) 的启用或禁用情况: ```bash systemctl status firewalld ``` 如果显示 `Active: inactive (dead)`,则表示防火墙目前处于停止状态[^2]。 #### 检查开机自启状态 为了验证防火墙是否已被配置为永久关闭(即不会在系统重启后自动启动),可执行以下命令: ```bash systemctl is-enabled firewalld ``` - 如果返回值为 `disabled`,说明该服务已经被设为不随系统一起启动,也就是实现了所谓的“永久关闭”[^3]。 - 若返回的是 `enabled` 或者其他任何不同于 `disabled` 的字符串,则表明它仍会在下次引导时激活。 #### 备选方式:通过 chkconfig 工具检测 尽管 RHEL 7 主要推荐使用 systemd 来管理服务生命周期,但也可以借助传统工具 `chkconfig` 进一步核实: ```bash chkconfig --list | grep firewalld ``` 当看到类似下面的结果时,意味着防火墙确实已经完全停用了——注意这里的 “off”,代表各运行级别下均未开启此项功能[^1]: ``` firewalld 0:off 1:off 2:off 3:off 4:off 5:off 6:off ``` 综上所述,结合以上两种途径即可全面了解并判断出 redhat 7 上的防火墙是否成功实现永久性的关停操作。 ```bash # 示例脚本用于快速诊断 #!/bin/bash echo "Current Status of FirewallD:" systemctl status firewalld --no-pager echo "" echo "Check if Firewalld Enabled on Boot:" systemctl is-enabled firewalld || echo "Firewalld disabled at boot" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值