bnx2驱动缺陷导致网卡down掉
运维    2017-01-05 23:46:27    29    0    0
admin   运维

背景


    2013年03月29日,eleven所属单位 被未知生物ddos攻击, 攻击时间 凌晨00:15 左右, eleven不在现场.其他同事处理的, 第二天eleven来到公司, 接到上面命令找出服务器弱点.同时还原攻击现场,


检查


    通过Zenoss监控图, 看见在00:15左右, 突然进来了大量的数据包, 大概40w左右, 但是流量没有明显异常(即没有瞬间增高), 好吧, 看见这个现象就猜到了.. 小包DDOS攻击.通过服务器的message日志里面看见了syn flood on 80记录,结合监控图上的大量数据包,断定服务器被人采用syn半开攻击手法给攻击


服务器配置


    观察了服务器的内核参数配置,因为我记得我们所有服务器都有对于syn flood的防御策略,在sysctl.conf里面syn_cookies已经开启, 而且也看见syn队列增加到了1w6, 按理来说单纯的半开攻击应该对于我们机器是无压力的说.

 

我们服务器是


1. Dell R210
2. Debian 6.0.7 2.6.32 kernel
3. 网卡 Broadcom Corporation NetXtreme II BCM5716
4. 网卡驱动 bnx2 版本2.0.2


攻击模拟


    一开始自己用scapy写了一个syn攻击脚本,但是发包速度太慢了.于是想起了hping3这个东西,

挑选两台机器A君,B君, 对主机1.2.3.4发起syn攻击

hping3 -i u1 -S -p 80 1.2.3.4 –rand-source

以上攻击命令,请勿随意尝试.
2秒之后, 1.2.34 挂了..<(=-︿-=)>


    通过远程管理卡登录服务器发现,机器并没有死机, 只是网络不通了.机器无法ping通交换机,交换机也无法ping通服务器, 重启服务器网卡, 恢复正常,判断网卡异常down掉. 找遍所有日志kern.log, syslog.log, message.log, debug.log 都没有任何信息,仅有一条 syn flood on 80和凌晨攻击的现象何其相似..

 

原因分析


    经过一下午的不断测试.确定了仅用一台机器就可以瞬间秒挂1.2.3.4这台服务器,后来经过几次测试.排除了应用程序问题 替换nginx, lighttp, apache, 排除了交换机问题,(白痴都想得到.交换机要是死了,我们所有业务就崩溃了),那么就剩下服务器自身的问题,但是服务器没有死机.那么就只剩下服务器网卡.


    经过一番搜索..发现google上也有同志发现了宝兰网卡异常down掉的情况. 看到这里,我就找到一台Intel网卡的机器. 然后继续做ddos测试, 发现Intel网卡机器,虽然无法提供服务了..系统被我拖的死死的.但是只要我停止攻击,系统就能很快的恢复. 而不会出现停止攻击了,还无法登录服务器(网卡死掉). 可以肯定我们服务器这次浩劫的原因就是网卡的问题了..


结束

    到dell官方下载最新的bnx2驱动. 更新驱动之后,继续测试.. 这时不断怎么攻击,都无法将网卡打死. 只能造成业务无法正常访问而已.没有做软中断的负载均衡.当攻击的时候网卡中断都集中在cpu0上,正常的数据包都被攻击数据包给淹没了..自然无法提供服务.

Pre: Squid URL跳转

Next: flvcd解析广告绕过

29
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments
Table of content