Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx封禁IP和IP段

Nginx封禁IP和IP段

作者头像
行 者
发布于 2023-10-19 02:26:47
发布于 2023-10-19 02:26:47
56600
代码可运行
举报
文章被收录于专栏:运维技术迷运维技术迷
运行总次数:0
代码可运行

前言

在没有专业WAF的情况下,我们如果想要封禁一些恶意访问的IP(段),可以使用ngx_http_access_module模块来实现。

官方对此模块的解释:

The ngx_http_access_module module allows limiting access to certain client addresses.

指令语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax:    allow address | CIDR | unix: | all;
Default:Context:    http, server, location, limit_except


Syntax:    deny address | CIDR | unix: | all;
Default:Context:    http, server, location, limit_except

配置

配置conf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
    deny  192.168.1.1;
    deny  118.31.72.34;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;  # 如果最后不添加deny all,则可能会允许上面列出ip之外的其他ip均可访问,因为默认是allow all的。
}

每次都去修改conf文件着实不方便,也不太安全(手一抖玩意改错了,nginx就鸡鸡了。),我们可以把需要封禁的ip(段)单独拎出来写成一个conf文件,然后include到nginx.conf里面。

在适当的位置(我放到了/usr/local/nginx/conf/vhost下面)新建一个XXX.conf,比如blockip.conf,写入需要封禁的IP(段)并保存。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deny  192.168.1.1;
deny  118.31.72.34;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;

然后在nginx.conf中的http{}上下文中include blockips.conf;

配置保存之后,使用-t测试一下配置文件是否有误,没有问题的话就reload一下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hkcn2 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@hkcn2 conf]# /usr/local/nginx/sbin/nginx -s reload

测试封禁效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@iZeo6707793o09Z ~]# curl -I http://154.209.66.13/
HTTP/1.1 403 Forbidden
Server: openresty/1.15.8.3
Date: Tue, 14 Jul 2020 11:11:27 GMT
Content-Type: text/html
Content-Length: 159
Connection: keep-alive

如果封禁没有问题,则会返回403状态码。

自定义403页面

在/usr/local/nginx/html新建一个blockip403.html,适当的写一些文案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
<head><title>Error 403 - IP Address Blocked</title></head>
<body>
Your IP Address is blocked. If you this an error, please contact webmaster with your IP at webmaster@example.com
</body>
</html>

然后在配置文件中(server{}上下文中)使用上面自定义的403错误页面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 error_page   403  /blockip403.html;
 location = /blockip403.html {
         root   html;
 }

保存并检查无误后,reload一下,再次访问就看到我们自定义的403错误页面了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@iZeo6707793o09Z ~]# curl http://154.209.66.13/
<html>
<head><title>Error 403 - IP Address Blocked</title></head>
<body>
Your IP Address is blocked. If you this an error, please contact webmaster with your IP at webmaster@example.com
</body>
</html>

参考资料:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【详解】Nginx如何封禁IP和IP段?
在Web服务器的日常管理中,有时需要对特定的IP地址或IP段进行访问限制,以保护网站的安全。Nginx作为一个高性能的HTTP和反向代理服务器,提供了灵活的配置选项来实现这一需求。本文将详细介绍如何使用Nginx封禁单个IP地址和IP段。
大盘鸡拌面
2025/05/12
1740
【Nginx】如何封禁IP和IP段?看完这篇我会了!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
2.7K0
如何封禁IP和IP段?看完这篇我会了!!
Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等。在之前的文章中,我们已经介绍了Nginx提供的这些功能。今天,我们来介绍Nginx另一个强大的功能:禁用IP和IP段。
终码一生
2022/04/15
2.2K0
java架构之路-(五)nginx的安装和基本配置
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
小菜的不能再菜
2019/09/18
6990
nginx 详解 - 详细配置说明
打开官网 https://nginx.org/en/linux_packages.html#stable
solocoder
2022/04/06
5.2K0
nginx 详解 - 详细配置说明
12.14 Nginx访问控制
Nginx访问控制目录概要 需求:访问/admin/目录的请求,只允许某几个IP访问,配置如下: location /admin/ { allow 192.168.74.129; allow 127.0.0.1; deny all; } mkdir /data/wwwroot/test.com/admin/ echo “test,test”>/data/wwwroot/test.com/admin/1.html -t && -s reload curl -x127.0.0.1:80
运维小白
2018/02/06
3K0
利用Nginx 脚本自动拉黑IP,防止服务器被攻击
以上方式是手动添加ip,下面是实现使用ngnix自动封禁ip的功能 操作一: AWK统计access.log,记录每分钟访问超过60次的ip
高久峰
2023/09/28
1.5K0
nginx屏蔽ip
马哥linux运维 | 最专业的linux培训机构 ---- 采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走。 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现。 1.查找要屏蔽的ip awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n nginx.access.log 为日志文件, 会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip
小小科
2018/05/02
4.1K0
Nginx - 安全基线配置与操作指南
我们这里主要介绍针对Nginx中间件的安全基线配置指南,包括版本选择、用户创建、权限设置、缓冲区配置、日志管理、访问限制、错误页面处理、并发控制、补丁更新等方面。
小小工匠
2024/05/26
6690
Nginx屏蔽IP基本配置教程
采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走。
会长君
2023/04/26
2.3K0
Nginx虚拟主机、日志排错、模块配置
目录 Nginx虚拟主机 1. 基于多IP的方式 2. 基于多端口的方式 3. 基于多域名的方式 Nginx日志 Nginx配置文件配置项 Nginx模块 Nginx访问控制模块 Nginx状态监控模块 访问连接控制模块 Nginx虚拟主机 三种方式 1. 基于多IP的方式 # 防止其他配置文件影响,将所有配置文件压缩 [root@web01 conf.d]# gzip Mario.conf [root@web01 conf.d]# gzip chess.conf.gz [root@web01 c
HammerZe
2022/03/25
4500
Nginx虚拟主机、日志排错、模块配置
linux学习第四十六篇:Nginx防盗链,Nginx访问控制,Nginx解析php相关配置,Nginx代理
Nginx防盗链 vim /usr/local/nginx/conf/vhost/test.com.conf 配置如下,可以和上面的配置结合起来: location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names *.test.com ; //定义白名单 if ($invalid_re
用户1215343
2018/02/05
1.7K0
linux学习第四十六篇:Nginx防盗链,Nginx访问控制,Nginx解析php相关配置,Nginx代理
Nginx网站服务详解(一)
b、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
刘銮奕
2020/03/06
6170
Nginx网站服务详解(一)
学习笔记0516----nginx配置
在Nginx中也有默认虚拟主机,跟httpd类似,第一个被Nginx加载的虚拟主机就是默认主机,但和httpd不相同的地方是,它还有一个配置用来标记默认虚拟主机,也就是说,如果没有这个标记,第一个虚拟主机为默认虚拟主机。
嘻哈记
2020/11/24
1K0
Nginx 更多模块详解(十)
ngx_http_auth_basic_module模块 详细说明请参考官网 地址链接
咻一咻
2020/05/29
4900
Nginx防盗链,Nginx访问控制,Nginx解析php相关配置, Nginx代理
Nginx防盗链: vim /usr/local/nginx/conf/vhost/test.com.conf    = 默认虚拟主机配置防盗链 #防盗链核心配置 location ~* ^.+\.(
叶瑾
2018/06/14
7980
nginx学习
格式:proxy_cache_path path [levels=numbers] keys_zone=zone_name:zone_size[inactive=time] [max_size=size]
是小张啊喂
2021/08/09
4110
【Nginx16】Nginx学习:访问认证及过滤器模块
结束了 HTTP 核心模块的学习,我们就进入到了扩展模块,按文档顺序,我们先来了解的就是 访问限制 与 认证 相关的模块,此外,还有一个过滤模块。这几个模块还是非常有意思的,特别是过滤模块可以给返回的内容前后增加内容,非常像我们套模板时会分离出来的头尾模板一样。而认证类的则是 HTTP Basic 相关的内容,之前在学习 PHP 相关的小文章时也有过接触。总体来说,难度不大,赶紧玩起来吧。
硬核项目经理
2023/09/07
9730
【Nginx16】Nginx学习:访问认证及过滤器模块
Nginx 访问权限管理
前段时间,团队开放了组件库演示环境,由于存在一些小伙伴在外地办公(只能外网或者 vpn 到内网)。所以,为了安全考虑,设想是否可以通过 Nginx 做一些访问限制呢?当然,答案是肯定的。
奋飛
2019/08/14
3K0
Linux基础(day51)
12.13 Nginx防盗链 Nginx防盗链目录概要 配置如下,可以和上面的配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names *.test.com ; if ($invalid_referer) { return 403; }
运维小白
2018/02/06
1.4K0
Linux基础(day51)
相关推荐
【详解】Nginx如何封禁IP和IP段?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验