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

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

3天内不再提示

Ngnix IP封禁以及实现自动封禁IP

马哥Linux运维 来源:CSDN-佞臣888 2023-02-21 09:43 次阅读

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

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

deny1.2.3.4;

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

includeblockips.conf;

102c80a8-b131-11ed-bfe3-dac502259ad0.png

重启 ngnix

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

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

103ca56e-b131-11ed-bfe3-dac502259ad0.png

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

1.AWK统计access.log,记录每分钟访问超过60次的ip,然后配合nginx进行封禁
2.编写shell脚本
3.crontab定时跑脚本

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

105247ca-b131-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重启一下配置既可

108387cc-b131-11ed-bfe3-dac502259ad0.png

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

    关注

    5

    文章

    1435

    浏览量

    148532
  • HTTP
    +关注

    关注

    0

    文章

    468

    浏览量

    30493
  • 文件
    +关注

    关注

    1

    文章

    541

    浏览量

    24470
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    23041
  • 脚本
    +关注

    关注

    1

    文章

    378

    浏览量

    14709

原文标题:Ngnix IP封禁以及实现自动封禁IP

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问如何实现固定mac在自动获取ip之前

    /forlinx/shell/mac.sh 结果:设备自动获取的ip还是一直变化,推测是固定mac这步操作在自动获取ip之后。请问如何实现
    发表于 01-13 07:05

    IP联盟_中国IP联盟_TSMC软IP联盟

    IP联盟是什么呢?本内容以百科的形式介绍了全球各种IP联盟,其中介绍了中国IP联盟的成立与起源和目的,TSMC软IP联盟计划的动态,以及全球
    发表于 09-12 16:15 3612次阅读

    为什么美国能封禁华为,中国却不能封禁苹果?

    美国对于华为的封禁已经持续了相当长的一段时间了,美国以各种手段对华为进行打压,以此来限制中国的发展。美国对于中国企业的封禁,并不仅仅只有这一次而已,早在之前美国就对中兴采取了制裁,向中兴收了天价
    的头像 发表于 07-01 08:56 5012次阅读

    美国宣称不在乎苹果销量,坚持封禁微信

    从目前的情况看,美国似乎并不会顾及苹果太多的感受,即便封禁微信可能带来iPhone销量的损失。
    的头像 发表于 08-16 10:54 2203次阅读

    巴基斯坦为什么封禁了 TikTok

    一旦 TikTok 整改成功,在巴基斯坦解封的机会还是有的。 继印度之后,TikTok,中国出海最为成功的 App,又被另外一个国家封禁了。 这一回,是印度的老邻居和老对头,巴基斯坦。 是的,你没有
    的头像 发表于 10-14 14:49 4949次阅读
    巴基斯坦为什么<b class='flag-5'>封禁</b>了 TikTok

    开源下片神器“youtube-dl”被官方封禁

    最近对于老司机们来说,有一个不得不关注的新闻——著名开源下片神器“youtube-dl”被GitHub官方封禁
    的头像 发表于 01-04 10:50 3979次阅读

    Facebook将无限期封禁美国总统特朗普帐号

    据报道,Facebook CEO马克·扎克伯格(Mark Zuckerberg)日前表示,Facebook将无限期封禁美国总统特朗普的帐号。有网友表示“特朗普也会被封号”“你号没了”。
    的头像 发表于 01-11 11:25 3147次阅读

    Twitter永久封禁特朗普账号后Twitter股价跌逾6%

    账号最近的推文以及这些推文的上下文之后,特别是审视了人们在推特上以及外部对这些推文的接受和解读方式之后,我们已经永久封禁该账号,因为存在进一步煽动暴力的风险。” 美国前国家安全顾问弗林(Michael
    发表于 01-12 13:14 541次阅读

    快讯:亚马逊回应封禁中国卖家账号 中国联通回应携号转网困难

    近日,亚马逊公司对关于封禁中国卖家账号一事作出了回应,称一共封禁约3000个中国卖家账号,中国卖家的账号涉嫌滥用客户的账号进行评论行为,造成的情节比较严重,才会作出暂停卖家账户的决定。
    的头像 发表于 09-17 14:35 2701次阅读

    如何建立一个动态的IP黑名单

    Nginx 通过 Lua + Redis 实现动态封禁 IPJava后端 3天前为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的
    的头像 发表于 10-12 09:15 2935次阅读
    如何建立一个动态的<b class='flag-5'>IP</b>黑名单

    马斯克明言将在完成收购Twitter后解除特朗普账号的封禁

    :Twitter对封禁账号这件事应该谨慎处理,而这次大会上,马斯克表示道:Twitter不应该存在永久封禁账号这一处罚,永久封禁应该是用来处理那些机器人、诈骗、垃圾信息账户的。马斯克还明确的表示他认为Twitter永久
    的头像 发表于 05-11 15:01 1182次阅读

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

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

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

    个人网站总被攻击?写个自动封禁IP的脚本给你!
    的头像 发表于 01-29 11:44 982次阅读