linux网站dos攻击自动封15分钟,简单的shell脚本结合awk实现防止对web服务的dos攻击...

news/2024/5/10 22:34:50/文章来源:https://blog.csdn.net/weixin_36190910/article/details/116802572

一 实验环境

鄙人使用的是centos 6.8操作系统   需要安装iptables(常见的linux系统貌似都会自动安装iptables)这条可以忽略   awk也需要安装没有的话就用yum装下吧

当然最重要的是web服务 我这里使用的是apache  对日志进行分析  当然你也可以分析其他的日志嘛  只是拿web服务来当例子而已

二 脚本介绍

使用的机制主要是对日志进行切片   对日志段进行分析  并写进防火墙规则中

为什么使用awk  awk对文本处理速度比较快 而且语法相对简单

#!/bin/bash         (1)

while true           (2)

do

echo “`awk -v dateTime=”$datetimes”  ‘{if($1==dateTime){i=1}if(i==1){dateArry[$1]++}} \

END{for(j in dateArry){printf “%s %s\n”,j,dateArry[j]}}’ /var/log/httpd/access_log`” \

|  awk ‘{if($2>=20){system(“iptables -A INPUT -j REJECT -p tcp –dport 80  -s “$1)}}’

datetimes=`date +%y-%m-%d-%H-%M-%s`      (3)

echo “$datetimes” >> /var/log/httpd/access_log  (4)

sleep 30              (5)

done

(1)声明使用bash

(2)使用while循环

(3)datetimes=`date +%y-%m-%d-%H-%M-%s`   生成时间1.便于查看是什么时候产生的攻击2.相当于随机数避免产生重复

(4)将产生伪随机数写入到web服务的日志中

(5)这里可以自定义时间当然你也可以写到计划里边当然这一行也可以注释掉  (当然while循环也得注释掉如果你使用计划任务)当然我这里的30有点小你可以自己定制一下我主要是进行快速的测试

下面对awk部分进行分段分析

echo “`awk -v dateTime=”$datetimes

“‘{if($1==dateTime){i=1}if(i==1){dateArry[$1]++}} \   awk对日志文件进行分析 “↓” 对就是对小箭头指的这个文件如果第一个字段等于dateTime则开始计数 并赋予i一个值1  如果i=1  则对数组下标为dateArry[$1]的值进行+1

END{for(j in dateArry){printf “%s %s\n”,j,dateArry[j]}}’            /var/log/httpd/access_log`” \

END看到没有就在上边   等awk处理结束后  对处理的字段进行输出操作  遍历dateArry数组  输出IP地址(j 的值)和IP出现的次数( dateArry[j] 的值)

|  awk ‘{if($2>=20){system(“iptables -A INPUT -j REJECT -p tcp –dport 80  -s “$1)}}’

看到最上边的echo没有  使用echo输出awk的值传递给另一个awk进行iptables的写规则操作

当然我这里是测试20这个值也是太小了  你可以根据实际环境进行修改   如果 IP出现的次数( dateArry[j] 的值)这个值大于20就讲这个所对应的ip写入到防火墙的规则里  使用system()函数”   iptables -A INPUT -j REJECT -p tcp –dport 80  -s “$1 最后的 $1 输出IP地址(j 的值)就是将这个ip添加到拒绝的规则中

三 测试

运行脚本

3c8ce6380daa33c267ccb0e2e66a02de.png

疯狂刷新页面

3c8ce6380daa33c267ccb0e2e66a02de.png

查看日志

3c8ce6380daa33c267ccb0e2e66a02de.png

我刚开始故意等了一个疗程的

后边是几百条的日志信息

然后后查看防火墙规则

3c8ce6380daa33c267ccb0e2e66a02de.png

当我打开浏览器的时候他就这样了

3c8ce6380daa33c267ccb0e2e66a02de.png

原创文章,作者:wode,如若转载,请注明出处:http://www.178linux.com/74076

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

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

相关文章

解决网站快照内容被篡改跳转被挂马的问题

首先请各位网站运营者,检查下网站从百度点击进去,是否跳转到了恶意网站上了,直接输入网址则不会跳转的这个情况。再一个查看网站在百度里的首页快照是否是自身网站的内容,如果出现一些跟网站不相关的内容。 比如:恶意内…

【网站制作设计】建议这三个基本要求你一定要掌握!

做什么事情都要有一定的基本尺度来衡量自己,当然,在网站制作设计过程中,我们应该需要衡量网站制作基本标准,那网站建设到底应该符合什么样的标准呢?又有哪些掌握哪些可以使网站制作得更为完善呢?下面,我们重点一起来…

为在Windows Azure上的网站配置自定义域名

本篇体验给Windows Azure上的网站自定义域名,首先"CNAME"和"A记录"是必须了解的概念。 假设,在Windows Azure上的网站域名是:x.chinacloudsites.cn CNAME 通过CNAME,可以把诸如mywebiste.com, www.mywebsite.…

笔记篇-一些很牛×的网站

1.东方博宜 一个适合新手的C练习(做题)网站。 2.MC皮肤网站 这里为MC(Minecraft)玩家提供了许多皮肤。 3.Jetbrains 这里有比较常见的编程软件:Pycharm、IDEA、Rubymine。。。 4.清华大学镜像站 这里有linux系统的…

笔记篇-制作自己的个人网站(使用GithubPages)

本章将介绍如何创建自己的个人网站,并且确保你有一个Github账号。 1.创建网站 来到你的github个人主页,选择Repositories存储库。 选择New,新建一个存储库。 命名格式为:你的用户名.github.io。别的选项都保持默认,最…

nginx替换网站响应内容(ngx_http_sub_module)

为什么80%的码农都做不了架构师?>>> ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串,比如你想把响应内容中的‘ttlsa’全部替换成‘运维生存时间’,这个模块已经内置在nginx中,但是默…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

4个资源多到溢出来的在线网站,个个都是“上好佳”

现在人们对资源的需求很多,不管是图片资源还是电影、音乐、资源等。有需要就有对应的资源网站,如果你还没有好用的在线网站,可以看看下面的这些哦。一、图片——thestocks写文章总是找不到好看的、无版权的图片可用?这个网站已经帮…

IIS日志-网站运维的好帮手

对于一个需要长期维护的网站来说,如何让网站长久稳定运行是件很有意义的事情。 有些在开发阶段没有暴露的问题很有可能就在运维阶段出现了,这也是很正常的。 还有些时候,我们希望不断地优化网站,让网站更快速的响应用户请求&#…

《高扩展性网站的50条原则》

《高扩展性网站的50条原则》 基本信息 原书名:Scalability Rules: 50 Principles for Scaling Web Sites 作者: (美)Martin L.Abbott Michael T.Fisher [作译者介绍] 译者: 张欣 杨海玲 丛书名: 图灵程序设计丛书 出版社&#xff…

c++封装HTTP GET请求访问网站

运行环境&#xff1a;VS2013 功能&#xff1a;模拟浏览器访问百度 具体代码如下 #include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <sstream>#pragma comment(lib,"ws2_32.lib")int main() {//初始化配置WORD …

阻止某些网站打开调试就跳转

https://91mjw.com/&#xff0c;我想把视频地址扒出来单独播放&#xff0c;但是一打开调试就跳转。 https://www.cnblogs.com/jinyuu/p/11590343.html 测试页面&#xff0c;原理我还是不懂&#xff1a; <html> <title>打开调试就跳转</title> <style&g…

使用LAMP创建基于wordpress的个从博客网站

参考&#xff1a; http://blog.csdn.net/ck_boss/article/details/27866117 一、mysql配置1、安装mysqlyum install mysql-serverCentOS中已经默认安装&#xff0c;此步骤忽略。2、启动mysqlservice mysqld start3、登录mysql[rootjediael44 share]# mysql -u -root -p Enter…

GC日志分析工具网站

https://gceasy.io/gc-index.jsp 可以通过上传文件&#xff0c;也可以通过直接复制粘贴日志&#xff0c;进行分析。 堆分配&#xff0c;各个区域大小 GC停顿时间 GC过程分析 GC次数、GC时间统计值&#xff0c;最大值、最小值

程序员如何使用RSS订阅网站更新

很多国内程序员可能都有这种疑惑&#xff0c;去哪里看技术圈最新的消息&#xff1f;怎么知道厂都在用什么技术&#xff1f;做什么&#xff1f;怎么知道圈内最新的paper&#xff1f;怎么跟踪国内外技术大佬的博客&#xff1f; 如果你有上述这些疑惑&#xff0c;那么本文适合你读…

PHP——使用wordpress制作博客网站

1、wordpress软件下载地址&#xff1a;https://cn.wordpress.org/ 下载的wordpress程序可能和自己的php服务版本不配&#xff0c;运行报错如下&#xff1a; Your server is running PHP version 5.4.45 but WordPress 5.8 requires at least 5.6.20. 下载对应的wordpress版本或…

BeagleBone_Black常用网站及书籍

官方镜像地址 https://beagleboard.org/latest-images uboot 、kernel移植指导网站 https://www.digikey.com/eewiki/display/linuxonarm/BeagleBoneBlack TI官方SDK下载网站 适用于 AM335X Sitara™ 处理器的处理器 SDK http://www.ti.com.cn/tool/cn/PROCESSOR-SDK-AM335…

织梦自定义表单做网站在线留言

织梦自定义表单功能是十分强大的&#xff0c;用来做一些在线报名&#xff0c;在线留言&#xff0c;客户反馈等一些需要提交的后台的功能十分方便。操作起来也很简单&#xff0c;下面就一晴天做的一个在线留言功能为例&#xff0c;说下自定义表单怎样使用 1.登录织梦后台依次点击…

鼠标经过事件(onmouseover)

鼠标经过事件&#xff0c;当鼠标移到一个对象上时&#xff0c;该对象就触发onmouseover事件&#xff0c;并执行onmouseover事件调用的程序。 现实鼠标经过"确定"按钮时&#xff0c;触发onmouseover事件&#xff0c;调用函数info()&#xff0c;弹出消息框&#xff0c;…

一起来盘一盘,建站市场上主流的建站平台哪个更好用

自助建站系统的前身是CMS系统&#xff0c;在说自助建站之前&#xff0c;先一起聊聊CMS系统。 CMS是Content Management System的缩写&#xff0c;中文翻译过来是&#xff1a;"内容管理系统"。 在中国互联网的发展历程中&#xff0c;一直以来默默地为中国站长提供动…