服务器怎么防止ssh暴力破解
主要原理是通过定时任务自动将攻击者 IP 添加至 /etc/hosts.deny
文件。
首先将自己的常用 IP 加入 /etc/hosts.allow
,防止误封。
添加一行 all:192.168.1.2:allow
,其中 192.168.1.2
换成自己现在的 IP 地址。
脚本 /usr/local/bin/secure_ssh.sh
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #!/bin/bash . /etc/profile . /root/.bash_profile cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list for i in `cat /usr/local/bin/black.list` 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 "all:$IP" >> /etc/hosts.deny /bin/systemctl restart sshd.service fi fi done
|
加入定时任务,每 1 分钟执行一次。
添加一行 */1 * * * * sh /usr/local/bin/secure_ssh.sh
即可。