Linux運維Nginx軟體優化之安全優化
一、Nginx優化分類
安全優化(提升網站安全性配置)
效能優化(提升使用者訪問網站效率)
二、Nginx安全優化
2.1 隱藏nginx版本資訊優化
官方引數:
1 2 3 |
|
配置舉例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
include mime.types;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
測試結果:
1 2 3 4 5 6 7 8 9 10 |
|
2.2 修改nginx版本資訊
修改版本資訊需要修改程式原始檔資訊
修改核心資訊
1 2 3 4 5 6 |
|
修改頭部資訊
1 2 3 4 |
|
修改錯誤頁顯示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
修改完成後重新編譯
1 |
|
重啟服務
1 |
|
訪問測試是否修改成功
1 2 3 4 5 6 7 8 9 10 |
|
2.3 修改worker程序的使用者
第一種方法:利用編譯安裝配置引數,設定nginx預設worker程序使用者
1 2 |
|
第二種方式:編寫nginx服務配置檔案,設定nginx預設worker程序使用者
1 2 3 |
|
配置舉例:
1 2 3 4 5 6 |
|
檢視是否生效
1 2 3 4 |
|
2.4 上傳檔案大小的限制(動態應用)
預設語法說明:
1 2 3 |
|
舉例配置:
1 2 3 4 5 |
|
2.5 站點 Nginx站點目錄及檔案URL訪問控制
01. 根據目錄或副檔名,禁止使用者訪問指定資料資訊
1 2 3 4 5 6 7 8 9 10 11 12 |
|
02. 當訪問禁止的資料資訊時,進行頁面跳轉
Nginx下配置禁止訪問*.txt和*.doc檔案。
實際配置資訊如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
03. 根據IP地址或網路進行訪問策略控制
1 2 3 4 5 6 |
|
04. 採用if判斷方式,進行訪問控制
1 2 3 |
|
2.6 配置Nginx,禁止非法域名解析訪問企業網站
第一種方式:配置一個server虛擬主機區塊,放置在所有server區塊最前面
1 2 3 4 5 |
|
第二種方式:將計就計,通過你的域名訪問時候,自動跳轉到我的域名上
1 2 3 4 5 6 7 8 9 |
|
2.7 Nginx圖片及目錄防盜鏈解決方案
什麼是資源盜鏈 ?
簡單地說,就是某些不法網站未經許可,通過在其自身網站程式裡非法呼叫其他網站的資源,然後在自己的網站上顯示這些呼叫的資源,達到填充自身網站的效果。
實現盜鏈過程:
01. 真正的合法網站(盜鏈的目標) web01 www.oldboyedu.com www站點目錄有一個oldboy.jpg圖片
1 2 3 4 5 6 7 8 9 |
|
02. 不合法的網站(真正盜鏈網站) www.daolian.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
編寫盜鏈虛擬主機
1 2 3 4 5 6 7 8 |
|
至此就實現了盜鏈。
03 常見防盜鏈解決方案的基本原理
1) 根據HTTP referer實現防盜鏈
利用referer,並且針對副檔名rewrite重定向,下面的程式碼為利用referer且針對副檔名rewrite重定向,即實現防盜鏈的Nginx配置。
1 2 3 4 5 6 7 |
|
設定expires的方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
2) 根據cookie防盜鏈
3) 通過加密變換訪問路徑實現防盜鏈
4) 在所有網站資源上新增網站資訊,讓盜鏈人員幫你做推廣宣傳
2.8 NGINX錯誤頁面友好顯示
範例1:對錯誤程式碼403實行本地頁面跳轉,命令如下:
1 2 3 4 5 6 7 8 9 10 |
|
# 上面的/403.html是相對於站點根目錄html/www的。
範例2:50x頁面放到本地單獨目錄下,進行優雅顯示。
1 2 3 4 5 |
|
範例3:改變狀態碼為新的狀態碼,並顯示指定的檔案內容,命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
範例4:錯誤狀態碼URL重定向,命令如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
2.9 Nginx站點目錄檔案及目錄許可權優化
2.10 Nginx防爬蟲優化
範例1:阻止下載協議代理,命令如下:
1 2 3 4 5 |
|
範例2:新增內容防止N多爬蟲代理訪問網站,命令如下:
這些爬蟲代理使用“|”分隔,具體要處理的爬蟲可以根據需求增加或減少,新增的內容如下:
1 2 3 4 |
|
2.11 利用Nginx限制HTTP的請求方法
#Only allow these request methods
1 2 3 |
|
#Do not accept DELETE,SEARCH and other methods
2.12 使用普通使用者啟動nginx
1、切換到普通使用者家目錄下,建立nginx所需檔案
1 2 3 4 5 |
|
2、編寫配置檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
注意:普通使用者不能使用知名埠,需要使用其他埠啟動服務
3、檢查配置檔案語法,並啟動nginx服務
1 2 3 |
|
注意:忽略一些不正確的輸出資訊