在CentOS系统中,firewalld是一个动态管理防火墙的命令行工具,它允许你定义网络流量过滤规则。以下是配置CentOS最小化防火墙的基本步骤:
启动并启用firewalld服务:
sudo systemctl start firewalld
sudo systemctl enable firewalld
检查firewalld状态:
sudo firewall-cmd --state
查看所有打开的端口:
sudo firewall-cmd --list-all
开放特定端口: 如果你想开放TCP端口80(HTTP),可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
对于UDP端口53(DNS),使用:
sudo firewall-cmd --permanent --zone=public --add-port=53/udp
--permanent参数表示永久生效,重启后规则仍然有效。
重新加载防火墙配置: 添加或修改规则后,需要重新加载防火墙以使更改生效:
sudo firewall-cmd --reload
关闭特定端口: 如果你想关闭之前开放的端口,可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
sudo firewall-cmd --reload
设置默认区域: 你可以设置默认的区域,例如将所有未明确指定的流量设置为drop(拒绝):
sudo firewall-cmd --set-default-zone=drop
允许SSH连接: 如果你需要通过SSH连接到服务器,确保TCP端口22是开放的:
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
查看可用的服务和端口: 你可以查看firewalld支持的所有服务和端口:
sudo firewall-cmd --get-services
sudo firewall-cmd --get-ports
添加自定义规则:
如果你需要更复杂的规则,比如基于IP地址的过滤,可以使用rich rules:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'
sudo firewall-cmd --reload
请注意,这些步骤适用于CentOS 7及更高版本,因为它们使用的是firewalld作为默认的防火墙管理工具。如果你使用的是CentOS 6或其他发行版,可能需要使用iptables来配置防火墙。