nginx 配置禁用ip地址訪問


做過面向公網WEB運維的苦逼們肯定見識過各種惡意掃描、拉取、注入等圖謀不軌行為吧?對於直接對外的WEB服務器,我們可以直接通過 iptables 、 Nginx 的deny指令或者是程序來ban掉這些惡意請求。

iptables 需要root權限配置

下面介紹使用nginx 來配置ip禁用

首選需要我們熟悉nginx 的deny指令

allow
語法:     allow address | CIDR | unix: | all;
默認值:     —
配置段:     http, server, location, limit_except

允許某個ip或者一個ip段訪問.如果指定unix:,那將允許socket的訪問.注意:unix在1.5.1中新加入的功能,如果你的版本比這個低,請不要使用這個方法。

deny
語法:     deny address | CIDR | unix: | all;
默認值:     —
配置段:     http, server, location, limit_except

禁止某個ip或者一個ip段訪問.如果指定unix:,那將禁止socket的訪問.注意:unix在1.5.1中新加入的功能,如果你的版本比這個低,請不要使用這個方法。

 

allow、deny實例

location / {
deny  192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny  all;
}

假如我們分析我們的網站被某個固定ip訪問 

219.143.33.50

219.143.33.52

219.143.33.54

 

只需要一下兩部搞定

1:配置需要屏蔽的ip的配置文件

下面說明假定nginx的目錄在/usr/local/nginx/conf

首先要建一個封ip的配置文件blockips.conf,然后vi blockips.conf編輯此文件,在文件中輸入要封的ip。

deny  219.143.33.50;
deny  192.168.1.110;

2:引入 ip配置文件,然后reload nginx

然后保存此文件,並且打開nginx.conf文件,在http配置節內添加下面一行配置:

include blockips.conf;

保存nginx.conf文件,然后測試現在的nginx配置文件是否是合法的:

 /usr/local/nginx/sbin/nginx -t

如果配置沒有問題,就會輸出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有問題就需要檢查下哪兒有語法問題,如果沒有問題,需要執行下面命令,讓nginx重新載入配置文件。

/usr/local/nginx/sbin/nginx -s reload

 

 

總結:后續再添加需要封的ip只需要收到的添加ip到 blockips.conf  然后reload nginx 即可

1:
/usr/local/nginx/conf/blockips.conf 添加ip
2:
/usr/local/nginx/sbin/nginx -s reload

以上是我個人總結的收到添加封ip 的簡單方式  

后續我會更新 自動掃描日志並添加ip到blockips.conf配置文件的 然后reload nginx 的腳步  敬請期待

 

文檔摘自以下帖子:

http://www.ttlsa.com/linux/nginx-modules-ngx_http_access_module/

http://outofmemory.cn/code-snippet/3393/nginx-deny-ip-or-deny-network-subnets

 


免責聲明!

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



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