0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

网站总被攻击?写个自动封禁IP的脚本给你

dyquk4xk2p3d 来源:CSDN-佞臣888 2023-01-29 11:44 次阅读

个人网站总被攻击?写个自动封禁IP的脚本给你!具体如下:

1.在ngnix的conf目录下创建一个blockip.conf文件

2.里面放需要封禁的IP,格式如下

deny1.2.3.4;

3.在ngnix的HTTP的配置中添加如下内容

includeblockips.conf;

8efa3542-96c4-11ed-bfe3-dac502259ad0.png

4.重启 ngnix

/usr/local/nginx/sbin/nginx-sreload

然后你就会看到IP被封禁了,你会喜提403;

8f04ef78-96c4-11ed-bfe3-dac502259ad0.png

小思考:如何实现使用ngnix自动封禁ip的功能

1.AWK统计access.log,记录每分钟访问超过60次的ip,然后配合nginx进行封禁

2.编写shell脚本

3.crontab定时跑脚本

好了上面操作步骤列出来了,那我们先来实现第一个吧

8f11205e-96c4-11ed-bfe3-dac502259ad0.png

操作一:AWK统计access.log,记录每分钟访问超过60次的ip

awk'{print$1}'access.log|sort|uniq-cd|awk'{if($1>60)print$0}'

1.awk'{print$1}'access.log 取出access.log的第一列即为ip。
2.sort|uniq-cd去重和排序
3.awk'{if($1>60)print$0}'判断重复的数量是否超过60个,超过60个就展示出来

操作二:编写shell脚本,实现整体功能(写了注释代码)

#不能把别人IP一直封着吧,这里就清除掉了
echo"">/usr/local/nginx/conf/blockip.conf

#前面最开始编写的统计数据功能
ip_list=$(awk'{print$1}'access.log|sort|uniq-cd|awk'{if($1>60)print$0}')

#判断这个变量是否为空
iftest-z"$ip_list"
then
#为空写入11.log中,并重新启动ngnix
echo"为空">>/usr/local/nginx/logs/11.log

/usr/local/nginx/sbin/nginx-sreload

else
#如果不为空前面加上deny格式和ip写入blockip.conf中
echo"deny"$ip_list>/usr/local/nginx/conf/blockip.conf

#因为前面携带了行数,所有我们需要去除掉前面的行数,写入后在读取一次
ip_list2=$(awk'{print$3}'/usr/local/nginx/conf/blockip.conf)

#最后再把读取出来的值,在次写入到blockip.conf中
echo"deny"$ip_list2";">/usr/local/nginx/conf/blockip.conf

#重启ngnix
/usr/local/nginx/sbin/nginx-sreload
#清空之前的日志,从最新的开始截取
echo"">/usr/local/nginx/logs/access.log

fi

操作三:使用crontab定时,来实现访问每分钟超过60的

直接实操吧:

crontab-e
*****cd/usr/local/nginx/logs/&&ship_test.sh每一分钟运行一次
systemctlrestartcrond.service重启一下配置既可
8f30285a-96c4-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1548

    浏览量

    148977
  • HTTP
    +关注

    关注

    0

    文章

    484

    浏览量

    30800
  • 代码
    +关注

    关注

    30

    文章

    4674

    浏览量

    67819
  • Shell
    +关注

    关注

    1

    文章

    359

    浏览量

    23203
  • 脚本
    +关注

    关注

    1

    文章

    382

    浏览量

    14765

原文标题:网站总被攻击?写个自动封禁 IP 的脚本给你

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    预防跨站脚本攻击(XSS)的方法

    跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意
    的头像 发表于 09-30 10:05 1529次阅读

    SCDN的抗CC攻击和抗DDoS攻击防护是什么?

    情报和安全策略,实现智能识别大规模攻击自动切换高防IP,实现对CC和DDoS的防御。而当节点未受攻击时,用户的资源请求可正常从SCDN节点获取,达到加速效果。这就是阿里云SCDN提供
    发表于 01-05 14:45

    面对外部恶意攻击网站,高防服务器如何去防御攻击

    企业QQ:2880269198 / 347397455随着互联网的迅猛发展,互联网环境越来越恶劣,恶意攻击也越来越多。无论是正规企业网站、游戏网站、购物网站还是旗牌室、娱乐
    发表于 05-07 17:00

    python脚本如何根据公网IP自动获取地址和天气信息?

    python脚本如何根据公网IP自动获取地址和天气信息?
    发表于 12-28 07:14

    cc攻击防御解决方法

    攻击ipcc攻击时服务器通常会出现成千上万的tcp连接,打开cmd输入netstat -an如果出现大量外部ip就是
    发表于 01-22 09:48

    网站攻击带来的危害

    的并发量3.使用CDN的访客访问的流程是访客---cdn----网站服务器如果检测到是攻击自动进行拦截清洗保护网站 加速访问 隐藏源服务器IP
    发表于 08-05 13:13 447次阅读

    网站攻击的危害

    的并发量3.使用CDN的访客访问的流程是访客---cdn----网站服务器如果检测到是攻击自动进行拦截清洗保护网站 加速访问 隐藏源服务器IP
    发表于 08-05 13:20 475次阅读

    如何判断网站是否CC攻击

    如何判断网站是否CC攻击 什么是CC攻击?CC就是模拟多个用户不停地进行访问那些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网
    发表于 01-30 15:22 410次阅读
    如何判断<b class='flag-5'>网站</b>是否<b class='flag-5'>被</b>CC<b class='flag-5'>攻击</b>

    一些安全的操作规范可以有效的避免网站攻击

    大家平时可能经常碰到网站攻击的情况,当网站攻击后,导致
    发表于 10-25 11:51 459次阅读

    网站网络攻击的常见形式都有哪些

    现在做网站的站长都有一个心里,网站攻击是在所难免的事,特别是一些比较热门的行业以及一些比较小的企业,更是被这些攻击整得焦头烂额。
    发表于 11-16 11:20 2871次阅读

    网站服务器攻击后如何查找木马篡改的痕迹

    很对客户网站以及服务器攻击,被黑后,留下了很多webshell文件,也叫网站木马文件,客户对自己网站的安全也是很担忧,担心
    发表于 01-14 15:23 1560次阅读

    网站被黑客攻击的两大因素分析处理

    2020年3月中旬,我们SINE安全收到客户的安全求助,说是网站攻击打不开了,随即对其进行了分析了导致网站
    发表于 03-23 14:24 1116次阅读

    如何使用符号执行的python实现攻击脚本分析平台

    对Python脚本的动态符号执行及路径探索,可以获得触发攻击的输入流量及相应的输出攻击载荷,以此实现对Python攻击脚本
    发表于 07-16 15:50 11次下载
    如何使用符号执行的python实现<b class='flag-5'>攻击</b><b class='flag-5'>脚本</b>分析平台

    攻防演练典型攻击手法及防御手段

    攻击方通过部署大量的自动化扫描来实施信息的快速收集,这些扫描大部分通过代理池、云函数服务来实施,以绕过防守方对扫描方IP封禁的操作。下图为通过某云函数来进行扫描,技术原理与代理池不同,
    的头像 发表于 10-25 09:54 2946次阅读

    ip脚本进化的解决办法

    上次给大家分享过一个封IP脚本。我搞那个脚本的目的是为了把访问量太大的IP地址给封掉,然后每隔半小时解封。
    的头像 发表于 06-11 17:03 567次阅读
    封<b class='flag-5'>ip</b><b class='flag-5'>脚本</b>进化的解决办法