防火墙脚本, 通过access.log 封锁IP

Bash代码  

  1. #!/bin/bash  
  2.   
  3. ACCCESS_LOG=/tmp/access.log  
  4. TIMEPOINT='24/May/2012'  
  5. BLACKLIST=/var/tmp/black  
  6. WHITELIST=/var/tmp/white  
  7. if [ ! -f ${BLACKLIST} ]; then  
  8.     touch ${BLACKLIST}  
  9. fi  
  10.   
  11. if [ ! -f ${WHITELIST} ]; then  
  12.     touch ${WHITELIST}  
  13. fi  
  14.   
  15. for deny in $(grep ${TIMEPOINT} ${ACCCESS_LOG} | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 30| awk '{print $2}')  
  16. do  
  17.   
  18.     if [ $(grep -c $deny ${WHITELIST}) -ne 0 ]; then  
  19.         echo 'Allow IP:' $deny  
  20.     iptables -D INPUT -p tcp --dport 443 -s $deny -j DROP  
  21.     iptables -D INPUT -p tcp --dport 80 -s $deny -j DROP  
  22.     continue  
  23.     fi  
  24.   
  25.     if [ $(grep -c $deny ${BLACKLIST}) -eq 0 ] ; then  
  26.   
  27.     echo 'Deny IP:' $deny   
  28.         echo $deny >> ${BLACKLIST}  
  29.         iptables -I INPUT -p tcp --dport 443 -s $deny -j DROP  
  30.         iptables -I INPUT -p tcp --dport 80 -s $deny -j DROP  
  31.     fi  
  32. done  

 

时间: 2024-10-24 13:21:56

防火墙脚本, 通过access.log 封锁IP的相关文章

Linux下查看access访问日志IP统计命令

查看 access.Log 文件ip统计 cat access.log |awk '{print $1}'|uniq -c |sort -k1,1nr 去掉r则从高到低 cat access.log |awk '{print $3}'|sort|uniq -c|sort -rn|wc -l 以前用过简单的统计下IP,似乎不怎么准确,后来已经用 awstats 就没用过他了

将access.log 访问最高的IP加入到防火墙黑名单中

#!/bin/bash   ACCCESS_LOG=/tmp/myid.access.log TIMEPOINT='23/May/2012' BLACKLIST=/var/tmp/black WHITELIST=/var/tmp/white if [ ! -f ${BLACKLIST} ]; then     touch ${BLACKLIST} fi   if [ ! -f ${WHITELIST} ]; then     touch ${WHITELIST} fi   for deny in

TCP Wrappers防火墙介绍与封锁IP地址的方法_服务器其它

Tcp_Wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables,linux默认都安装了此软件,作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护,iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行,免遭攻击和破坏.如果通过了第一层防护,那么下一层防护就是tcp_wrappers了,通过Tcp_Wrappers可以实现对系统中提供的某些服务的开放与关闭.允许和禁止

linux中如何编写防火墙脚本

防火墙脚本实际上就是个shell脚本,使用shell脚本来设置防火墙策略的优点在于: 可以预先加载一些必要的内核模块.设置环境参数: 可以使用变量和灵活控制程序结构,便于脚本文件的重用和移植. 常见的防火墙脚本通常包括以下部分 1.设置网段.网卡.IP地址等变量 将防火墙主机的网卡.IP地址.区域网段.iptables命令的路径等定义为变量,便于对脚本程序的维护和移植使用. 2.加载包过滤相关的内核模块 在防火墙脚本文件中预先加载需要用到的内核模块,以确保用户设置的防火墙规则能够正常工作. 本文

MSSQL-应用案例-SQL Server 2016基于内存优化表的列存储索引分析Web Access Log

问题引入 在日常的网站运维工作中,我们需要对网站客户端访问情况做统计.汇总.分析和报表展示,以数据来全面掌控网站运营和访问情况.当不可预知的意外情况发生时,我们可以快速发现问题以及采取相应的措施.比如:当网站受到黑客攻击时的流量陡增,又或者是网站某个资源发生意外抛异常等情况. 在提供Web服务的服务器上,比如IIS.Apache都存在访问日志记录,这篇是文章是以SQL Server 2016基于内存优化表的列存储索引来分析Apache Web Access Log为例,讲解分析网站访问情况,因此

tomcat 和 jboss access log 日志输出详解

工作中nginx+jboss/tomcat反向代理集成,想打开后端jboss的access log, 配置在:/home/admin/wdetail/conf/tomcat-server.xml 开启日志将下面内容的注释去掉:            <valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap

解决Apache日志文件ACCESS.LOG日益膨胀的一个办法:

access|apache|解决 将httpd.conf中CustomLog logs/access.log common 改成 CustomLog "|c:/apache/bin/rotatelogs c:/apache/logs/%Y_%m_%d.access.log 86400 480" common 重启Apache 其中c:/apache/是你安装apache的路径这样每一天生成一个日志文件 

Shell脚本中通过正则表达式匹配IP地址

  这篇文章主要介绍了Shell脚本中通过正则表达式匹配IP地址,本文直接给出实现代码,需要的朋友可以参考下 在运维场景下,我们经常需要在服务器上用正则表达式来匹配IP地址. shell和其它编程语言一样,也可以使用正则分组捕获,不过不能使用 $1或1这样的形式来捕获分组,可以通过数组${BASH_REMATCH}来获得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]} 下面以ip="121.0.2.2"为例,shell脚本代码如下(当然,你要做成更通用交互

使用 Map-Reduce 统计Web 服务器 access.log 日志文件

1.6. Map-Reduce 1.6.1. 使用 Map-Reduce 统计Web 服务器 access.log 日志文件     首先将web服务器access.log倒入到mongodb,参考 http://netkiller.github.io/article/log.html. 格式如下: { "_id" : ObjectId("51553efcd8616be7e5395c0d"), "remote_addr" : "192.