◆孫曉林 張新剛
(1.南陽師范學院網絡管理中心 河南 473061;2.南陽師范學院計算機與信息技術學院 河南 473061)
基于Nginx的網站安全優化方案
◆孫曉林1張新剛2
(1.南陽師范學院網絡管理中心 河南 473061;2.南陽師范學院計算機與信息技術學院 河南 473061)
數字化智慧校園的發展,高校的辦公、科研、管理都更加數字化、智能化,應用系統和各類網站都不斷增加。然而,高校網站存在數量大、網站制作技術不統一等問題,引起管理不便,安全隱患也隨之而來。使用Nginx反向代理技術,將網站服務器加以隱藏,使Internet用戶通過Nginx服務器訪問網站,從而增強了網站安全性。
Nginx;網站;安全;反向代理
隨著教育信息化的推進和數字化智慧校園的發展,高校網站和應用系統的數量都隨之增加,其中應用系統是高校內部教學、科研、管理的重要平臺,網站是高校面向社會的窗口[1]。2017年6月1日《網絡安全法》的頒布實施,校園網的安全性顯得更加重要。高效網站存在數量多、制作技術不統一等問題,成為黑客關注的重點,是網絡安全的重災區[2]。由于 Nginx具有反向代理的特點,可以使用戶通過Internet和Nginx服務器對網站進行訪問,從而增強了高校網站的透明性和安全性。
Nginx起源于俄羅斯,可以提供web代理、反向代理和電子郵件服務[3]。由于 Nginx具有性能高、并發性強、穩定性高、資源消耗低、易于配置等優點,在國內外已經得到廣泛的應用。目前國內的百度、騰訊、新浪等大型網站都使用Nginx作為服務器對外提供服務[4]。
Nginx的常用功能有:
(1)負載均衡:也就是把多臺服務器虛擬成一臺服務器對外提供服務, 每一臺服務器獨立對客戶請求進行回應[5],從而使大量的并發訪問成為可能,提高用戶訪問速度。
(2)搭建流媒體平臺:先使用Rtmp協議將視頻流推送到服務器,然后用戶進行點播,實現多個頻道的實時直播。
(3)反向代理:就是將Internet用戶的訪問請求,轉發至防火墻后的服務器,再把內網服務器的返回結果轉發給Internet的請求用戶[6]。對用戶來說,反向代理服務器是Internet用戶訪問內網服務的入口,從而使內網服務器的真實信息得到隱藏,加強了服務器及服務安全性。Nginx具有web緩存功能,當用戶第一次訪問某個頁面時將相關的css、jpg等靜態文件進行緩存,之后可以直接將緩存數據發送給用戶,從而降低數據庫負載,減少網絡延遲,提高用戶訪問的相應速度,增強用戶體驗感。Nginx還可以啟用高級URL策略和管理技術,從而使處于不同web服務器的頁面同時存在于同一個 URL下。總之,反向代理對外是透明的,Internet訪問者并不知道自己訪問的是一個代理[7]。
高校網站分三種:自行制作托管、自行制作獨立運行、站點內容管理系統統一制作托管。就安全性來說,站點內容管理系統能夠實現網站前后臺分離,安全性最高;其次是自行制作統一托管類網站,由于網站制作技術人員水平參差不齊,代碼中可能存在安全隱患;最不安全的是第二種。
對于自行制作托管網站,可以考慮歸類單獨放置管理,然后使用Nginx反向代理,既實現了同類網站統一域名訪問,又最大程度地保障其他網站的正常運行。
另外,由于各部門工作的實際情況,財務和圖書館等部門的網站和相關系統需要單獨放置,便于管理。但因為技術人員缺乏以及財力不足問題,安全防護措施不能防范到位,存在很大的安全風險。對于這種情況,使用Nginx進行反向代理,隱藏真實服務器信息,一定程度上能夠保護服務器的安全。
Nginx對操作系統環境沒有特定要求,可以在 windows或Linux系統進行部署。下面主要對 Nginx配置文件進行介紹,具體如下:
(1)反向代理核心配置代碼
其中,proxy_pass 后面是內部服務器上網站的訪問地址URL。URL后面的“/”有重要作用,加上“/”,Internet用戶訪問地址只是“www3.nynu.edu.cn”的絕對根路徑;相反,如果沒有“/”,則用戶訪問的URL要加上location中的匹配路徑。
此外,上述設置可以讀取至根目錄,即使http://192.168.10.21下有多級虛擬目錄,也不必一一進行配置,使用上述方法就可以實現所有子網站的訪問,如:http://www3.nynu.edu.cn/file/web1可以打開。
(2)多端口配置
(3)多域名配置
(4)安全設置
為了增強網站的安全性,Nginx的配置文件中增加以下設置。
禁止使用IP地址訪問:
server_name _; return 404;
禁止列出網站目錄:
autoindex off;限制某些類型文件的訪問權限:
限制可用的請求方法,只允許GET,HEAD和POST方法:
(5)緩存配置
為提高用戶訪問質量,對 Nginx緩存進行配置,緩存所用的硬盤空間40G,正常訪問狀態下緩存時間是3天,緩存數據5天無訪問則刪除。具體代碼如下:
以上設置實現了Nginx反向代理功能,并進行安全配置,進一步加強了網站的安全性。部署完成之后,對使用Nginx代理的網站進行測試,所有的安全設置都全部生效。由于緩存的設置,在高并發情況下,網站的訪問速度也明顯提升,增強了用戶訪問的舒適度。
通過Nginx反向代理服務器的配置,校內網站通過Nginx進行代理,網站所屬服務器信息得到很好地保護,加強了網站的安全性;通過對Nginx反向代理中安全和緩存設置,我校的網站安全性和訪問速度得到很好地解決。由于技術在不斷進步,要與時俱進,不斷學習,加強創新,進一步加強校園網的安全。
[1] 馮貴蘭,李正楠. Nginx反向代理在高校網站系統中的應用研究[J].網絡安全技術與應用,2017.
[2] 劉振昌,陳詩明,焦寶臣等.高校網站安全管理模式的探索與實踐[J].華東師范大學學報(自然科學版),2015.
[3] 高群凱.深入剖析 Nginx[M].人民郵電出版社,2013.
[4] 張宴.實戰Nginx:取代Apache的高性能Web服務器[M].電子工業出版社,2010.
[5] 任世宗,李潤知,張茜等.基于Nginx的可擴展負載均衡Web站點部署[J].中國教育網絡,2014.
[6] 車樹炎,黃銀瑞.反向代理技術在高校網站系統中的應用研究[J].電腦編程技巧與維護,2013.
[7] 雷明彬.反向代理技術在數字化校園中的應用[J].電腦與電信,2009.
南陽師范學院青年項目(QN2015012);河南省科技攻關項目(172102310702);河南省教育廳科技研究重點項目(17A520049,17A630046)。