◆宋 陽
(天津國土資源和房屋職業(yè)學院 天津 300270)
基于LAMP技術平臺搭建的Web安全服務器架構
◆宋 陽
(天津國土資源和房屋職業(yè)學院 天津 300270)
本文介紹LAMP技術平臺以及可以選用的技術組合方案,進而探討基于LAMP技術平臺搭建Web服務器的安全配置。
LAMP;架構;Web服務器;數據庫服務器;緩存服務器;安全配置
1.1 Linux操作系統(tǒng)
Linux是一種開源的操作系統(tǒng),它有著開放性、多用戶、多任務和豐富的網絡功能的特性,并且系統(tǒng)安全可靠、良好的移植性和用戶界面、標準的兼容性、出色的速度性能。世界上大部分網站都將Web服務器部署在Linux上,正是因為它的穩(wěn)定、安全、高效以及出色的性能。
1.2 Apache網頁服務器
Apache是非常流行的一款Web服務器軟件,受歡迎的原因是由于它良好的跨平臺性,幾乎在所有操作系統(tǒng)上都可以安裝使用它,再有就是它是一個開源的項目,擴展性很強,安全漏洞少,穩(wěn)定可靠。
1.3 MySQL關系型數據庫管理系統(tǒng)
MySQL是一種基于SQL語言的標準關系型數據庫系統(tǒng)。因其基于C和C++編寫,所以具有很強的可移植性。支持絕大多數操作系統(tǒng),跨平臺性強。為大多數流行的編程語言提供了API接口,因此程序員可以使用各種語言為其編寫數據庫連接程序。以上的諸多優(yōu)點和特性導致了它的用戶很多。
1.4 PHP網站服務器端腳本語言
PHP是一種服務器端解釋型腳本語言,由于其開源性的原因,使用者和維護者頗多,開放的框架和源碼文檔資源也很多,便于開發(fā)者學習和使用。它還具有面向對象的功能,我們可以使用PHP為Web站點編寫出更多高級動態(tài)功能,更高效的開發(fā)代碼。
通過以上介紹,我們知道了LAMP網站架構包括:Linux操作系統(tǒng)+Apache網絡服務器+MySQL關系型數據庫管理系統(tǒng)+PHP/Perl/Python解釋型腳本語言。因為LAMP平臺中所包含的軟件產品均是開源項目,意味著其免費使用的特性,所以開發(fā)維護者頗多,這樣就出現了很多第三方的成熟優(yōu)秀的免費框架資源供開發(fā)者使用,而且LAMP架構開發(fā)Web站點具有輕量、快速的特點,以及通用、跨平臺、高性能、低成本的優(yōu)勢,這些都是微軟的.NET架構無法比擬的。下面我對架構中的產品進行系統(tǒng)分析討論:
2.1 操作系統(tǒng)
Linux操作系統(tǒng)版本發(fā)布很多,每個版本都有其特色,我們在選用時首先要考慮其功能性要符合所建網站的規(guī)模和性能,其次還要考慮成本,因為有些Linux系統(tǒng)版本是企業(yè)級的,升級需要收費,這會大大增加建站成本,而往往這些版本中的很多功能是我們建站所用不到的,因此我們可以選擇一些免費的版本系統(tǒng)。一般情況下,中小型企業(yè)選用CentOS這個版本居多,它是Linux發(fā)行版之一,是RHEL/Red Hat Enterprise Linux的精簡免費版,和RHEL具有相同的源代碼,只不過重新編譯了,有很高的穩(wěn)定性。
2.2 Web服務器
Apache是Web服務器上發(fā)布網站用的軟件,其開源的特性使其運行時非常穩(wěn)定、安全。由于其模塊豐富導致其比較臃腫,運行時占用的硬件資源大,不可避免的損耗性能,所以我們在使用Apache的同時還可以考慮選用一些輕量級的服務器軟件輔助處理Web請求。具體的方案是我們可以使用Apache服務器來處理PHP腳本程序提交的動態(tài)數據,而使用Nginx輕量級服務器處理非PHP腳本程序提交的靜態(tài)頁面數據。Apache提供了兩種解決Web服務器緩存的方式,一種是使用Apache自帶的緩存模塊,另一種是外加Squid模塊進行緩存。加入Squid模塊其實是做一個Squid緩存服務器,單獨應對cache服務器緩存相關請求以此提高Web服務器的響應速度。隨著服務器數據訪問量變大,我們還可以考慮使用memcache做分布式高速緩存。
2.3 腳本代碼優(yōu)化
為了提高PHP腳本緩存性能,我們可以使用eAccelerator加速器,優(yōu)化動態(tài)內容緩存。加速器可以使PHP腳本在解釋狀態(tài)下,優(yōu)化腳本代碼,加快其執(zhí)行效率,對服務器的性能開銷完全消除。
3.1 Web服務器和PHP的安全性
Web服務器和PHP的安裝和配置是一個大的安全問題。在計算機和服務器上安裝的大多數軟件都有配置文件和默認的特性,這些都是用來“炫耀”軟件功能和可用性的。假設需要禁用軟件的某些不需要的或者安全性較低的功能選項。通常,人們不會考慮這么做,或者花費時間來正確處理它。作為考慮整體安全性的部分方法,我們需要確保Web服務器和PHP是被真正正確的配置。
3.1.1 保持軟件更新
提高系統(tǒng)安全性的一個最簡單辦法就是確保你所使用的軟件是最新和最安全的版本。對于PHP,Apache HTTP服務器,可以通過定期訪問這些網站,查看是否有安全建議,新的發(fā)布版本,以及與安全相關的缺陷修復的新特性。
3.1.2 查看php.ini文件
3.1.3 Web服務器配置
(1)Httpd服務器所有配置選項都保存在httpd.conf文件里,該文件存在于httpd基本安裝的/conf子目錄中。
(2)確認httpd不是以超級用戶權限執(zhí)行的。這可以通過httpd.conf文件下的“用戶和組”設置實現。
(3)確認Apache安裝目錄的文件權限是否正確設置。在UNIX系統(tǒng)中,這包括了文檔根目錄以外的所有目錄屬主都是“root”,并且具有755權限。
(4)確認服務器設置了正確的并發(fā)連接數。
(5)通過在httpd.conf引入適當的指令,隱藏一些不希望被看到的文件。
3.2 數據庫服務器的安全性
3.2.1 用戶和權限系統(tǒng)
花費一些時間來了解你選擇使用的數據庫服務器的用戶認證和權限系統(tǒng)。請確認所有賬戶都有密碼對于任何數據庫服務器,你要做的第一件事就是確保數據庫超級用戶具有密碼。許多數據庫將會以匿名用戶身份安裝,并且具有比你期望的更多權限。在了解和確認權限系統(tǒng)后,請確認任何默認賬戶的權限都是你期望的,刪除任何不是你所期望的權限。
3.2.2 發(fā)送數據至服務器
不要發(fā)送任何未經過濾的數據至服務器。使用數據庫擴展提供的各種函數對輸入的字符串進行轉義,為自身提供基本保護。除了依賴于函數,我們還可以對輸入表單的每個域執(zhí)行數據類型檢查。
3.2.3 連接服務器
可以控制與數據庫服務器的連接來保證數據庫的安全性。一個最簡單的方法就是限制允許連接數據庫的用戶。有些數據庫服務器提供了加密連接特性來連接數據庫,這也是提高數據庫安全性的可靠途徑之一。最后必須確保數據庫服務器在任何時候能夠處理的連接數大于或超過Web服務器和PHP的連接數。
3.2.4 運行服務器
首先,我們不應該以超級用戶身份運行它。其次,在設置好數據庫軟件后,大多數程序將允許你修改數據庫目錄和文件的屬主和權限,這樣可以防止非法讀操作。最后,當應用權限和驗證系統(tǒng)時,盡量創(chuàng)建只有最少權限的用戶。
圖1 LAMP網站架構圖
3.3 保護網絡
3.3.1 安裝防火墻
在網絡中,設計防火墻的目的是將本地網絡與外部網絡相分離,用于保護內部網絡中的機器以防外來攻擊。它過濾和拒絕不符合標準的消息,限制防火墻之外的個人和機器行為。再有就是構建互聯網的TCP/IP協(xié)議,這個是基于端口的,不同的端口專門用于不同類型的流量。對于內部網絡流量,大量端口的使用是非常嚴格的,很少用來與外部網絡的交流。如果禁止在這些端口上發(fā)送和接收網絡流量,我們可以降低計算機或服務器以及Web應用被攻破的風險。
3.3.2 使用隔離區(qū)域(DMZ)
為了防御內部惡意用戶攻擊的可能,我們可以實現隔離區(qū)域,在隔離區(qū)域中,我們可以將運行Web應用的服務器與外部互聯網以及內部公司網絡相隔離。
3.3.3 應對DoS和DDoS攻擊
由于這兩種攻擊很難防范和響應,目前還沒有有限的全面解決方案,所以要求網絡管理員必須研究和理解這兩種攻擊的本質以及特定網絡和安裝情況下面臨的風險,有助于防范和準備。
3.3.4 備份數據
我們必須定期備份網站的所有組件,包括靜態(tài)網頁、腳本和數據庫。備份的頻率取決于網站的動態(tài)程度。如果它完全是靜態(tài)的,可以只在修改網站時對其進行備份。大多數規(guī)模適當的網站都需要在服務器上使用RAID,它可以支持鏡像。RAID考慮了可能有一個硬盤出現故障的情況。如果整個磁盤陣列出現問題,我們可以根據更新量的大小以一定的頻率進行獨立的備份。這些備份應該保存在獨立的介質上,將其放置于一個安全的、獨立的地方,以防火災、盜竊或自然災害。
3.4 計算機和操作系統(tǒng)安全性
3.4.1 保持操作系統(tǒng)的更新
保持計算機安全的一個簡單方法是盡可能保持操作系統(tǒng)軟件為最新的。只要選擇了特定的操作系統(tǒng)作為產品環(huán)境,你就必須制定一個定期執(zhí)行更新和操作系統(tǒng)應用安全補丁的方案。此外,還應該有專門人員定期查看是否存在新的安全警告、補丁或更新。
3.4.2 只運行必須的軟件
不需要的軟件最好禁用,這樣就不用擔心這些軟件的安全性。
3.4.3 服務器的物理安全性
將運行Web應用的服務器保存在一個安全的環(huán)境是至關重要的,只有授權人員才可以訪問,而且必須有特定流程對不同的人授予或收回權限。
LAMP平臺由于其開源的環(huán)境,豐富的源碼、文檔資源,使其成為高效、穩(wěn)定、安全并且低成本的網站架構平臺,符合中小型企業(yè)對于網站服務器架構的特定需求。本文結合LAMP平臺的架構,主要分析了Web服務器安全性威脅,從不同的方面提出了相應的解決方案,可以確保Web服務器的安全運行。
[1]石堅.校園網絡運維系統(tǒng)的設計與實現.南京理工大學碩士論文,2013.
[2]李玉聰.基于LAMP高校集成辦公系統(tǒng)的研發(fā).吉林大學碩士論文,2010.
[3]李昕.基于LAMP開源框架的中小外貿企業(yè)信息系統(tǒng)研究與開發(fā).中南大學碩士論文,2011.
[4]馮文熠.基于XML和XAJAX模式的高校教務子系統(tǒng)研究與實現.蘭州理工大學碩士論文,2013.
[5]胡二彪.基于SEO的教學資源網站設計與開發(fā).河南師范大學碩士論文,2012.
[6]李金龍.基于Drupal網絡教育平臺的設計與實現.中國海洋大學碩士論文,2014.