首页 帮助中心 新加坡服务器 CentOS 7 上的 FirewallD 简明指南
CentOS 7 上的 FirewallD 简明指南
时间 : 2022-11-09 09:36:28 编辑 : 华纳云 阅读量 : 288

FirewallD 是 CentOS 7 服务器上默认可用的防火墙管理工具。基本上,它是 iptables 的封装,有图形配置工具 firewall-config 和命令行工具 firewall-cmd。使用 iptables 服务,每次改动都要求刷新旧规则,并且从 /etc/sysconfig/iptables 读取新规则,然而 firewalld 只应用改动了的不同部分。

FirewallD 的区域(zone)

FirewallD 使用服务(service) 和区域(zone)来代替 iptables 的规则(rule)和链(chain)。

默认情况下,有以下的区域(zone)可用:

drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。

block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。

public — 只接受被选择的传入网络连接,用于公共区域。

external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。

dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。

  work — 对于处在你工作区域内的计算机,只接受被选择的传入网络连接。

home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。

internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。

trusted — 所有网络连接都接受。

要列出所有可用的区域,运行:

# firewall-cmd --get-zones

work drop internal external trusted home dmz public block

列出默认的区域 :

# firewall-cmd --get-default-zone

public

改变默认的区域 :

# firewall-cmd --set-default-zone=dmz

# firewall-cmd --get-default-zone

dmz

FirewallD 服务

FirewallD 服务使用 XML 配置文件,记录了 firewalld 服务信息。

列出所有可用的服务:

https://www.hncloud.com/uploads/UEditorImages/202211/09/0ae9d379c5c7f2efe59159b44bd7c5c4.jpg

XML 配置文件存储在 /usr/lib/firewalld/services/ 和 /etc/firewalld/services/ 目录下。

用 FirewallD 配置你的防火墙

作为一个例子,假设你正在运行一个 web 服务器,SSH 服务端口为 7022 ,以及邮件服务,你可以利用 FirewallD 这样配置你的服务器:

首先设置默认区为 dmz。

首先设置默认区为 dmz。

# firewall-cmd --set-default-zone=dmz

# firewall-cmd --get-default-zone

dmz

为 dmz 区添加持久性的 HTTP 和 HTTPS 规则:

# firewall-cmd --zone=dmz --add-service=http --permanent

# firewall-cmd --zone=dmz --add-service=https --permanent

开启端口 25 (SMTP) 和端口 465 (SMTPS) :

firewall-cmd --zone=dmz --add-service=smtp --permanent

firewall-cmd --zone=dmz --add-service=smtps --permanent

开启 IMAP、IMAPS、POP3 和 POP3S 端口:

firewall-cmd --zone=dmz --add-service=imap --permanent

firewall-cmd --zone=dmz --add-service=imaps --permanent

firewall-cmd --zone=dmz --add-service=pop3 --permanent

firewall-cmd --zone=dmz --add-service=pop3s --permanent

因为将 SSH 端口改到了 7022,所以要移除 ssh 服务(端口 22),开启端口 7022:

firewall-cmd --remove-service=ssh --permanent

firewall-cmd --add-port=7022/tcp --permanent

要应用这些更改,我们需要重新加载防火墙:

firewall-cmd --reload

最后可以列出这些规则:

https://www.hncloud.com/uploads/UEditorImages/202211/09/82712ab89273fb0ba121a600c277f11f.jpg

华纳云 推荐文章
基于RHEL的发行版中配置Firewalld的方法 Linux如何把CentOS7升级为CentOS8 CentOS 7云主机中如何自制ISO镜像文件 CentOS 7环境下使用Nginx托管.Net Core应用程序 CentOS 7.x下配置DNS服务器基本操作 CentOS 7下如何使用Docker运行.Net Core CentOS7搭建Docker私有库和如何删除库内系统镜像 CentOS 7.9 分区中挂载硬盘LVM操作实例 CentOS 7.x安装配置openGauss数据库常见方法 在centos 7系统中如何扩展根目录?
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持