#!/bin/sh

##Author:bbzsxjj

##Email:bbzsxjj@163.com

##Usage:auto deny ip by iptables

##Ver:1.0

timenow=`date +'%H%M00'`

timelast=`date +'%H%M00' -d '-5min'`

lastnum=1000000  ##日志的行数,可以根据自己的业务频率选取

limitnum=3000      ##并发限制,300*10

ipbin=/sbin/iptables

NeedDenyiplist=/opt/sbin/ipdeny.list

NeedPurgeiplist=/opt/sbin/ippurge.list

LogFile=/data/logs/haproxy.log

CreateList(){

if [ -f ${LogFile} ]

then

if [ -f ${NeedDenyiplist} ]

then

mv ${NeedDenyiplist} ${NeedPurgeiplist}

fi

tail -n${lastnum} ${LogFile}|awk '{gsub(/:/,"",$3);if($3>='${timelast}' && $3<='${timenow}'){a[$6]++}}END{for(i in a){if(a[i]>'${limitnum}'){print $6}}}' >>${NeedDenyiplist} ##这里需要根据日志的格式进行处理,具体的需要根据实际情况修改处理方法

if [ `wc -l ${NeedDenyiplist}|awk '{print $1}'` -eq 0 ]

then

rm -rf ${NeedDenyiplist}

fi

fi

}

DenyIP(){

for Dip in `cat ${NeedDenyiplist}|grep -E -v '^$|#'`

do

${ipbin} -I INPUT -s  ${Dip} -p tcp --dport 80 -j DROP

done

}

PurgeIP(){

for Dip in `cat ${NeedPurgeiplist}|grep -E -v '^$|#'`

do

${ipbin} -D INPUT -s  ${Dip} -p tcp --dport 80 -j DROP

done

}

main(){

CreateList

if [ -f ${NeedPurgeiplist} ]

then

PurgeIP

fi

if [ -f ${NeedDenyiplist} ]

then

DenyIP

fi

}

main

linux服务器禁ip策略,Linux服务器自动封禁访问异常的IP脚本(一)相关推荐

  1. Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

    前言:由于公司前几天短信接口被一直攻击,并且攻击者不停变换IP,导致阿里云短信平台上的短信被恶意刷取了几千条,然后在Nginx上对短信接口做了一些限制 临时解决方案: 1.查看Nginx日志发现被攻击 ...

  2. Nginx自动封禁可疑Ip

    文章目录 一.Nginx封禁ip 1.简介 2.nignx 禁止IP访问 2.1 方法一 2.2 方法二 3.关于 deny 的使用 二.脚本自动封禁Ip 1.流程介绍 2.脚本实战 2.1 核心脚本 ...

  3. Nginx自动封禁IP

    个人网站总被攻击?那就写个自动封禁IP的脚本吧. 思路 AWK统计access.log,记录每分钟访问超过100次的ip,然后配合nginx进行封禁. 编写shell脚本. 定时任务跑脚本. 好,思路 ...

  4. Ngnix IP封禁以及实现自动封禁IP

    1.在ngnix的conf目录下创建一个blockip.conf文件 2.里面放需要封禁的IP,格式如下 deny 1.2.3.4; 3.在ngnix的HTTP的配置中添加如下内容 include b ...

  5. Linux网络遭到攻击后是如何实现封禁IP的

    通过 netstat 获取攻击者 IP 如果你是被攻击的 Web 服务的话,默认是80端口,我们就可以使用下面的代码,如果攻击的不是80端口的话,将下面的两个数字80改为你被攻击的端口即可.如果你需要 ...

  6. 我的网站被攻击了,运维大佬给了我自动封禁ip的脚本。

    我的网站被攻击了,发现友圈最近出现这种情况的还不少,真是神奇了,这事也能扎堆发生. 分享出来给大家,万一以后用得着呢~ 故事背景 我的一个小网站最近总是收到云监控报警,一个部署在4核8G单机上的小网站 ...

  7. Linux完全清除防火墙策略,linux下的软件防火墙iptables——规则的查看与清除、定义默认策略,...

    linux下的软件防火墙iptables--规则的查看与清除.定义默认策略软件防火墙IPTABLES --规则在Linux下查看和清除,定义默认策略,防火墙意味着用户限制某些ip或用户对其主机的访问. ...

  8. java实现账号单一ip登录,使用Java实现简单后台访问并获取IP示例

    使用Java实现简单后台访问并获取IP示例 发布时间:2020-10-28 21:57:57 来源:亿速云 阅读:92 作者:Leah 使用Java实现简单后台访问并获取IP示例?针对这个问题,这篇文 ...

  9. 用iptables自动封连接数较大的IP防止CC***的方法 zt

    本文介绍的这种方法用于被动统计IP连接数,对连接数较大的IP用iptables封掉,如需主动限制,可参考通过iptables限制ip连接数防止CC***. Shell脚本如下: 代码如下: #!/bi ...

最新文章

  1. latex Label ' ' multiply defined
  2. linux ioctl 设备操作函数 r3到r0 应用层 驱动层 通讯
  3. mysql为什么没有nvarchar,关于mysql:为什么不将每个VARCHAR指定为VARCHAR(65535)?
  4. 前端学习(1524):ES6模块导入和导出
  5. 机器学习速成课程 | 练习 | Google Development——编程练习:Pandas 简介
  6. Nginx配置单项SSL以及双向SSL
  7. wss3.0 对文档库的一些操作
  8. python数据拟合
  9. 16.1 调色板的使用
  10. 【微信小程序】解决Echarts在微信小程序tab切换时的显示问题
  11. 三分钟了解域名怎么备案?
  12. 浅谈GOF设计模式之建造者模式(五)
  13. 三重积分平均值_质心计算
  14. C++中cout后面输出时加endl和不加endl的区别
  15. 《那些年啊,那些事——一个程序员的奋斗史》——07
  16. 全国大学生智能汽车竞赛图像采集处理上位机开源!
  17. 【技术】SQL动态排序?
  18. Word中设置不同页面的页眉不一样的方法(页脚、页码同理)
  19. 项目经理成功的五个关键因素
  20. RPA自动化软件汇总

热门文章

  1. (android实战)第三方应用反编译并修改UI信息后,重新编译
  2. VC里的project panel窗口如何实现(转载)
  3. [NOIp2013] 货车运输
  4. 数论基础之组合数计数问题
  5. discuz完善用户资料任务不能完成的解决方法
  6. 创建寄宿在Windows服务中的WCF服务
  7. CSS3 Transform变形理解与应用
  8. IIS7.5(IIS7)配置伪静态urlrewrite
  9. 艺街开放平台开源计划
  10. 大数据之-Hadoop3.x_MapReduce_切片源码总结---大数据之hadoop3.x工作笔记0105