shell 拒绝恶意连接脚本 centos7.x拒绝恶意连接脚本

1. crontab -l 脚本频率:

    */2 * * * * /bin/bash /home/shell/deny.sh

2. 脚本:

rm -rf /home/shell/ip_list
cat /var/log/secure | grep "Failed password for" | awk '{print$(NF-3)}' | sort | uniq -c > /home/shell/ip_list
#cat /var/log/secure | grep "Invalid user" | awk '{print$(NF-2)}' | sort | uniq -c > /home/shell/ip_list
# cat /var/log/secure | grep "Received disconnect from " | awk '{print$(NF-4)}' | awk -F: '{print$1}' | sort | uniq -c >> /home/shell/ip_list
DEFINE=20
cat /home/shell/ip_list | while read line
doIP=`echo $line | awk '{print$2}'`NUM=`echo $line | awk '{print$1}'`if [ $NUM -gt $DEFINE ];    thengrep $IP /etc/hosts.deny > /dev/null 2>&1if [ $? -gt 0 ]; thenecho "sshd:$IP:deny # ="`date +%s` >> /etc/hosts.denyfifi
done#封禁段时间的IP进行解封,如果解封时间小于日志文件生成周期,会出现重复封禁、解封情况。特别是有的系统不会按指定时间重新生成secure日志文件。暂未解决重复封禁IP问题
rm -rf /home/shell/list /home/shell/list1     #删除临时文件,如果有的话
TIMES=`date +%s`    #记录当前系统时间,用于跟已经封禁的IP进行对比
cat /etc/hosts.deny | grep "sshd" > /home/shell/list   #检查/etc/hosts.deny文件中是否有已经封禁的IP,如果有,则写入/home/shell/list文件,以供后面筛选
if [ $? -eq 0 ]     #如果上一条命令执行成功(即有被封禁IP),则执行后面的操作
thencat /etc/hosts.deny | awk -F'=' '{print$2}' | sed '/^$/d' > /home/shell/list1  #将所有已经封禁的IP信息进行过滤,过滤出时间信息,写入/home/shell/list1文件cat /home/shell/list1 | while read line    #通过while循环,依次读取时间信息doDATES=$[ TIMES-line ]           #将当前时间跟IP封禁时间进行运算if [ $DATES -ge 604800 ]            #如果封禁IP时间大于指定时间(这里是7天转换后的秒数),则继续执行后面的操作thenlines=` head -n 1 /home/shell/list `   #将符合解封时间的信息写入变量,方便后面删除# sed -i '/'"$line"'/d' /home/shell/list1   #删除时间信息临时文件,这条可要可不要,因为前面是通过while 循环依次读取,不会重复读取第一行sed -i '/'"$lines"'/d' /etc/hosts.deny /home/shell/list    #删除符合解封的IP记录。fidone
elseecho '没有需要解封的IP'exit 0
fi

 3. 使用时,注意编码问题,最好先在服务器建好脚本文件,然后粘贴进去

4.放入cron run即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Postman发送xml数据

启动Postman: 点击左上角的“New”,在弹出窗中选择HTTP: 选择POST方法: 点击Body: 选择raw: 在右侧的下拉列表中选择XML: 在下面的输入框中输入或者从其它地方拷贝XML文本:…

websocket学习

写在前面 新公司用到了websocket技术&#xff0c;所以这里学习下。 1&#xff1a;Java原生 1.1&#xff1a;maven <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.5.3</ver…

【高并发内存池】第一篇 项目简介及定长内存池

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

Android 实现三维空间坐标系(WebView与JS交互,支持多条曲线,可设置坐标轴翻转等)

全部代码已经上传&#xff0c;点击上方进行下载 支持多条曲线的绘制&#xff0c;可旋转拖动放大缩小 1.布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/…

plantuml最原始的主题如何设置

在startuml下一行添加 skin rose startuml skin rose:Hello world; :This is defined on several **lines**;enduml 效果如下&#xff1a; plantuml官网地址如下&#xff1a; ​​​​​​使用简单的文字描述画UML图的开源工具。轻松从简单的文字说明创建UML图。也有许多种可…

一键云端,AList 整合多网盘,轻松管理文件多元共享!

hello&#xff0c;我是小索奇&#xff0c;本篇教大家如何使用AList实现网盘挂载 可能还是有小伙伴不懂&#xff0c;所以简单介绍一下哈 AList 是一款强大的文件管理工具&#xff0c;为用户提供了将多种云存储服务和文件共享协议集成在一个平台上的便利性。它的独特之处在于&am…

赤壁

《赤壁》 作者&#xff0f;罗光记 烽火燃尽几多愁&#xff0c; 赤壁一战尽神州。 江山如画英雄梦&#xff0c; 青史长河泪满头。 战鼓擂破黄沙地&#xff0c; 剑气冲云碧空流。 万里长歌断肠夜&#xff0c; 古今多少壮心愁。

Unity中Shader矩阵的转置矩阵

文章目录 前言一、转置的表示二、转置矩阵三、转置矩阵的总结1、(A^T^)^T^ A2、(A B)^T^ A^T^ B^T^3、(kA)^T^ kA^T^ (k为实数)4、(AB)^T^ B^T^A^T^5、如果 A A^T^ 则称A为对称矩阵6、如果 AA^T^ I(单位矩阵)&#xff0c;则称 A 为正交矩阵&#xff0c;同时 A^T^ A^-1…

js制作九宫格抽奖功能

HTML代码&#xff1a; <div id"lottery"><div class"lottery-item">1</div><div class"lottery-item">2</div><div class"lottery-item">3</div><div class"lottery-item"&g…

【Flutter】设计原则(2)深入解析 SOLID 原则的应用

【Flutter】设计原则(2)深入解析 SOLID 原则的应用 文章目录 一、前言二、SOLID原则三、在 Flutter 中应用单一职责原则1. 专注单一功能的 Widget2. 提高代码可维护性四、在 Flutter 中应用开闭原则1. 利用多态和基类实现可扩展的 Widget2. 增强应用的可扩展性和灵活性五、在…

Elasticsearch同义词最佳实践

毫无疑问&#xff0c;使用同义词是搜索工程师工具箱中最重要的技巧之一。尽管新手有时会低估同义词的重要性&#xff0c;但几乎所有搜索系统都离不开它。与此同时&#xff0c;人们有时仍会低估与使用同义词相关的一些复杂情况和微妙情形&#xff0c;甚至高级用户也不例外。 用好…

复杂数据统计与R语言程序设计实验二

1、创建一个对象&#xff0c;并进行数据类型的转换、判别等操作&#xff0c;步骤如下。 ①使用命令清空工作空间&#xff0c;创建一个对象x&#xff0c;内含元素为序列&#xff1a;1&#xff0c;3&#xff0c;5&#xff0c;6&#xff0c;8。 ②判断对象x是否为数值型数据。 ③…

OpenGL 的学习之路-4(变换)

三大变换&#xff1a;平移、缩放、旋转&#xff08;通过这三种变换&#xff0c;可以将图像移动到任意位置&#xff09; 其实&#xff0c;这背后对应的数学在 闫令琪 图形学课程 中有过一些了解&#xff0c;所以&#xff0c;理解起来也不觉得很困难。看程序吧。 1.画三角形&am…

OpenCV入门2——图像视频的加载与展示一些API

文章目录 题目OpenCV创建显示窗口OpenCV加载显示图片题目 OpenCV保存文件利用OpenCV从摄像头采集视频从多媒体文件中读取视频帧将视频数据录制成多媒体文件OpenCV控制鼠标关于[np.uint8](https://stackoverflow.com/questions/68387192/what-is-np-uint8) OpenCV中的TrackBar控…

初试 jmeter做压力测试

一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试&#xff0c;他可以帮助我们发现系统中的瓶颈问题&#xff0c;减少发布到生产环境后出问题的几率&#xff1b;预估系统的承载能力&#xff0c;使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步…

mac无法向移动硬盘拷贝文件怎么解决?不能读取移动硬盘文件怎么解决

有时候我们在使用mac的时候&#xff0c;会遇到一些问题&#xff0c;比如无法向移动硬盘拷贝文件或者不能读取移动硬盘文件。这些问题会给我们的工作和生活带来不便&#xff0c;所以我们需要找到原因和解决办法。本文将为你介绍mac无法向移动硬盘拷贝文件怎么回事&#xff0c;以…

CTFSHOW 文件上传

web151 JS前端绕过 直接上传 png的图片马 然后抓包修改为php asystem("ls /var/www/html"); asystem("cat /var/www/html/flag.php"); web152 和151一样的方法也可以实现上传 asystem("ls /var/www/html"); asystem("cat /var/www/html…

Anaconda的安装使用及pycharm设置conda虚拟环境

1.python和包以及anaconda的概念关系 python “工人” 包 “工具” 环境 “工具箱” anaconda “放很多工具箱的大箱子” python等于工人这个好理解&#xff0c;就是编程需要用python来实现对应功能&#xff0c;即工人完成某项工程。 包等于工具&#xff0c;就是工人…

YOLOv8-Seg改进:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023

🚀🚀🚀本文改进:一种极简的神经网络模型 VanillaNet,支持vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11等版本,相比较yolov8-seg各个版本如下: layersparametersgradientsGFLOPsvanillanet_521230017523

Excel vlookup 如何使用

Excel vlookup 如何使用 打开WX, 搜索 “程序员奇点” Excel vlookup可以说是利器&#xff0c;非常好用的工具&#xff0c;用来查询 Excel 或者进行数据匹配&#xff0c;十分方便。 VLookuP 如何使用&#xff0c;不常用的同学经常容易忘记&#xff0c;这次做个记录&#xff…