模拟解决DOS攻击的shell脚本

方法1:

#!/bin/sh

While true

do

awk ‘{print $1}’.access.log|grep –v “^$”|sort|uniq –c >/tmp/access.log

#netstat –an|grep EST|awk –F ‘[ :]+’ ‘{print $6}’|sort|uniq –c >/tmp/access.log 判断网络连接数

exec </tmp/access.log

while read line

do

ip=`echo $line|awk ‘{print $2}’`

count=`echo $line|awk ‘{print $1}’

if [$count –gt 100 ] && [ `iptables –L -n|grep “$ip”|wc –l` -lt 1 ]

then

iptables –A INPUT –s  $ip -j DROP

echo “$line is dropped” >>/tmp/droplist.log

fi

done

sleep 180

done

方法2:

#!/bin/sh

if [ $# -ne 1 ];then

echo "USAGE:$0 ARG"

exit

fi

ipt(){

awk ‘{print $1}‘ $1 |sort|uniq -c|sort -rn -k1 >/tmp/access.log

exec </tmp/access.log

while read line

do

ip=`echo $line|awk ‘{print $2}‘`

count=`echo $line|awk ‘{print $1}‘`

if [ "$count" -gt 100 -a `iptables -L -n|grep "$ip"|wc -l` -lt 1 ];then

iptables -I INPUT -s "$ip" -j DROP

echo "$ip" >>/tmp/ip_$(date +%F).log

fi

done

}

del(){

touch /tmp/ip_$(date +%F -d ‘-1day‘).log

exec </tmp/ip_$(date +%F -d ‘-1day‘).log

while read line

do

if [ `iptables -L -n|grep "$line"|wc -l` -le 1 ];then

iptables -D INPUT -s $line -j DROP

fi

done

}

main(){

while true

do

ipt $1

sleep 5

del

done

}

main $*

原文地址:https://www.cnblogs.com/liuhui-xzz/p/9484329.html

时间: 2024-08-06 23:31:17

模拟解决DOS攻击的shell脚本的相关文章

将DOS批处理文件转换为Shell脚本

将DOS批处理文件转换为Shell脚本 相当多的在PC上学习脚本的程序员都在运行DOS. 事实上, 残废的DOS批处理文件语言还是可以编写出一些比较强大的脚本来的, 虽然它们一般都需要借助于外部的工具. 所以说, 某些时候, 我们还是需要将老式的DOS批处理文件转换为UNIX shell脚本. 一般来说, 做这种事情并不困难, 因为DOS批处理文件操作不过是等价的shell脚本的一个受限子集. 表格 L-1. 批处理文件关键字 / 变量 / 操作符, 和等价的shell符号 批处理文件操作符 S

解决命令行执行shell脚本成功,但crontab执行失败

实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #!/bin/bash #author Liuyueming . /etc/profile #开始没有加这个环境变量 for i in {10..35} do n=`ifconfig|grep 10.13.0.${i}|wc -l` #循环取ip并计数 # echo `ifconfig|grep 10.

解决使用crontab执行shell脚本时出现乱码情况

自己编写了一个shell脚本来维护测试环境,使用了crontab调度让其定时执行,结果遇到了乱码问题,脚本在shell环境下直接运行没有问 题. 结论是crontab执行时不会携带用户的环境变量,缺失一些系统变量,碰到中文就乱码.需要在脚本里额外添加缺失的环境变量,针对中文问题,需要声明 LANG参数 在脚本开头增加:LANG="en_US.UTF-8"export LANG 设置的编码要和系统设置的一致,具体可以到/etc/sysconfig/i18n 查看对应的环境变量.

Linux下模拟多线程的并发并发shell脚本

分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环只能顺序一条一条执行的效率高非常多,在管理大批服务器时非常的实用.     以下脚本功能是通过scp(也可选rsync)向上千台服务器传更新包,脚本运行后同时在后台有50个scp进程向服务器传包.#!/bin/baship=`cat iplist.txt|grep -v "#"|awk '{print $1}'`   #过滤服务器IPdir='/usr/l

解决DOS攻击生产案例

提示: 根据web日志或者网络连接数,监控当某个ip并发数或者短时内PV达到100,即调命令封掉对应的ip,监控频率每隔3分钟.防火墙命令为:iptables -A INPUT -s 10.0.1.10 -J drop 解答: web,也可以分析日志,把单IP PV数高的封掉.按天定义PV=1000即封掉 #!/bin/bash while true do   awk '{print $1}' access.log|grep -v "^$"|sort|uniq -c > /tmp

(转自张戈博客)Linux系统防CC攻击自动拉黑IP增强版Shell脚本

(转自张戈博客) 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护. 前天写的Shell脚本是加入到crontab计划任务执行的,每5分钟执行一次,今天实际测试了下,可还是可以用的,但是感觉5分钟时间有点过长,无法做到严密防护.于是稍微改进了下代码,现在简单的分享下! 一.

shell脚本实践

    常见的shell脚本使用案例,从网上参考并自个修改后用于工作当中,除了在公司里面的wiki编写记录,在自个博客上还是有必要记录一下滴. 实战题1: 使用for循环在/oldboy目录下批量创建10个文件,名称依次为: oldboy-1 oldboy-2 ...... oldboy-10 答案: [[email protected]]# cat 1.sh #!/bin/bash for iin `seq 1 10` do [ ! -d /oldboy ] && mkdir /oldb

Java 调用 shell 脚本详解

这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的"陷阱"造成调用shell 脚本在某些特殊的场景下,有一些奇奇怪怪的bug. 大家且听我一一道来. 先看看网上搜索到的例子: [java] view plain copy package someTest; import java.io.BufferedReader; import java.io.IOException; im

php利用root权限执行shell脚本 (转)

转一篇博客,之前搞这个东西搞了好久,结果今天晚上看到了一篇救命博客,瞬间开心了...转载转载 利用sudo来赋予Apache的用户root的执行权限,下面记录一下: 利用PHP利用root权限执行shell脚本必须进行以下几个步骤:(所有步骤都是我亲自实验,若有不妥可指出,谢谢!) 1. 确定一下你的Apache的执行用户是谁.注:不一定就是nobody,我自行安装的httpd,我的Apache的用户就是daemon 2. 利用visudo为你的Apache执行用户赋予root执行权限,当然还有