在CentOS系统中,使用iptables防火墙可以有效地防止各种网络攻击。以下是一些常见的iptables规则和策略,可以帮助你提高系统的安全性:
首先,清除现有的iptables规则,以确保你从一个干净的状态开始:
iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 根据你的需求,允许必要的端口和服务。例如,允许SSH(默认端口22)、HTTP(80)和HTTPS(443):
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT 使用limit模块限制连接速率,防止DDoS攻击:
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP 限制ICMP请求的数量,防止ICMP洪水攻击:
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 使用syncookies选项来防止SYN洪水攻击:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 允许已建立的连接和相关的数据包通过:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 保存iptables规则,以便在系统重启后仍然有效:
service iptables save 定期更新和维护你的iptables规则,以应对新的安全威胁。
iptables -L -v -n命令查看当前的iptables规则和统计信息。通过以上步骤,你可以显著提高CentOS系统的安全性,防止各种常见的网络攻击。