一:收集黑名单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,可以直接拿来使用。