云主机被ssh暴力破解

刚刚买的云主机收到告警:【SSH暴力破解】,一开始没理会,后面发现这几个IP还经常来试。
这样放着也不是办法。
就简单的做了一些限制:

1.配置/etc/pam.d/sshd 做限制

/etc/pam.d/sshd 中增加
auth    required    pam_tally2.so    deny=5    unlock_time=600 even_deny_root root_unlock_time=1200
even_deny_root    也限制root用户;  
deny           设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time        设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time      设定root用户锁定后,多少时间后解锁,单位是秒;
2.配置/etc/ssh/sshd_config
修改22端口-6666    (修改任意端口)
放开:MaxAuthTries (限制SSH客户端一次连接服务器,能测试的密码的)    建议的设置 3-6
image.png

完成步骤1,2后重启服务

systemctl restart sshd

3.写个脚本把暴力破解的IP加入黑名单

#!/bin/bash
tail -n1000 /var/log/secure  |grep "Failed password for root from"  |awk  '{print $11}'|sort |uniq -c |awk '{if($1 >5) print $2}' > /tmp/.erro_ssh_ip
for i in $(cat /tmp/.erro_ssh_ip)
do
new_ip=`grep -c  "$i"  /etc/sshd.deny.hostguard`
if [ $new_ip == 0 ];then
        echo "$i SSH brute force attack" >> /tmp/ssh_attack.log
        echo "$i" >> /etc/sshd.deny.hostguard
else
        echo "ip:$i  is in deny"
fi
done

/tmp/.erro_ssh_ip   获取的暴力破解IP名单(多次尝试 > 5次的)
/etc/sshd.deny.hostguard   ssh加入黑名单的IP
写了个循环,读取暴力破解名单,去黑名单循环,没有就追加 到黑名单。避免IP重复写在配置【/etc/sshd.deny.hostguard】

查看日志 /var/log/secure

这就是尝试破解ssh的IP名单

执行脚本

没加入黑名单的IP 会 【>> /etc/sshd.deny.hostguard】,已经加入的返回 【echo "ip:$i is in deny"】


执行结果

定时任务每分钟执行

测试:
找一台机器ssh你的公网IP
ssh 110.110.110.100 (本机公网IP) 默认22 直接报错不通:
ssh 110.110.110.100 (本机公网IP) -p 6666 (修改的ssh端口)


多次尝试失败后,直接被拒绝
查看本地日志: /var/log/secure
有个IP多次尝试登陆并且失败
查看sshd的黑名单变化:

121.52.252.24 刚刚脚本触发的IP
119.8.55.100 (之前触发的)
159.138.53.153 (之前触发的)


刚刚的xx.xx.xx.24被加到黑名单

你可能感兴趣的:(云主机被ssh暴力破解)