首页 > 系统相关 >ubuntu20.04 自动封禁恶意ip的代码与设计思路

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

时间:2024-03-17 21:02:06浏览次数:28  
标签:ubuntu20.04 脚本 deny ip sudo print 封禁 bash

设计思路

  • 最近隐隐感觉服务器正在被攻击,查看下登陆失败记录,果然有几页失败记录,于是查了一晚上资料,写了份实操如下:
  • 防止服务器被暴力破解,给服务器添加脚本:每小时检查是否有登录失败的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

# 搞定!

标签:ubuntu20.04,脚本,deny,ip,sudo,print,封禁,bash
From: https://blog.csdn.net/u011453680/article/details/136759449

相关文章

  • 使用linux三剑客取ip地址
    1,使用awk命令ifconfigens33(先试用ifconfig来查看IP地址在几行几列或者使用ip-a也可以)可以看到IP地址在第二列第二行,接下来使用awk命令来取出IP地址ifconfigens33|awk'{print$2}'|awk'NR==2{print$0}'(print$2打印出第二列)(print$0打印出一整行内容)(NR等......
  • 如何查找访问 Nginx 的前 10 个 IP?
    在管理和维护Web服务器时,了解谁正在访问您的网站是非常重要的。Nginx是一个流行的Web服务器,通过分析其访问日志,您可以了解访问者的来源、频率以及他们的行为。有时候,您可能希望查找访问量最高的IP地址,以便进一步分析或采取措施,比如加强安全性或优化性能。本文将详细......
  • Vm物理机切换网络后虚机IP保持不变
    时都是用的桥接模式多。但是如果中途物理机变更网络环境后,会导致虚拟机里固定的IP也失效,使得Xshell等连接工具需要修改为最新可用地址才能用。解决方法如下:使用NAT模式VM-》编辑-》虚拟网络编辑器-》选中NAT模式(可能需要先点击更改设置才有权限调整)-》NAT设置-》配置网关IP(虚机......
  • JavaScript基础 —— 学习 第四天(完结)
    一、对象(一)对象介绍对象:object是JavaScript里面的一种数据类型可以看作一种无序的数据的集合可以详细的描述某个事物null是空对象对象是由属性和方法组成的属性:手机特征大小颜色什么的方法:能进行的一些行为手机打电话<body><script>let对象名={......
  • Eclipse中配置tomcat两种方式
    0.原始方法参考:war包部署到Tomcat下运行步骤将Eclipse中javaweb工程打成war包,放在tomcat目录的WebApp下进入bin目录下,双击startup.bat1.使用server配置tomcat1.1在下方的server一栏中,右键选择新建server1.2选择你的tomcat版本,并点击Configureruntimeenvironments进......
  • Dynamo PythonScript 代码速查手册By九哥
    你好,这里是BIM的乐趣,我是九哥今天给大家带来的是我的知识工程的第二套知识库,这套知识库不是教程,是一套完整的笔记,里面包含了大量的Python代码。当然这里也没有实现太多的具体逻辑,单纯的是通过Python在Dynamo中实现一些RevitAPI的方法,我的目的就是省事,写代码的时......
  • 保留IP地址/特殊IP地址
    保留IP地址/特殊IP地址IPv4地址块(CIDR)范围地址数效用域用途0.0.0.0/80.0.0.0–0.255.255.255224/16,777,216软件用于广播信息到当前主机。rfc170010.0.0.0/810.0.0.0–10.255.255.255224/16,777,216专用网络用于专用网络中的本地通信。r......
  • macos上远程windows 直接用内网IP 比 用pc电脑名,速度更快;
    若用计算机名字的话,需要先根据ARP等协议获取终端的内网IP,有时候这一步获取不到,会很慢,因为有防火墙等多种因素;解决方法:将要远程的电脑内网IP固定,在路由器里添加到静态IP;用内网IP连接;这样速度就很快了,省去了根据PC电脑名,寻找内网IP的过程;......
  • 新一代 Kaldi: 支持 JavaScript 进行本地语音识别和语音合成啦!
    简介新一代 Kaldi 部署框架 sherpa-onnx 支持的编程语言 API 大家庭中,最近增加了一个新成员: JavaScript。为了方便大家查看,我们把目前所有支持的编程语言汇总成如下一张图。注:这个家庭还在不断的扩充,总有一款适合你!后续我们会增加 Dart、Rust、WebAssembly 等支持......
  • opensips数据库配置及数据表简介
    操作系统:CentOS7.6_x64opensips版本:2.4.9MySQL版本:5.7.38一、添加mysql支持1、安装mysql依赖库安装命令如下:wgethttps://repo.mysql.com/mysql57-community-release-el7.rpmrpm-ivhmysql57-community-release-el7.rpmrpm--importhttps://repo.mysql.com/RPM-GPG-......