购买海外 vps,很多是没有带安全组的,并且默认是 root 用户密码登录

直接就这么裸奔在公网,实际上是很危险的,看看一周内,这恐怖的 ssh 暴力破解

image-20230404094650041

1、防止 ssh 暴力破解

1.1 创建 shell 脚本

# 创建禁止ssh暴力破解脚本
vim /usr/local/bin/secure_ssh.sh

# 写入内容
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat  /usr/local/bin/black.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
# 登录错误次数超过5次,拉入黑名单
   if [ $NUM -gt 5 ];then
      grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

1.2 创建定时任务

# 编辑定时任务
crontab -e

# 加入定时执行防ssh暴力破解脚本,每分钟执行一次
*/1 * * * *  sh /usr/local/bin/secure_ssh.sh

1.3 查看一下被暴力破解的次数

# root @ ecs-kLU3K in ~/www [13:10:35]
$ wc -l /etc/hosts.deny
1572 /etc/hosts.deny

我的服务器才买一周,就 1572 这么多暴力破解的尝试,阔怕

2、使用公钥代替密码登录

3、禁止 root 用户直接登录

4、修改 ssh 的默认端口

安全是一个非常大的领域,上面的操作是一些很基础的操作,覆盖面也非常小

如果对你有用,请点赞和关注我哦

如果你有更多的服务器安全知识,欢迎留言补充
更多不错的文章,欢迎查看我的博客https://blog.huacai.one/


↙↙↙阅读原文可查看相关链接,并与作者交流