跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
Nginx 只允許內部IP訪問,禁止外部訪問。
資訊技術••約 2 分鐘•404 字

Nginx 只允許內部IP訪問,禁止外部訪問。

本文目錄共 2 節

某些服務須禁止對外訪問,僅限定內網訪問。把常用的兩個方法列出,雖然可利用防火牆配置,但避免意外產生時無法控管風險,會再額外限制一層增加攻擊者的困難度。

完整配置清單

方法一

把限制內容直接填入區塊最簡單的方式,適合用在單一站台。

location / {
#下方為允許連線的列表
deny 192.168.1.1;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 10.10.0.0/16;
#除上方列舉IP其他皆拒絕
deny all;

root /var/www/html/;
index index.php;
}

方法二

適合使用在平衡附載LB 上或是多個站台需的配置的服務上。

新增一個檔案 舉例:

vi /etc/nginx/conf/Internal_acc.conf
#只允許內部訪問IP清單
#下方為允許連線的列表
deny 192.168.1.1;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 10.10.0.0/16;
#除上方列舉IP其他皆拒絕
deny all;

接下來只在需要的地方 include 進設定檔即可,用方法一做為例子。

location / {

#只允許內部訪問IP清單
include conf/Internal_acc.conf

root /var/www/html/;
index index.php;
}

未來有額外站台需限制時只要添加 include 就可達成目標,修改訪問來源只需維護單一檔案即可。

include conf/Internal_acc.conf

注意事項:

  1. 當要更詳細的縮限 allow List 須包含所有會訪問的IP,舉例:對外IP。
  2. deny 前一定要加一個ip,否則直接跳轉到403,不往下執行了;如果403默認頁是同一域名下,會造成死循環訪問。
  3. allow的IP網段從小子網路遮罩到大子網路遮罩排列。
    如127.0.0.0/24,下面才能是10.10.0.0/16。
    24表示子網路遮罩:255.255.255.0
    16表示子網路遮罩:255.255.0.0
    8表示子網路遮罩:255.0.0.0
  4. deny all 結尾表示除了上面allow的其他都禁止。

參考來源

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。