博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IP地址自动封与解封的shell脚本
阅读量:6218 次
发布时间:2019-06-21

本文共 1541 字,大约阅读时间需要 5 分钟。

本脚本学习与阿铭的脚本课程。

用于防止公司网站被DDos攻击时,封禁“”肉机“” 的IP地址。
共分为以下步骤:
1、每分钟分析一次访问日志/data/logs/access_log。
2、把访问量超过100的IP给封掉。
3、将封过的IP地址全部记录到一个日志log中。
4、每隔一段时间检查一次被封的IP,将不在超过100的访问的IP解封。
5、解封的IP记录到另外的日志中。

#!/bin/bash#用途:防止DDos攻击,将访问量超过100的IP地址禁掉#作者:Caron maktini#日期:2018年10月17日#版本:v0.1t1='date -d "-1 min " +%Y:%H:%M'log=/data/logs/access_logblock_ip(){    egrep "$t1:[0-5]+ "  ¥log > /tmp/tmp_last_min.log    #把一分钟内访问量高于100的ip地址记录到一个临时文件中。    awk '{print $1}'  /tmp/_last_min.log | sore -n | uniq -c | awk '$1>100 {print $2}' > /tmp/bad_ip.list    #计算ip的数量    n=`wc -l /tmp/bad_ip.list | awk '{print $1}'`        #当ip数大于0时,才会用iptables封掉。    if [ $n -ne 0 ]    then         for ip in `cat /tmp/bad_ip.list`        do            iptables -I INPUT -s $ip -j REJCT        done            #将这些被封的ip记录到日志里       echo "`date` 封掉的ip有: "  >> /tmp/black_ip.log       echo /tmp/bad_ip.list  >> /tmp/black_ip.log   fi }unblock_ip (){    #首先将包括个数小于5的ip记录到一个临时文件里,把它们标记为白名单IP    iptables -nvL INPUT | sed '1d' | awk '$1<5 {print $8}' > /tmp/good_ip.list   n=`wc -l  /tmp/good_ip.list | awk '{print $1}'`    if [ $n -ne 0 ]    then         for ip in `cat  /tmp/good_ip.list`        do            iptables -D INPUT -s $ip -j REJECT        done        echo "`date` 解封的ip有:"  >>  /tmp/unblock_ip.log        cat   /tmp/good_ip.list  >> /tmp/unblock_ip.log    fi    #当解封完白名单ip后,将计数清零,进入下一个计数周期    iptables  -Z}#取当前时间的分钟数t=`date  +%M`#当分钟数内为00或者30时(即每隔30分钟),执行解封ip的函数,其他时间执行解封ip的函数。if [  $t  == "00" ] || [ $t == "30" ]then       unblock_ip       block_ipelse      block_ipfi

转载地址:http://hslja.baihongyu.com/

你可能感兴趣的文章
[20180627]truncate table的另类恢复.txt
查看>>
Android DataBinding数据绑定技术在传统ListView中的使用简例
查看>>
Android - 使用Volley请求网络数据
查看>>
情出所愿 事过无悔
查看>>
java实现office文件预览
查看>>
C# TextBox 焦点
查看>>
TCP协议解析
查看>>
Spark on Yarn 架构解析
查看>>
SqlServer建立存储过程,方便.NET插入自增字段
查看>>
Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
查看>>
千奇百怪的陆地机器人,都是怎么“跑”起来的?
查看>>
ODCC开放数据中心峰会即将召开 十道“技术大餐”提前揭秘
查看>>
深度学习机器学习:softmax和log_softmax区分
查看>>
公司环境搭建(windows10)
查看>>
给1~3年iOS经验朋友们的一些建议(附BAT面经)
查看>>
Kali Linux 网络扫描秘籍 翻译完成!
查看>>
Confluence 平台部署记录
查看>>
黑客与宕机
查看>>
漫谈深度网络的泛化,从Loss Surface到Deep Image Prior
查看>>
国内首个航旅大数据研究中心在沪成立
查看>>