一,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