在CentOS上搭建Web服务器时,正确配置防火墙是确保服务安全可用的关键步骤。以下是详细的防火墙设置指南:
首先检查系统防火墙是否运行:
sudo systemctl status firewalld
如果未运行,启动并设置开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
根据你的Web服务器类型开放相应端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=8080/tcp
如果Web服务器需要连接数据库:
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --permanent --add-service=postgresql
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="http" accept'
sudo firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
sudo firewall-cmd --set-default-zone=public
所有更改后,必须重新加载防火墙使设置生效:
sudo firewall-cmd --reload
验证当前规则:
sudo firewall-cmd --list-all
firewall-cmd --list-all
检查当前规则如果服务无法访问:
- 确认服务本身正常运行:systemctl status nginx/apache
- 检查端口监听状态:ss -tulnp | grep 80
- 临时关闭防火墙测试:sudo systemctl stop firewalld
(测试后记得重新开启)
通过以上设置,你可以确保Web服务器在CentOS系统上既安全又可访问。根据实际需求调整这些规则,并始终遵循最小权限原则。