目的
防火墙是任何系统不可或缺的组成部分,可以用来保护服务器免受来自外部世界未经身份验证的访问。它有助于防止黑客登录到网络上的服务器。防火墙也可以用来设置特定的规则,以便根据IP地址限制对系统特定端口的访问。防火墙的基本功能是控制入站和出站流量,并根据已定义的安全规则集选择是阻止特定连接还是允许通过。
在CentOS 8上安装FirewallD
Firewalld使用服务和区域的概念,而不是iptables规则和链。通过使用,您可以配置应该允许或禁止哪些流量进入或来自系统。Firewalld正在使用firewall-cmd实用程序来管理您的防火墙配置。 在CentOS 8中,Firewalld使用服务和区域的概念,而不是iptables规则和链。您可以配置哪些流量允许或不允许进出系统。
Firewalld使用firewall-cmd实用程序来控制防火墙配置。
1. 在CentOS 8上执行以下命令安装FirewallD。CentOS 8默认支持。
# yum install firewalld2. 使用以下命令启动并启用firewald。
# systemctl start firewalld
# systemctl enable firewalld3. 运行以下命令检查FirewallD服务状态。
# firewall-cmd --state以下是FirewallD中包含的预定义区域
1. drop – 删除所有入站连接,没有任何回复,只允许出站连接。
2. block – 与区域丢弃相同,但是所有入站的连接都被icmp-host- prohibited或icmp6-adm-prohibited消息阻塞。
3. public – 它代表不可信任的公共区域。
4. external – 当防火墙用作网关时的外部网络。因为它被配置为NAT伪装和内部网络将保持私有但可访问。
5. internal – 只接受选定的传入连接,这是内部网络。
6. dmz – 非军事化区域对内部网络是公开可访问的,具有有限的访问权限,并且只接受选定的传入连接。
7. work – 用于工作环境的机器。
8. home - 用于家庭环境的机器。
9. trusted - 接受所有网络连接
通过FirewallD配置防火墙
默认情况下,公共区域为开启防火墙服务后的默认区域。
1. 下面的命令用于获取默认区域的列表。
# firewall-cmd --get-default-zone2. 运行下面的命令获取所有可用分区的列表。
# firewall-cmd --get-zones3. 运行下面的命令查看网络接口使用了哪些区域。
# firewall-cmd --get-active-zones4. 下面的命令用于更改默认区域和验证。
# firewall-cmd --set-default-zone=home
# firewall-cmd --get-default-zone注意:请将zone名称替换为需要设置为默认值的原始zone名称。
实例:打开HTTP端口80与HTTPS端口443
1. 通常,以下命令为有限的启动。
# firewall-cmd --zone=public --add-service=http
# firewall-cmd --zone=public --add-service=https2. 而这些则属于永久性设定:
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=httpsOR
# firewall-cmd --zone=public --permanent --add-port 80/tcp
# firewall-cmd --zone=public --permanent --add-port 443/tcp3. 重新加载服务。
# firewall-cmd --reload4. 检查端口与服务。
# firewall-cmd --list-all示例:关闭HTTP端口80与HTTPS端口443
1. 这些设置通常为永久性变更.
# firewall-cmd --zone=public --permanent --remove-service=http
# firewall-cmd --zone=public --permanent --remove-service=httpsOR
# firewall-cmd --zone=public --permanent --remove-port 80/tcp
# firewall-cmd --zone=public --permanent --remove-port 443/tcp2. 重启服务.
# firewall-cmd --reload禁用/停止FirewallD服务
如果需要停止或禁用服务器中的firewald服务,可以通过执行以下命令来完成。
使用以下命令停止firewald服务:
# systemctl stop firewalld若禁用则执行以下命令:
# systemctl disable firewalld
