前言

我们的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
评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

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

购买将消耗【10

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

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

2024年10月

新增

新增

新增

新增

新增

新增

新增

新增

新增

新增