您的位置:首页 > 运维架构 > Shell

shell 自动检查SSH暴力破解IP并阻断攻击

2017-06-14 13:52 447 查看
#!/bin/bash
local_ip="192.168.0.25" #过滤本地IP
secure_file=/var/log/secure
hosts_deny=/etc/hosts.deny
hosts_secure=/etc/hosts.secure
secure () {
grep "Failed password for root from" $secure_file |sort |awk '{print $11}' |uniq -c |while read Line
do
attack_num=`echo $Line |awk '{print $1}'` #攻击IP的次数
attact_ip=`echo $Line |awk '{print $2}'` #攻击IP
if [ "$attack_num" -gt "10" ] && [ "$local_ip" != "$attact_ip" ]
then
echo sshd:"$attact_ip":deny >> $hosts_secure
fi
done
}
secure
sort $hosts_deny $hosts_secure |uniq > $hosts_deny #过滤重复IP

每5分钟检测一次,在5分钟内尝试密码登录错误超过10次的拒绝这个IP
crontab -e
*/5 * * * * /sh/sshtool.sh

查看被拒绝的IP
cat /etc/hosts.deny
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh 5分钟 尝试密码