ubuntu20.04自动封禁恶意ip代码与设计思路

设计思路

  • 最近隐隐感觉服务器正在被攻击,查看下登陆失败记录,果然有几页失败记录,于是查了一晚上资料,写了份实操如下:
  • 防止服务器被暴力破解,给服务器添加脚本:每小时检查是否有登录失败的ip,如果有就封禁该ip
    • 首先通过以下命令,查看登陆失败超过4次的ip:
sudo lastb |awk '{print $3}'|sort |uniq -c|awk '{if ($1 > 4) print $2}'
  • 将以上的ip添加到ubuntu的ip黑名单下,黑名单文件为hosts.deny/etc目录下
  • 写一个能自动添加ip到黑名单文件的脚本,把脚本放在/home/xxx目录下,脚本代码如下:
#!/bin/bash

#登录失败次数大于10的ip
IP=$(sudo lastb |awk '{print $3}'|sort |uniq -c|awk '{if ($1 > 10) print $2}')
hostdeny=/etc/hosts.deny

for i in $IP
do
	#如果ip不存在黑名单文件中,则写入deny文件,避免重复写入
	if [ ! $(grep $i $hostdeny) ];then 
		echo "ALL: $i" >> $hostdeny
	fi
done
  • 给脚本设置每小时执行一次,在控制台输入代码,如下:
    • 脚本名为ssh_deny.sh,只能用bash运行
sudo crontab -e
#内容为每1小时执行一次脚本
* */1 * * * sudo bash /home/xxx/ssh_deny.sh
  • 输入以下代码,查看自动任务是否设置完毕:
sudo crontab -l
# 输出结果:
# #内容为每1小时执行一次脚本
# * */1 * * * sudo bash /home/xxx/ssh_deny.sh

# 搞定!

相关推荐

  1. ubuntu20.04自动恶意ip代码设计思路

    2024-03-16 13:00:05       43 阅读
  2. nginx恶意IP

    2024-03-16 13:00:05       30 阅读
  3. Ubuntu防火墙配置:如何黑客攻击源IP

    2024-03-16 13:00:05       35 阅读
  4. centos firewalld 某个ip

    2024-03-16 13:00:05       32 阅读
  5. 用go封装一下功能

    2024-03-16 13:00:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 13:00:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 13:00:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 13:00:05       82 阅读
  4. Python语言-面向对象

    2024-03-16 13:00:05       91 阅读

热门阅读

  1. 浅析MySQL中的ACID实现

    2024-03-16 13:00:05       36 阅读
  2. PHPadmin写shell的方法

    2024-03-16 13:00:05       34 阅读
  3. python爬虫

    2024-03-16 13:00:05       42 阅读
  4. 3 数据分析--Numpy

    2024-03-16 13:00:05       32 阅读
  5. C语言实现希尔排序

    2024-03-16 13:00:05       34 阅读
  6. springboot echarts

    2024-03-16 13:00:05       31 阅读