Linux收集SSH爆破记录(拉入IP黑名单)

一:收集黑名单IP

收集大量的ssh登录信息。

#存文件便于以下的操作
lastb >> lastb.log                                                 
#过滤其它字段,只保留ip数据
cat lastb.log|awk -F " " '{print $3}' >> ips.log  
#记录ip的出现次数
cat ips.log | sort | uniq -c >> ip_uniq.log          
#最终形成列表
cat ip_uniq.log|sort -k1,1nr  >> output.log

以上命令也可以合并成一条命令:

lastb | awk -F " " '{print $3}' | sort | uniq -c | sort -k1,1nr >> output.log

查看文件内容:

 cat output.log

二:处理(拉黑)

神器登场: ipset,非自带,请用

 yum install ipset

或者

 apt-get -y install ipset

安装
简单讲一下 ipset 的使用:

#创建一个名称为 blacklist 的IP集合,最大容量为10000
ipset create blacklist hash:ip maxelem 100000
#查看你的IP集
ipset list
#增加ip
ipset add blacklist 1.1.1.1
ipset del blacklist 1.1.1.1
#再次查看IP集
ipset list

#将刚才的恶意IP导入到ipset中,方法有点蹩脚

#将刚才的恶意IP导入到ipset中,方法有点蹩脚
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' output.log | awk '{print "ipset add blacklist",$0}'|sh
#查看IP集
ipset list

最后,将ipset与iptables关联即可(注意ssh端口必须是你更改后)

iptables -I INPUT -m set --match-set blacklist  src -p tcp --destination-port 22 -j DROP 
iptables-save > /etc/iptables-script                                          #保存IP规则
iptables-restore > /etc/iptables-script                    #恢复IP规则,重启后使用恢复规则
#查看IP禁用规则
iptables -L -n

扩展:

iblocklist,这个网站已搜集了大量的恶意IP,可以直接拿来使用。