shell脚本实现检测暴力破解ssh

在centos中,当有人尝试暴力破解ssh的时候,所有的信息都会记录到日志文件/var/log/secure中,注意secure是按照周轮询的。

我们可以通过过滤得到我们需要的信息:

grep ‘Failed’ /var/log/secure >secure.log

QQ20150916203929

在使用下面的命令,就得到了暴力破解的信息

grep ‘Failed’ secure.log |awk ‘{print $(NF-3)}’|sort |uniq -c|sort -nr >ssh.faile.log.text

下图中,比如1 131.161.129.18表示ip131.161.129.18尝试登陆ssh失败次数是1次,依次类推…

QQ20150916204606

在实际的环境中可以直接使用下面的命令:

grep ‘Failed’ /var/log/secure |awk ‘{print $(NF-3)}’|sort |uniq -c|sort -nr >ssh.faile.log.text

相关命令说明:
sort

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。
sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序。

sort的-r选项

sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

sort的-n选项

你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。

我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!

uniq

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

uniq [-icu]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行

此条目发表在Shell分类目录,贴了标签。将固定链接加入收藏夹。