Linux 脚本分析IP并加黑名单

在日常使用中,我们经常会发现虽然改了端口,禁止了root的ssh登录权限。但是只要别人不懒的话,随便用工具扫描端口还是很容易扫描出来的之后你就会发现 你的机器无时不刻在有人尝试暴力破解。

我们可以通过 lastb查看历史登陆失败的记录

lastb #查看全部记录
#或者
lastb -n 30 #查看最新的30条记录

我们可以通过脚本将多次尝试登录,并失败的IP加入黑名单

脚本如下:/opt/black_host.sh

#!/bin/bash
#Denyhosts SHELL SCRIPT
# 分析登录日志文件,筛选失败登录并统计次数存入文件备用
cat /var/log/secure | awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"=" $1;}' >/root/Denyhosts.txt
# 定义允许失败登录的次数
DEFINE="10"
# 读取文件,并把条件范围内的IP写到hosts.deny中,实现黑名单效果
for i in `cat /root/Denyhosts.txt`
do
  IP=`echo $i|awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  if [ $NUM -gt $DEFINE ]
  then
    ipExists=`grep $IP /etc/hosts.deny |grep -v grep |wc -l`
    if [ $ipExists -lt 1 ]
    then
      echo "sshd:$IP" >> /etc/hosts.deny
    fi
  fi
done

黑名单文件位置为/etc/hosts.deny

我们可以创建一个计划任务

*/10 * * * * /bin/bash /opt/black_host.sh
#每10分钟会执行一遍

完成,至此你的机器安全更上一层。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容