sudo systemctl status firewalld
# 启动防火墙
sudo systemctl start firewalld
# 停止防火墙
sudo systemctl stop firewalld
# 设置开机自启
sudo systemctl enable firewalld
sudo firewall-cmd --list-all
# 允许HTTP服务
sudo firewall-cmd --permanent --add-service=http
# 允许HTTPS服务
sudo firewall-cmd --permanent --add-service=https
# 允许SSH服务(建议修改默认端口后再开放)
sudo firewall-cmd --permanent --add-service=ssh
# 拒绝FTP服务
sudo firewall-cmd --permanent --remove-service=ftp
# 允许自定义端口(例如8080)
sudo firewall-cmd --permanent --add-port=8080/tcp
# 拒绝危险端口(例如telnet的23端口)
sudo firewall-cmd --permanent --remove-port=23/tcp
# 查看所有区域
sudo firewall-cmd --get-zones
# 设置默认区域(推荐使用dmz或work)
sudo firewall-cmd --set-default-zone=dmz
# 仅允许特定IP访问SSH(替换为你的IP)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 拒绝特定IP访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" drop'
# 限制每个IP每分钟最多20个新连接
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" service name="http" limit value="20/m" accept'
# 将外部8080端口转发到内部80端口
sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80
sudo firewall-cmd --permanent --add-masquerade
sudo firewall-cmd --reload
# 测试端口是否开放(从另一台机器)
telnet your_server_ip 22
# 或使用
nc -zv your_server_ip 80
firewall-cmd --list-all
检查当前规则/var/log/firewalld
日志结合其他安全措施:
备份配置:
sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak
通过以上配置,您可以有效增强CentOS服务器的网络传输安全性,防止未经授权的访问和常见网络攻击。