网络防火墙是保护CentOS服务器安全的第一道防线,它可以控制进出服务器的网络流量。CentOS系统默认使用firewalld作为防火墙管理工具(CentOS 7及以上版本)。
# 检查firewalld服务状态
sudo systemctl status firewalld
# 如果未运行,启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --state
sudo firewall-cmd --list-all
# 列出预定义服务
sudo firewall-cmd --get-services
# 允许HTTP服务
sudo firewall-cmd --permanent --add-service=http
# 允许HTTPS服务
sudo firewall-cmd --permanent --add-service=https
# 允许SSH服务(默认端口22)
sudo firewall-cmd --permanent --add-service=ssh
# 重载防火墙配置
sudo firewall-cmd --reload
# 开放TCP端口8080
sudo firewall-cmd --permanent --add-port=8080/tcp
# 开放UDP端口53(DNS)
sudo firewall-cmd --permanent --add-port=53/udp
# 重载配置
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --reload
# 查看所有区域
sudo firewall-cmd --get-zones
# 查看默认区域
sudo firewall-cmd --get-default-zone
# 更改默认区域(例如改为dmz)
sudo firewall-cmd --set-default-zone=dmz
# 只允许特定IP访问SSH
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 拒绝特定IP
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.5" reject'
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo firewall-cmd --panic-on
sudo firewall-cmd --panic-off
# 临时启用日志
sudo firewall-cmd --set-log-denied=all
# 永久启用
sudo firewall-cmd --permanent --set-log-denied=all
sudo firewall-cmd --reload
sudo journalctl -u firewalld -f
通过合理配置防火墙,您可以显著提高CentOS服务器的网络安全性,有效阻止未经授权的访问和潜在的网络攻击。