我的服务器出现了一个严重的问题,那就是无用的消耗过多的出站带宽。 如果有问题,服务器操作系统是CentOS 6.4 x64 2.6.32-431内核。
这是一个快速的tcpdump日志文件:
20:10:17.448636 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 463681, win 65520, options [nop,nop,sack 1 {460801:462241}], length 0 20:10:17.448698 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 468001:469441, ack 0, win 123, length 1440 20:10:17.454074 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 469441:470881, ack 0, win 123, length 1440 20:10:17.637167 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 465121, win 65520, options [nop,nop,sack 1 {466561:468001}], length 0 20:10:17.637221 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 470881:472321, ack 0, win 123, length 1440 20:10:17.637230 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 472321:475201, ack 0, win 123, length 2880 20:10:17.638062 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 468001, win 65520, length 0 20:10:17.638078 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [.], seq 475201:478081, ack 0, win 123, length 2880 20:10:17.642977 IP 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827 > svgmain.http: Flags [.], ack 470881, win 65520, length 0 20:10:17.642988 IP svgmain.http > 76.200.77.222.broad.pt.fj.dynamic.163data.com.cn.57827: Flags [P.], seq 478081:480961, ack 0, win 123, length 2880
有数以千计的条目,每天吃掉100GB或更多。 我已经尝试了许多不同的防火墙规则。 我的iptables规则是:
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -p tcp -m tcp --dport 80 -j fail2ban-HTTP -A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -s 198.101.197.171/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state NEW -m limit --limit 2/sec --limit-burst 2 -j ACCEPT -A INPUT -p tcp -m state --state NEW -j DROP -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT -A fail2ban-HTTP -j RETURN -A fail2ban-SSH -j RETURN
我是一个业余系统pipe理员,所以我不知道所有的阻止这种攻击的来龙去脉。
iftop显示随数据接收者而改变的任意IP,nethogs显示/ usr / bin / httpd是带宽的过程。 iotop虽然告诉我没有实际的文件被读取,但没有显示任何活动。
思考?
好的,你有:
我的诊断:您正在运行一个Web服务器。
检查您的Web服务器访问日志,看看人们正在访问。 这是正常的stream量? 考虑使用CDN来减less您的传出带宽。
哦,没有在日志中?
server-status模块,以便您可以询问httpd在做什么。