防止ssh暴力破解可以从这几个方面控制:
- 更改ssh默认22端口,但是攻击者可以使用端口扫描工具(如nmap)重新找到你的ssh登陆端口;
- 可以限制root账户远程登陆,自己需要使用root身份时执行su -或sudo,这个办法还行,能够有效防止;
- 但有时候,攻击者使用大量肉鸡来暴力破解会对主机网络造成一定影响,可以将攻击来源IP加入/etc/hosts.deny中来拒绝该IP尝试登陆。
我们可以在第三种办法基础上,通过shell脚本自动将错误登陆10次以上的IP加入拒绝列表,首先编写脚本如下:
vim secure_ssh.sh #! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /home/sxdgy/lastb for i in `cat /home/sxdgy/lastb` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` if [ ${#NUM} -gt 1 ]; then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ];then echo "sshd:$IP:deny" >> /etc/hosts.deny fi fi done
然后给脚本附上执行权限,再加入到自动任务中,根据自身情况设置好执行间隔:
chmod u+x secure_ssh.sh vim /etc/crontab #在末尾加上自动任务,一小时执行一次 01 * * * * root /root/secure_ssh.sh
保存退出,等到触发时间到了就可以看到已经在/etc/hosts.deny文件中加入许多拒绝的IP:
cat /etc/hosts.deny sshd:103.110.96.41:deny sshd:103.207.39.202:deny sshd:103.230.240.193:deny sshd:103.58.116.8:deny sshd:104.248.224.156:deny sshd:109.248.9.9:deny sshd:110.185.166.137:deny sshd:112.85.42.102:deny sshd:112.85.42.150:deny
转载请注明:零五宝典 » 根据ssh远程登录错误次数自动限制IP/防止ssh暴力攻击