每天多次DDOS攻击

我运行一个stream行的科技网站,几个星期以来,我的网站一直在DDOS攻击下。 攻击发生在随机的时间,并且经常大约每天10次。 通常攻击只持续几分钟,然后停止。

当我的网站受到攻击时,它变得无法访问。 服务器的负载没有增加,MySQL,Nginx和FPM等服务不受影响。 这似乎是一个SYN攻击或类似的东西。

我运行CentOS 5.6(64位),在一台function强大的机器上。 我已经试图加强SYSCTL了一下,我的设置可以在下面find。 另外,我已经安装iptables来阻止除我需要的端口之外的所有端口。 该脚本也可以在下面find。

我知道这个问题以前曾经被人们问过很多次,但是有没有更多的提示可以让我来抵御这些攻击呢? 真的变得非常烦人

我愿意尝试任何事情。

SYSCTL设置

net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.tcp_timestamps = 0 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 

IPTABLES设置

 *filter :INPUT DROP :FORWARD DROP :OUTPUT ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT -A INPUT -p tcp --dport 22 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT -A INPUT -p tcp --dport 22 --syn -j DROP -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT 

最后24小时的MRTG图表。 尖峰是攻击,这是当服务器变得无法访问。

MRTG图表

“这似乎是一个SYN攻击” – 你基于什么证据? 你的conntrack表填满了吗,或者你的netstat输出中有很多不完整的条目? 鉴于SYN cookies通常是非常有效的,我更倾向于认为这是一个简单的pipe道填充攻击,唯一的解决办法是获得一个更大的pipe道,要求你的提供商阻止上游的滥用stream量(如果它很简单stream量,如DNSreflection攻击),或者从上游提供商或Arbornetworking等第三方获取pipe道清理服务(如果stream量更复杂),因为计算机上的防火墙位于受限的networking连接。

根据关于图表性质的附加信息,我认为您很可能只是被交通堵塞(“填充”) – 您的提供商提供的交通费用图表应该能够确认,通过在您从供应商处支付的链接容量级别上显示您的stream量费率。