作为IT工程师,保护CentOS服务器的网络安全至关重要。以下是使用网关防火墙的全面方案:
# 对于CentOS 7/8/9,建议使用firewalld
sudo yum install firewalld -y
sudo systemctl enable --now firewalld
# 查看状态
sudo firewall-cmd --state
# 查看活动区域和规则
sudo firewall-cmd --list-all
# 添加永久性HTTP服务规则
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
# 允许特定端口(如自定义SSH端口2222)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 默认拒绝所有其他入站流量
sudo iptables -P INPUT DROP
# 保存规则(CentOS 6)
sudo service iptables save
# 仅允许特定IP访问SSH
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100/24" service name="ssh" accept'
# 或使用iptables
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
# 限制连接速率
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
对于网关服务器:
# 启用IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 配置NAT (使用eth0作为外网接口)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# 记录被拒绝的包
sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROPPED: " --log-level 4
# 查看日志
sudo tail -f /var/log/messages
对于firewalld:
sudo firewall-cmd --runtime-to-permanent
对于iptables:
# CentOS 7+
sudo yum install iptables-services -y
sudo systemctl enable iptables
sudo service iptables save
通过以上配置,您的CentOS服务器将具备企业级的网络安全防护能力。根据实际网络环境调整规则,并定期测试防火墙有效性。