在 CentOS 8 上配置防火墙主要涉及使用 firewalld
命令行工具。以下是基本步骤和常用命令的详细说明:
首先,检查防火墙是否正在运行:
sudo systemctl status firewalld
如果防火墙未启用,可以使用以下命令启动它:
sudo systemctl start firewalld
查看防火墙状态:
sudo firewall-cmd --state
查看当前默认区域:
sudo firewall-cmd --get-default-zone
可以将默认区域设置为 public
:
sudo firewall-cmd --set-default-zone=public
查看所有区域:
sudo firewall-cmd --list-all-zones
查看活动区域及其绑定的接口:
sudo firewall-cmd --get-active-zones
开放端口(例如,开放 TCP 协议的 80 端口,即 HTTP):
sudo firewall-cmd --permanent --add-port=80/tcp
重新加载防火墙配置使更改生效:
sudo firewall-cmd --reload
查看当前开放的所有端口(运行时配置):
sudo firewall-cmd --list-ports
列出预定义的服务:
sudo firewall-cmd --get-services
开放服务(例如,开放 HTTP 服务,通常是 80/tcp):
sudo firewall-cmd --permanent --add-service=http
查看与特定区域相关的防火墙规则或服务:
sudo firewall-cmd --list-all --zone=public
删除服务(例如,删除 dhcpv6-client
和 cockpit
服务):
sudo firewall-cmd --remove-service=cockpit --permanent
sudo firewall-cmd --remove-service=dhcpv6-client --permanent
sudo firewall-cmd --reload
将网络接口分配到特定区域(例如,将 eth0
接口分配到 public
区域):
sudo firewall-cmd --zone=public --add-interface=eth0
从区域中删除接口:
sudo firewall-cmd --zone=public --remove-interface=eth0
修改接口所属区域:
sudo firewall-cmd --zone=default --change-interface=eth0
所有带 --permanent
的更改需要重新加载 firewalld
服务后才会生效:
sudo firewall-cmd --reload
如果需要恢复防火墙的默认配置,可以删除配置文件:
sudo rm -rf /etc/firewalld
然后重新启动防火墙:
sudo systemctl restart firewalld