首页 > 其他分享 >如何封禁IP和IP段 看完这篇我会了

如何封禁IP和IP段 看完这篇我会了

时间:2023-10-12 12:08:31浏览次数:37  
标签:封禁 deny 配置文件 IP 这篇 nginx conf ip


1、写在前面

Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等。在之前的文章中,我们已经介绍了Nginx提供的这些功能。今天,我们来介绍Nginx另一个强大的功能:禁用IP和IP段。

2、禁用IP和IP段

Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下:

deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

如果规则之间有冲突,会以最前面匹配的规则为准。

配置禁用ip和ip段

下面说明假定nginx的目录在/usr/local/nginx/。

首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。

deny 1.2.3.4;
deny 91.212.45.0/24;
deny 91.212.65.0/24;

然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置:

include blockips.conf;

保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的:

/usr/local/nginx/sbin/nginx -t

如果配置没有问题,就会输出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。

/usr/local/nginx/sbin/nginx -s reload

仅允许内网ip

如何禁止所有外网ip,仅允许内网ip呢?

如下配置文件

location / {
  # block one workstation
  deny    192.168.1.1;
  # allow anyone in 192.168.1.0/24
  allow   192.168.1.0/24;
  # drop rest of the world
  deny    all;
}

上面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。

格式化nginx的403页面

如何格式化nginx的403页面呢?

首先执行下面的命令:

cd /usr/local/nginx/html
vi error403.html

然后输入403的文件内容,例如:

<html> 
<head><title>Error 403 - IP Address Blocked</title></head> 
<body> 
Your IP Address is blocked. If you this an error, please contact binghe with your IP at [email protected]
</body> 
</html>

如果启用了SSI,可以在403中显示被封的客户端ip,如下:

Your IP Address is <!--#echo var="REMOTE_ADDR" --> blocked.

保存error403文件,然后打开nginx的配置文件vi nginx.conf,在server配置节内添加下面内容。

# redirect server error pages to the static page
 error_page 403 /error403.html;
 location = /error403.html {
         root html;
 }

然后保存配置文件,通过nginx -t命令测试配置文件是否正确,若正确通过nginx -s reload载入配置。

PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦

标签:封禁,deny,配置文件,IP,这篇,nginx,conf,ip
From: https://blog.51cto.com/zhongmayisheng/7825243

相关文章

  • 记一次Redis Cluster Pipeline导致的死锁问题
    作者:vivo互联网服务器团队-LiGang本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面,最终确认是因为使用了clusterpipeline模式且没有设置超时时间导致死锁问题。一、背景介绍RedisPipeline是一种高效......
  • 太厉害了,终于有人能把TCP/IP协议讲的明明白白了
    一图看完本文1、计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。2、TCP/IP基础1.TCP/IP的具体含......
  • kali linux 设置固定IP
    1.修改文件/etc/network/interfaces┌──(kali㉿kali)-[~]└─$sudovi/etc/network/interfaces#Thisfiledescribesthenetworkinterfacesavailableonyoursystem#andhowtoactivatethem.Formoreinformation,seeinterfaces(5).source/etc/network/in......
  • 记一次Redis Cluster Pipeline导致的死锁问题
    作者:vivo互联网服务器团队-LiGang本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面,最终确认是因为使用了clusterpipeline模式且没有设置超时时间导致死锁问题。一、背景介绍RedisPipeline是一......
  • noip赛前20天冲刺集训 day2 ###寻找有向图中的最小疲惫路径###
    T1###寻找有向图中的最小疲惫路径###题目描述有一张n个点m条边的有向图,每条边上有一个正整数边权,你要顺着图上的有向边从1号点走到n号点。假设你经过的边边权依次为(w_1,w_2,\dots,w_t),则你的疲惫程度为\[\f(w)=\max_{i=1}^{t}w_i\timesi\,.\]你需要找到最......
  • 【noip赛前20天冲刺集训 day3】矩阵挑战
    NOIP比赛前的冲刺训练-第3天:矩阵挑战问题描述您有一个n×m矩阵,行编号从0到n−1,列编号从0到m−1。最初,第i行第j列的元素是i*m+j。系统支持三种类型的操作:交换两行。交换两列。交换两个特定的元素。任务是确定执行q次操作后矩阵的状态。输入格式为了最小化输......
  • 在JavaScript中,最高效的方法来深度克隆一个对象是什么?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,最高效的方法来深度克隆一个对象是什么?将JavaScript对象进行深度克隆的最有效方法是什么?我见过使用obj=eval(uneval(o));,但这是非标准的做法,仅被Firefox支持。我曾尝试过obj=JSON.parse(JSON.stringify(o));,但对效率......
  • JavaScript Library – YouTube Embedded、YouTube Player API、YouTube Data API
    YouTube EmbedVideo参考: Embedvideos&playlists它和 GoogleMapsEmbed 类似,是通过iframe完成的。<iframewidth="800"style="aspect-ratio:16/9"src="https://www.youtube.com/embed/vEZCoe9GJFk"title="粉色海洋"......
  • 2023NOIP A层联测9
    A.长春花简单题。打表发现情况并不多,记录下平方后模\(p\)对应的值,然后枚举\(a\),用链表维护即可。点击查看代码#include<bits/stdc++.h>usingll=longlong;usingull=unsignedlonglong;inta[100005],b[100005],p,ans,mx;boolvis[100005];std::list<int>l;std::st......
  • 20231010NOIP训练赛
    20231010NOIP训练赛时间安排7:50-8:10写T18:10-8:40写T29:40-10:40写T310:40-11:50写T4总结没时间写T5,T4和T3没写对题解T1简单题,用两个桶记录一下,然后再做两遍前缀和T2二分+哈希T3分组背包T4双指针+动态开点的值域线段树T5建图之后发现是内向基环树森林,对于......