一、暴力破解Linux密码失败次数统计
服务器置于网段环境中,防止不了遭到功击,主要的功击方法就是暴力破解Linux系统用户密码,不断的尝试破解密码。我们可以统计出有什么ip尝试破解过密码,通常而言,密码失败3次及以上都不是正常的。自己的密码自己不可能输错3次以上。3次以上的就要注意了暴力破解linux密码,可能就是在尝试破解你的密码。我们可以找出那些ip,之后拒绝这种ip地址访问服务器。那怎么做呢?
统计密码失败次数和访问者ip地址
我们可以用awk来进行统计,将ip地址作为形参的下标,之后每匹配到一次相同的ip就将链表的值加1,最后将每位链表的值复印下来就可以了。链表的特征就是一个链表可以有多个值linux入门,如链表ip,ip[192.168.0.1]=1,ip为链表,192.168.0.1位字段的下标,1是链表的值。每位下标可以有一个链表的值,这样我们可以复印下标和对应的值,就可以得到每位ip地址出现了多少次,就可以达到统计的疗效。
linux安全日志示例
登陆linux系统密码输入错误的日志
命令如下:
awk'/Fai命令p[$(NF-3)]++}END{for(iinip){printi,ip[i]}}'/var/log/secure
#通过逐行任务将日志中的ip地址作为形参ip的下标,每匹配到一次相同的ip地址就将链表的值加1,最后将链表的值输出,就可以得到日志中每位ip登陆失败的次数和来访ip地址。
命令解析:
Failed:这个是安全日志中记录密码错误的关键字,匹配到这个关键字就可以找到所有密码输入错误的来访ip。
ip[$(NF-3)]++:这个是自定义的链表ip,NF:表示最后一列手机linux操作系统,NF-3:表示倒数第4列,也就是IP地址所在的列,$(NF-3):表示倒数第4列的值,也就是IP地址,ip[$(NF-3)]:表示以IP地址为下标的链表ip;ip[$(NF-3)]++:链表的值自加1。
for(iinip):for循环,以i为变量,循环链表ip暴力破解linux密码,循环链表取的值是下标。将链表ip的下标循环赋于给i。也就是将IP地址赋于给i。
{printi,ip[i]}:复印变量i,也就是IP地址,复印链表ip[i]的值,也就是下标为ip地址的链表的值,IP地址+次数,如:192.168.0.120;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
添加一行到/etc/firewalld/zones/drop.xml,之后要重新加载防火墙。firewall-cmd--reload
centos7添加ip地址到drop区域中
我们可以利用这两种手段来强化服务器的安全性,通过脚本将密码输错3次及以上的来访ip加入到防火墙的drop区域中,拒绝这个ip地址访问服务器,计划任务定期执行这个脚本。