作为IT工程师,我将为您提供CentOS防火墙的安全加固方案,主要基于firewalld服务(CentOS 7/8默认)和iptables(传统方案)。
# 确保firewalld已安装并运行
sudo yum install firewalld -y
sudo systemctl enable firewalld
sudo systemctl start firewalld
# 检查状态
sudo firewall-cmd --state
# 查看所有区域
sudo firewall-cmd --get-zones
# 查看默认区域
sudo firewall-cmd --get-default-zone
# 设置默认区域(推荐使用dmz或work)
sudo firewall-cmd --set-default-zone=work
# 永久开放SSH端口(示例)
sudo firewall-cmd --permanent --add-service=ssh
# 开放特定端口(如HTTP)
sudo firewall-cmd --permanent --add-port=80/tcp
# 移除端口
sudo firewall-cmd --permanent --remove-port=8080/tcp
# 重新加载配置
sudo firewall-cmd --reload
# 限制SSH访问特定IP
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 拒绝所有其他SSH访问
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" service name="ssh" reject'
# 启用日志记录
sudo firewall-cmd --set-log-denied=all
# 清除现有规则
sudo iptables -F
sudo iptables -X
# 设置默认策略
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 允许本地回环
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许SSH(示例IP限制)
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m state --state NEW -j ACCEPT
# 允许HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# ICMP控制(ping)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# CentOS 7+
sudo service iptables save
sudo systemctl enable iptables
# 或使用iptables-persistent
sudo yum install iptables-services -y
sudo systemctl enable iptables
sudo service iptables save
bash
sudo firewall-cmd --list-all # firewalld
sudo iptables -L -n -v # iptables
bash
sudo sysctl -w net.netfilter.nf_conntrack_max=2097152
bash
sudo yum install chrony -y
sudo systemctl enable chronyd
sudo systemctl start chronyd
检查服务状态:
sudo systemctl status firewalld
sudo systemctl status iptables
查看详细日志:
sudo journalctl -u firewalld -f
sudo dmesg | grep firewall
临时禁用防火墙(仅用于测试):
sudo systemctl stop firewalld
sudo systemctl stop iptables
通过以上配置,您可以显著提升CentOS服务器的网络安全性。请根据实际业务需求调整规则,并确保在修改前备份现有配置。