在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系统的安全性,防止各种常见的网络攻击。