LNMP---訪問控制

訪問控制

擴展:php

curl命令用法:nginx

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 顯示詳細的通訊過程

 

1、限制IP訪問:vim

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外,進行訪問會返回403curl

2)黑名單ide

deny 127.0.0.1;
deny 1.1.1.1;

訪問黑名單中的ip地址時,返回403,除外的正常返回url

2、限制某個目錄spa

限制/data目錄:3d

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;

 

3、限制某個目錄下的某些類型的文件

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表明沒有這個文件,可是沒有限制

4、限制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

5、限制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

相關文章
相關標籤/搜索