Nginx安全加固,CentOS系統為例。
nginx的安全加固共分為:1,軟件信息。2,補丁安裝。3,模塊。4,防盜鏈。5,限制IP訪問。6,下載限制併發和速度。7,Nginx服務信息頭。8,控制超時時間。9,日誌設置。10,自定義錯誤信息。
1,軟件信息
nginx -v命令查看一下軟件的版本信息,以確定是最新版本或穩定的版本。防止老版本的一些漏洞。nginx -t命令檢查一下配置文件是否有誤,保證nginx的正常運行。
2,補丁安裝
nginx -v查看版本是否為最新版本或穩定版本,建議更新到最新版或穩定版。如果用老版本,則需要打上對應的補丁包。注意:補丁可能會影響業務系統的穩定性。
3,模塊
卸載不需要的nginx模塊,最大限度的將nginx加載的模塊最小化。進入nginx解壓後的目錄,命令./configure --help | less來查看模塊各個參數的說明,根據需求確定不使用的模塊。配置檢查時帶上禁用的參數即可,以autoindex(禁用目錄瀏覽功能)為例:
配置檢查完畢後,make && make install命令編輯安裝即可。
4,防盜鏈
防止其他網站盜鏈本網站資源,修改conf目錄下的nginx.conf配置文件,在http配置裡面添加代碼,如下圖
gif|jpg|png|swf|flv代表對哪些類型的資源進行限制,valid_referers none blocked後的網址表示白名單,不是從這個網址鏈接過來的都會定向到error.html頁面,也可以返回403。
5,限制IP訪問
對網站或敏感目錄的訪問IP進行限制,需要ngx_http_access_module,這個模塊在編譯安裝時會自動安裝。打開nginx.conf配置文件,配置如下:
deny後跟拒絕的ip,allow後跟允許的ip。如果deny跟all,則代表除了允許的ip外其它都禁止。
6,下載限制併發和速度
限制客戶端下載速度,保證服務器的負載正常。打開nginx.conf配置如下:(紅框中是需要添加的)
limit_conn_zone $binary_remote_addr zone=one:10m;意思為開闢一個大小10m名為one的內存,存儲鏈接的信息。limit_conn one 1;代表一個IP只能發起一個鏈接,one要和之前名相同,圖中箭頭所示。limit_rate 20k;代表限制的最大速度。
7,nginx服務信息頭
修改nginx服務信息頭內容,隱藏nginx版本信息。打開nginx的配置文件nginx.conf,在server下添加server_tokens off;選項。
8,控制超時時間
控制超時時間,提高服務器性能,降低客戶端的等待時間。打開nginx.conf配置文件,在http裡添加如下圖的配置,解釋請看註釋。
9,日誌設置
打開nginx的配置文件nginx.conf,去掉error_log和access_log前的#號。error_log來記錄錯誤日誌。access_log來記錄訪問日誌。access_log說明如下圖:
10,自定義nginx返回的錯誤信息
修改nginx配置文件nginx.conf,配置如圖信息,請根據http狀態碼執行編輯配置內容,圖如下::
當nginx狀態404時,則返回nginx的html目錄中的404.html文件的內容。當nginx狀態為500,502,503,504時則返回html下的50x.html文件的內容。錯誤信息可執行編輯。
--------------------------------------------------------------------------------------------------------------------------------------
tips:棗樹荒頭條號不定期分享關於網站滲透,信息安全,網絡安全,網絡運維等方面的知識。喜歡的請點一波關注。