评论:攻击时不应使用shell脚本来对付攻击。让我们照你今天说的去做。




不知道得罪神仙的方式,收到Nagios报警,发现一个网站有CC攻击。看,量不小,服务器的负荷的40以上,虽然该网站可以打开,但打开的速度非常慢。如果不是高一点,服务器将要挂了。看来,这不是一个不眠之夜。
在nginx的访问日志一看:
#尾F access.log
它看起来像这样的状态。
我首先用大量访问手动封闭几个IP。
# iptables -输入的83.187.133.58 J滴
# iptables -输入的80.171.24.172 J滴
......
经过几个紧急IP印章,负载下降了一点,网站的访问速度增加。然而,几分钟后,出现了许多新的IP,写下shell脚本,让他抓住并密封它,发现他的攻击状态是相同的。每个攻击IP都有HTTP49909.02(Windows NT 5.1,U,汝)字段,所以我们将搜索这个字段。
# Vim fengip.sh

# /斌/狂欢!
我在1 32400

1睡眠
x = `尾500 access.log | grep'http / 1.1 4990 歌剧 / 9.02| awk {打印1美元}的|排序n | uniq `
如果为$ x };然后
回声.
其他的
对于IP的'回声$ x '

房= ` grep -l ^ IP所有`美元美元
如果$ - EQ 1 };然后
回声iptables -输入的IP -p tcp --dport美元——80 J滴
iptables -输入的IP -p tcp --dport美元——80 J滴
全部返回
FI
多恩
FI
多恩
脚本是写的。

让我们运行几分钟,如下图所示
经过半小时的观察,服务器的负载也降到了0,而且脚本不断地关闭IP上的CC攻击,让他一直在运行,并且您应该能够在晚上睡得很好。
让我们下来解释一下剧本。
# Vim fengip.sh

# /斌/狂欢!
触摸所有的#建立所有文件回有用
我在` SEQ 1 32400 ` #循环32400次,预计9在早上的时间

1睡眠

X=`tail -500 access.log |grep'HTTP/1.1 4990 - Opera/9.02'|awk'{print $1}'|sort -n|uniq` # view access log last 500 lines, including'HTTP/1.1 out of 4990 - Opera/9.02'for IP and sequencing, to repeat
如果为$ x };然后
回声香港> > / dev /空#若X是空的,它不执行操作,500排,与no'http / 1.1 4990 戏 / 9.02线
其他的
知识产权在` echo $ X ` #如果我们通过这些IP

房= ` grep -l ^美元美元` #查看所有IP的IP的所有文件,因为每一封信,将IP回了所有的文件,所有的文件,如果有这个IP,防火墙被封闭后。
{ 1 }如果美元情商那么#;如果以上的实施是成功的,它不是在所有文件,使用以下语句IP防火墙封锁,把IP的所有文件
回声iptables -输入的IP -p tcp --dport美元——80 J滴
iptables -输入的IP -p tcp --dport美元——80 J滴
全部返回
FI
多恩
FI
多恩
脚本非常简单。