前言

我们的ssh登陆很可能会被人暴力破解, 所以我们需要防止这种事情发生.

不管是修改端口, 修改登陆用户名, 等等情况不能阻止别人暴力破解我们服务器.

而应对这种暴力破解我们只有监控登陆用户的行为, 然后根据登陆用户失败的次数来封禁该ip. 这也是我们的最后一道防线.

正文

防暴力破解脚本

我们只需要写一个脚本, 该脚本会提取/var/log/secure的登陆ip和失败次数. 只要失败次数超过一定限度我们就把该ip丢尽/etc/hosts.deny中进行封禁.

#! /bin/bash

#先提取secure文件中登陆失败的ip并记录个数, 然后写进blackList.txt文件中
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/sbin/blackList.txt

#遍历该文件内容
for i in `cat  /usr/local/sbin/blackList.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  #如果ip登陆失败超过20次,检查/etc/hosts.deny中是否已经包含了该ip
   if [ $NUM -gt 20 ];then
      grep $IP /etc/hosts.deny > /dev/null
    #如果没有被禁用, 我们就禁用, 并且记录日志, 方便自己查看
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
      echo "新增异常IP: $IP" >> /usr/local/sbin/secure_ssh.log
    fi
  fi
done

该脚本会检查ip失败登陆次数, 如果超过20次, 就会封禁该ip

crontab定时计划

只要配合crontab定时任务就能实现防止暴力破解的风险.

#每五分钟执行一次该脚本
echo "*/5 * * * * root bash /usr/local/sszas/script/prevents-brute-force-cracking.sh" >> /etc/crontab

总结

经过上面的步骤我们就能防止暴力破解, 不过这不是万能的, 为了安全, 我们应该修改端口, 并且禁止root账户登陆, 还应该使密码更复杂.

THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
注册
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增