用iptables自动封IP,防SSH被暴力破解

之前没太关注服务器的攻击,几天突然发现/var/log/secure下面有很多ssh登陆失败的日志,甚至同一个ip有两天多次的攻击,吓了一身冷汗。虽然是个人站,没有太多机密资料,但是被攻击总不是好事情。也许哪天攻破后,就被他们用来干坏事了。还是处理一下比较好。

先把ip过滤出来,然后加到iptables里面

#!/bin/bash
num=10 #上限
for i in `awk ‘/Failed/{print $(NF-3)}’ /var/log/secure|sort|uniq -c|sort -rn|awk ‘{if ($1>$num){print $2}}’`
do

 #先删除该条,防止重复的规则,虽然iptables可以执行重复的规则,也许会影响到执行的性能,还是删掉比较好。
iptables -D INPUT -p tcp -s $i –dport 22 -j DROP

#添加规则
iptables -I INPUT -p tcp -s $i –dport 22 -j DROP
done

另外写了一条,将日志导出到某个文件,方便查看

cat /var/log/secure|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|sort -rn|awk ‘{print $2″=”$1;}’ >/path/fail.txt

 

将这两条都加入到crontab里面,隔几分钟执行一次。

另外强烈鄙视一下下面这些IP,诅咒早日关门大吉。

116.10.191.165=162
116.10.191.183=183
116.10.191.196=113
116.10.191.204=135
116.10.191.227=184
116.10.191.229=41
116.10.191.230=173
117.21.225.157=301
117.79.91.244=882
212.83.150.76=24
61.174.50.235=170
61.174.51.232=35
61.33.155.74=124
82.221.106.233=1

 

1.234.70.30=23
115.239.248.121=72
115.239.248.122=90
115.239.248.50=24
115.239.248.51=18
115.239.248.57=12
115.239.248.61=144
115.239.248.90=60
116.10.191.167=142
116.10.191.175=168
116.10.191.236=26
117.21.191.209=48
117.21.191.210=78
117.21.225.157=78
117.21.226.103=60
183.56.129.146=20
198.8.61.141=15
220.177.198.24=228
220.177.198.38=30
220.177.198.40=90
220.177.198.43=12
220.177.198.93=264
222.186.34.143=138
222.186.34.36=330
222.186.38.109=42
222.186.40.170=306
222.186.40.251=198
222.186.56.33=48
58.241.61.162=53
60.173.26.16=2594
61.174.50.216=40
61.174.51.207=151
61.174.51.217=150
61.174.51.227=222
61.174.51.235=2