您的位置:首页 > 其它

用iptables防范SSH暴力破解密码

2012-10-10 16:25 344 查看
#!/bin/bash
SCANIP=`grep "Failed" /var/log/secure | awk '{print $(NF-3)}'| sort |uniq -c | awk '{print $1":"$2}' |awk -F: '$1 >= 10 {print $5}'`
if [ -z "`iptables -vnL INPUT | grep $SCANIP`" ]
then
for i in $SCANIP
do iptables -I INPUT -s $i -m state -state NEW,RELATED,ESTABLISHED -j DROP
done
fi

简单解释一下,由于用户通过SSH登陆Linux服务器的信息都记录在了/var/log/secure这个日志文件里面,我们可以通过less等命令看一下这个文件,内容如图:





可以看到很多Failed记录,这些记录就是通过ssh登录时密码输入错误的信息,从对应的条目里面可以看到对方是通过什么IP地址进行的登陆。

所以我们用awk对这个文件进行分析,提取出来标记为Failed登陆的IP,并通过sort|uniq -c这个命令对这些记录进行排序和合并,这样就能知道每个IP登陆错误的次数,这里由于操作人员的失误造成密码输入错误的可能性是存在的,所以我们需要设置一个认定攻击的值,我这里选择的是在一天里面有10次登陆密码输入错误的IP。把这些IP筛选出来之后再利用iptables防火墙的命令把这些IP添加进列表就OK了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  密码 iptables SSH 暴力