nginx安全:配置allow/deny控制ip訪問(ngx_http_access_module)


一,nginx中allow/deny指令的用途

1,

Nginx的deny和allow指令是由ngx_http_access_module模塊提供,

Nginx安裝默認內置了該模塊

2,

nginx訪問控制模塊:

想禁止哪個ip訪問就加上deny IP,

想允許哪個ip訪問就加上allow IP,

想禁止或者允許所有,則allow all或者deny all

 

3,常用的場景:

   測試站/后台/管理工具站 等,要注意添加ip地址限制

  說明:如果可以指定相應站點的端口,通過防火牆來進行限制則更安全一些

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,allow/deny指令的語法:

allow/deny address | CIDR | unix: | all

它表示,允許/拒絕某個ip或者一個ip段訪問.

如果指定unix:,那將允許socket的訪問。
注意:unix:是在1.5.1中新加入的功能。

在nginx中,allow和deny的規則是按順序執行的

可配置段:     http, server, location, limit_except

 

說明:

1,注意在使用指令時,

如果最后不添加deny all,則可能會允許上面列出ip之外的其他ip均可訪問

因為默認是allow all的,

如果只想禁止指定的ip訪問,只添加deny x.x.x.x 指令即可

 

2,如果安全規則想針對全站,放在server段內比較安全,

   如果只針對指定的目錄做限制,要注意檢查location的匹配

 

三,allow/deny的應用例子

1,只允許指定的ip訪問,禁止其他ip訪問

  allow 43.243.12.116;
  allow 122.53.54.55;
  deny all;

 

2,只禁止指定的ip訪問,其他ip都允許訪問

   deny 43.243.12.116;
   deny 43.241.242.243;
   allow all;

說明:allow all可以不添加

 

3,可以使用子網掩碼來指定一個ip地址段:

deny 43.243.12.116/24;

 

4,一個location例子:

location / {
  allow 192.168.13.0/24;
  allow 10.1.5.0/16;
  deny  all;
}

 

四,測試效果:

1,用curl測試:被deny后提示了403

[root@webserver ~]$ curl http://devwww.lhdtest.net/
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>openresty</center>
</body>
</html>

 

2,從瀏覽器查看:

看截圖:

 

五,查看nginx的版本 

[root@centos8 soft]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
nginx version: nginx/1.18.0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM