Nginx(九)访问控制之黑白名单

一    应用场景

黑名单能有效'防止某个IP恶意攻击'或者'拒绝特定IP'的访问

(1)特点

​备注:这个功能是'http_access_module'模块提供的

+++++++++++'分割线'+++++++++++

Nginx的deny和allow指令是'该模块'提供,Nginx安装默认'内置了'该模块

'除非'在安装时有指定 '--without-http_access_module'

功能: 用来对'特定IP'的进行访问控制

'默认是允许所有IP访问',若'部分允许'需要定义deny all

(2)指令

'allow'
语法: allow address | 'CIDR' | unix: | all;
默认值: —
区块: http, server, location, limit_except
允许'某个ip'或者'一个ip段'访问

+++++++++++'分割线'+++++++++++

'deny'
语法: deny address | 'CIDR' | unix: | all;
默认值: —
'区块': http, server, location, limit_except

+++++++++++'分割线'+++++++++++

注意: 区块,不同区块'作用范围'不一样

(3)所有网站屏蔽IP的方法

核心: 放到'http{}'里面

方式1

在nginx的配置文件夹中'/etc/nginx/conf.d'新建一个'黑白名单'的配置

例如: 如例子中的两个ip'就被禁止'访问网站

deny 172.25.2.200; --> '禁止该ip主机来访问'所有的资源

备注: deny 黑名单,allow白名单,'白名单'要写在'黑名单之前'才会起效

效果

注意: ip限制访问导致'403'

方式2

备注: 相当于'把配置读取'进去

方式3

直接'在http'进行全局设置

(4)单独网站屏蔽IP的方法

做法: 放到某一个'网站location{}'的语句块中
location / {
  deny  172.25.2.200;   '禁止某个ip访问'
  allow 172.25.2.0/24;  '允许一个网段'
  allow 2001:0db8::/32; 'ipv6'
  deny  all; 
}

(5)限制某些目录下的某些文件的访问

具体可以'自己组合' --> 禁止访问所有目录下的 'sql|log|txt|jar|sh|py' 后缀的文件
location ~.*\.(sql|log|txt|jar|war|sh|py|php) {
	deny all;
}

(6)其它方式

'防火墙'、'if指令'变量判断

参考博客

其它两个模块的方法

 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值