记几条iptables规则

限制ping 192.168.146.3主机的数据包数,平均2/s个,最多不能超过3个

iptables -A INPUT -i eth0 -d 192.168.146.3 -p icmp --icmp-type 8 -m limit --limit 2/second --limit-burst 3 -j ACCEPT

限制SSH连接速率(默认策略是DROP)

iptables -I INPUT 1 -p tcp --dport 22 -d 192.168.146.3 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 22 -d 192.168.146.3 -m limit --limit 2/minute --limit-burst 2 -m state --state NEW -j ACCEPT

防止syn攻击:限制syn的请求速度(这个方式需要调节一个合理的速度值,不然会影响正常用户的请求)

iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP

限制单个ip的最大syn连接数

iptables –A INPUT –i eth0 –p tcp --syn -m connlimit --connlimit-above 15 -j DROP

利用recent模块抵御DOS攻击

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

只要是新的连接请求,就把它加入到SSH列表中

Iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

5分钟内你的尝试次数达到3次,就拒绝提供SSH列表中的这个IP服务。被限制5分钟后即可恢复访问。

防止单个ip访问量过大

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP