shell统计linux ssh连接login失败ip次数
Linux 2023/8/15 21:32:52 点击:不统计
http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E
服务器经常被别人ssh嗅探 ,会有登录失败提醒,每次登录会有下面的提示:
Last failed login: Tue Aug 15 21:23:50 CST 2023 from 218.211.1.1 on ssh:notty
There were 17 failed login attempts since the last successful login.
Last login: Tue Aug 15 21:02:01 2023 from 47.101.1.1
提示已经有17次失败请求登录了,那么怎么统计有那些ip 尝试登录我们服务器,我们按照IP 次数排序一下。
命令如下:
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | sort -nrk1| awk '{print $2" 失败 "$1" 次;"}'
如果想统计login失败次数到一个文件中,命令如下
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | sort -nrk1| awk '{print $2" 失败 "$1" 次;"}'>fail.log
如果查看某一天的 登录次数排序 ,需要筛选一下日期再统计排序次数,比如查询 8月15日,我们筛选关键词 “Aug 15”
cat /var/log/secure|grep "Aug 15" | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | sort -nrk1| awk '{print $2" 失败 "$1" 次;"}'
如果查看某天某个小时的数据,比如8月15日13:00-13:59:59 筛选 “Aug 15 13:”
cat /var/log/secure|grep "Aug 15 13:" | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | sort -nrk1| awk '{print $2" 失败 "$1" 次;"}'
这样就统计了login失败次数,以及对应Ip次数