Linux系统如何统计暴力破解密码次数及防御措施

一、暴力破解Linux密码失败次数统计

         服务器放在公网环境中,避免不了受到攻击,主要的攻击方式就是暴力破解Linux系统用户密码,不断的尝试破解密码。我们可以统计出有哪些ip尝试破解过密码,一般而言,密码失败3次及以上都不是正常的。自己的密码自己不可能输错3次以上。3次以上的就要注意了,可能就是在尝试破解你的密码。我们可以找出这些ip,然后拒绝这些ip地址访问服务器。那如何做呢?

统计密码失败次数和访问者ip地址

        我们可以用awk来进行统计,将ip地址作为数组的下标,然后每匹配到一次相同的ip就将数组的值加1,最后将每个数组的值打印出来就可以了。数组的特点就是一个数组可以有多个值,如数组ip,ip[192.168.0.1]=1,ip为数组,192.168.0.1位数组的下标,1是数组的值。每个下标可以有一个数组的值,这样我们可以打印下标和对应的值,就可以得到每个ip地址出现了多少次,就可以达到统计的效果。

linux安全日志示例

登录linux系统密码输入错误的日志

命令如下:

awk    '/Failed/{ip[$(NF-3)]++}END{for(i in ip){print i,ip[i]}}'   /var/log/secure 

# 通过逐行任务将日志中的ip地址作为数组ip的下标,每匹配到一次相同的ip地址就将数组的值加1,最后将数组的值输出,就可以得到日志中每个ip登录失败的次数和来访ip地址。

命令解析:

Failed:这个是安全日志中记录密码错误的关键字,匹配到这个关键字就可以找到所有密码输入错误的来访ip。

ip[$(NF-3)]++:这个是自定义的数组ip,NF:表示最后一列,NF-3:表示倒数第4列,也就是IP地址所在的列,$(NF-3): 表示倒数第4列的值,也就是IP地址,ip[$(NF-3)]:表示以IP地址为下标的数组ip;ip[$(NF-3)]++: 数组的值自加1。

for(i in ip):for循环,以i为变量,循环数组ip,循环数组取的值是下标。将数组ip的下标循环赋予给i。也就是将IP地址赋予给i。

{print i,ip[i]}:打印变量i,也就是IP地址,打印数组ip[i]的值,也就是下标为ip地址的数组的值,IP地址+次数,如:192.168.0.1    20;192.168.0.1 输入密码错误20次。

/var/log/secure:linux系统安全日志,记录了linux有关安全方面的日志。redhat,centos的日志为/var/log/secure,ubuntu的日志为/var/log/auth。日志结构是一样的。

awk统计命令说明

统计结果示例

统计结果展示

二、如何处理暴力破解的来访IP地址

         如果有人试图通过尝试密码来破解Linux系统的账号密码,那肯定是需要预防这种情况了。既然已经确认这个IP地址是攻击者,那么就应该直接拒绝这个IP地址来访问我们的服务器了。不止ssh连接,任何跟这个IP地址有关的访问直接拉黑,永久拒绝此IP的任何访问。我们可以将这个IP地址添加到防火墙的drop区域中,这样这个IP地址的任何请求都会被拒绝。前提是要开启防火墙。

如何添加ip地址到防火墙的drop区域中

方法一:命令行添加

命令如下:

firewall-cmd --permanent --zone=drop --add-source=192.168.0.1        #将ip地址添加到drop区域中拒绝其访问。

firewall-cmd --reload                                                                                         #重新加载防火墙配置

firewall-cmd:centos7防火墙的命令

--permanent:永久添加,不加此选项,firewall-cmd命令临时生效,重启服务器失效。

--zone=drop:指定防火墙区域的为drop,在drop区域添加策略。

--add-source:添加源地址。访问者的IP地址。

方法二、修改防火墙存储策略的文件/etc/firewalld/zones/drop.xml

            添加一行<source address='你要拒绝访问的ip地址'/> 到/etc/firewalld/zones/drop.xml,然后要重新加载防火墙。firewall-cmd --reload

centos7添加ip地址到drop区域中

我们可以借助这两种手段来加强服务器的安全性,通过脚本将密码输错3次及以上的来访ip加入到防火墙的drop区域中,拒绝这个ip地址访问服务器,计划任务定期执行这个脚本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容