我有一个32GB RAM的专用服务器。 它工作得很好,直到有些下注者来到我的服务器。 我有非常高的上行链路带宽使用率(超过150Mbps)。 我使用以下命令查看了netstat:
netstat -an | grep tcp | awk '{print $5}' | cut -f 1 -d : | sort | uniq -c | sort -n
它显示了多个IP的数千个连接:我使用了下面的iptable规则来限制每个IP的连接:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 32 -j REJECT --reject-with tcp-reset iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 150/second --limit-burst 160 -j ACCEPT
我保存了这些规则,这些规则在iptables的列表中名列前茅。 我重新启动系统closures所有连接并恢复了iptable规则。 把服务器联机。 服务器几乎已经死了,再次有成千上万的连接。 我已经安装了UFW,只有几个端口打开。
我能做些什么来阻止它? 如何可以杀死每个IPbuild立的连接? BTW。 所有的ips都是蒙面的,假的。
netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n 1 CLOSING 1 established) 1 Foreign 2 SYN_SENT 7 FIN_WAIT2 16 LISTEN 21 CLOSE_WAIT 48 LAST_ACK 209 SYN_RECV 284 FIN_WAIT1 772 ESTABLISHED 35426 TIME_WAIT
iptraf -d eth0的输出
IPTraf l Statistics for eth0 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk xx x Total Total Incoming Incoming Outgoing Outgoing x x Packets Bytes Packets Bytes Packets Bytes x x Total: 332826 128344K 192313 14538688 140513 113805K x x IP: 332826 123518K 192313 11679988 140513 111838K x x TCP: 332692 123507K 192311 11679924 140381 111827K x x UDP: 0 0 0 0 0 0 x x ICMP: 134 11448 2 64 132 11384 x x Other IP: 0 0 0 0 0 0 x x Non-IP: 0 0 0 0 0 0 x xx xx x Total rates: 31150.2 kbits/sec Broadcast packets: 0 x x 25144.8 packets/sec Broadcast bytes: 0 x xx x Incoming rates: 8907.0 kbits/sec x x 14266.2 packets/sec x x IP checksum errors: 0 x x Outgoing rates: 22243.2 kbits/sec x x 10878.6 packets/sec
其实,你在问如何防止DDOS攻击。 这实际上取决于您的系统的stream量/数据包的数量。 我相信你的情况是TCP syn flood。
您需要检查iptraf和iptraf的stream量(例如iptraf -d eth0)。
你也应该看看sysctl:
net.ipv4.tcp_syncookies net.ipv4.tcp_synack_retries
并在您的iptables中启用SYNPROXY攻击持续时间: http ://rhelblog.redhat.com/tag/synproxy/
然而,正面的结果取决于DDOS攻击的强度。
你可以尝试使用一些反ddos攻击服务,但是我没有经验使用它们。