LNMP---访问控制

原创
2019/10/20 21:45
阅读数 89

访问控制

扩展:

curl命令用法:

curl -v -A 'aaaaaspider/3.0' -e "1111"  -x127.0.0.1:80 discuz.tobe.com -I  
-A 指定user-agent  
-e 指定referer  
-x 指定访问目标服务器的ip和port 
-I 只显示 header信息,不显示具体的网页内容
-v 显示详细的通信过程

 

一、限制IP访问:

1)白名单

vim /etc/nginx/conf.d/discuz.tobe.com.conf

allow 127.0.0.1;  
allow 192.168.2.0/24;   允许此网段的ip访问,即白名单
deny all;

除了白名单中的ip外,进行访问会返回403

2)黑名单

deny 127.0.0.1;
deny 1.1.1.1;

访问黑名单中的ip地址时,返回403,除外的正常返回

二、限制某个目录

限制/data目录:

location /data/
    {
        allow 127.0.0.1;
        allow 192.168.1.0/24;
        deny all;
    }

curl -x127.0.0.1:80 discuz.tobe.com/data/ -I

 

因为只允许127.0.0.1和192.168.1网段的ip访问,所以使用246网段访问时返回403

curl -x192.168.246.128:80 discuz.tobe.com/admin.php -I   

allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;

 

三、限制某个目录下的某些类型的文件

location ~ .*(upload|image)/.*\.php$    #限制访问upload或image中的php文件
{
    deny all;
}

curl -x127.0.0.1:80 discuz.tobe.com/upload/add.php -I

返回403代表有限制了,无法访问

访问ssw下的php文件返回404代表没有这个文件,但是没有限制

四、限制user-agent(浏览器中的标识)

编辑虚拟主机配置文件:

vim /etc/nginx/conf.d/discuz.tobe.com.conf

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')
   {
       return 403;
   }

$http_user_agent是 /etc/nginx/nginx.conf主配置文件中log_format的变量

curl -A 'aaaaaSpider/3.0' -x127.0.0.1:80 discuz.tobe.com -I     配置文件中没有区分大小写,命令中包含了Spider/3.0,所以返回了403

curl -v -A 'aaaaaSpider/3.0' -e 'avd123' -x127.0.0.1:80 discuz.tobe.com -I   

-A 指定user-agent

-v 显示详细的通信过程

-e 指定referer

五、限制uri

$request_uri也是 /etc/nginx/nginx.conf主配置文件中log_format的变量

$request_uri  请求的链接,包括$document_uri和$args

http://discuz.tobe.com/forum.php?mod=viewthread&tid=1&extra=    

forum.php就是$document_uri

?后面的是参数

编辑虚拟主机配置文件

vim /etc/nginx/conf.d/discuz.tobe.com.conf

if ($request_uri ~ (abc|123|viewthread))   #包含了viewthread,会返回404
   {
       return 404;  #此处可以改成403,根据需求更改
   }

http://discuz.tobe.com/forum.php?mod=viewthread&tid=1&extra=     $args中包含viewthread,所以在判断时返回了404

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部