《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于LAMP的WEB安全模型

基于LAMP的WEB安全模型

2009-07-03
作者:張艷萍,, 高忠新

  摘? 要: 從Linux平臺安全,、Apache安全、MySQL數(shù)據(jù)庫安全及PHP開發(fā)技術(shù)等幾個方面探討了如何架設(shè)一個安全高效的WEB網(wǎng)站技術(shù),并給出了一個可行的安全模型,。
  關(guān)鍵詞: LAMP; 網(wǎng)絡(luò)安全; WEB網(wǎng)站

?

  1998年,Michael Kunze為德國計算機(jī)雜志c't寫作一篇關(guān)于Free 軟件如何成為商業(yè)軟件替代品的文章,,創(chuàng)建了LAMP這個名詞,,是由Linux 操作系統(tǒng)、Apache網(wǎng)絡(luò)服務(wù)器,、MySQL 數(shù)據(jù)庫和PHP(Perl或Python)腳本語言組合而成的,隨之LAMP技術(shù)成為WEB服務(wù)器的事實標(biāo)準(zhǔn),。
  美國互聯(lián)網(wǎng)市場調(diào)研機(jī)構(gòu)NetCraft 2006年統(tǒng)計數(shù)據(jù)表明,互聯(lián)網(wǎng)發(fā)展在全球繼續(xù)呈現(xiàn)快速增長趨勢。在過去三年中,,全球網(wǎng)站數(shù)量已經(jīng)翻了一倍,。 統(tǒng)計還顯示,WEB服務(wù)器市場中,,基于Linux的Apache依然是網(wǎng)站的第一選擇,。目前,Linux及Apache在網(wǎng)站操作系統(tǒng)及WEB服務(wù)器軟件市場的份額為62.7%,,大型社區(qū)平臺因安全性和交互性考慮,,采用Windows軟件平臺的越來越少,正在逐步轉(zhuǎn)向LAMP平臺,。
  然而,在Internet/Intranet的大量應(yīng)用中,,網(wǎng)絡(luò)本身的安全面臨著重大的挑戰(zhàn),,隨之而來的信息安全問題也日益突出。在網(wǎng)絡(luò)安全問題泛濫的今天,,其安全性問題同樣面臨著考驗,。
  根據(jù)網(wǎng)絡(luò)安全的木桶理論,網(wǎng)絡(luò)的安全性取決于各個網(wǎng)絡(luò)組件的安全,,因此本文從Linux安全,、Apache安全、MySQL數(shù)據(jù)庫安全,、PHP開發(fā)技術(shù),、防火墻及入侵檢測技術(shù)等幾個方面探討了如何架設(shè)一個安全高效的WEB網(wǎng)站。
1 WEB平臺的安全模型
1.1 層次模型設(shè)計
  圖1給出了WEB平臺的安全模型,。

?


  WEB安全是一個綜合系統(tǒng)問題,,筆者將其劃分為幾個層次,根據(jù)網(wǎng)絡(luò)安全的木桶理論,,只有將模型中的各項安全盡可能考慮周全并切實實施安全規(guī)程,,才能保證整個系統(tǒng)的安全性。由于篇幅有限,,本文沒有討論網(wǎng)絡(luò)框架的安全性問題,。
1.2 Linux平臺安全
  操作系統(tǒng)作為安全的最底層至關(guān)重要,,沒有操作系統(tǒng)平臺的安全就沒有任何安全可言,有些技術(shù)人員往往只對平臺進(jìn)行了簡單的安全設(shè)置,,而完全依賴于防火墻的做法是造成站點安全的最大隱患,。因此,Linux平臺安全應(yīng)考慮到安裝系統(tǒng),、增強(qiáng)Linux安全配置因素,。
1.2.1 安裝系統(tǒng)
  在進(jìn)行系統(tǒng)安裝時,如果沒有進(jìn)行規(guī)劃,,將會造成安全漏洞,。目錄劃分不正確會造成訪問的安全隱患以及管理維護(hù)的復(fù)雜,甚至系統(tǒng)崩潰,;無用的軟件包安裝也會導(dǎo)致出現(xiàn)安全漏洞,。因此Linux平臺安全應(yīng)首先從規(guī)劃安裝開始。
  (1)安裝系統(tǒng)時應(yīng)考慮磁盤分區(qū)的安全性
  根目錄(/),、用戶目錄(/home),、臨時目錄(/tmp)和/var目錄應(yīng)分開到不同的磁盤分區(qū),避免訪問的安全隱患,,也便于系統(tǒng)維護(hù),; 以上各目錄所在分區(qū)的磁盤空間大小應(yīng)充分考慮,避免因某些原因造成分區(qū)空間用完而導(dǎo)致系統(tǒng)崩潰,;對于/tmp和/var目錄所在分區(qū),,大多數(shù)情況下不需要有suid屬性的程序,所以應(yīng)為這些分區(qū)添加nosuid屬性,。
  (2)軟件包與服務(wù)安裝
  對于主機(jī),,不應(yīng)安裝過多的軟件包。這樣可以降低因軟件包而導(dǎo)致出現(xiàn)安全漏洞的可能性,。在選擇主機(jī)啟動服務(wù)時不應(yīng)選擇非必需的服務(wù),。
1.2.2 增強(qiáng)Linux安全配置
  系統(tǒng)安裝完成后,應(yīng)增強(qiáng)Linux的安全配置,,將漏洞和訪問的安全隱患消滅在萌芽中,。
  (1)升級: 每一次升級都可以看作是對軟件缺陷的彌補(bǔ),可以有效地填補(bǔ)漏洞并增強(qiáng)軟件的功能,。Linux系統(tǒng)安全上的升級包括:
  ·內(nèi)核升級,。
  ·GNU libc共享庫升級。
  (2)啟動和登錄安全性:為防止非授權(quán)用戶獲得權(quán)限和本地用戶非法登錄管理終端,,必須對系統(tǒng)啟動和登錄進(jìn)行設(shè)置,,以保證系統(tǒng)不被非法訪問,具體設(shè)置如下:
  ·設(shè)置BIOS密碼且修改引導(dǎo)次序禁止從軟盤啟動系統(tǒng),。
  ·設(shè)置用戶口令,,限制口令長度及復(fù)雜性,。
  ·禁止所有默認(rèn)的被操作系統(tǒng)本身啟動的并且不必要的賬號。
  ·更改口令文件屬性,,從而防止非授權(quán)用戶獲得權(quán)限,。
  ·修改“/etc/lilo.conf”增加參數(shù)restricted和password,使系統(tǒng)在啟動lilo時就要求密碼驗證,。
  ·修改/etc/inittab文件,,禁止Ctrl+Alt+Delete重新啟動機(jī)器命令。
  ·編輯/etc/pam.d/su文件,,限制su命令,。
  ·編輯/etc/rc.d/rc.local將泄漏系統(tǒng)信息的行注釋掉,然后清空/etc/issue,、/etc/issue.net文件內(nèi)容,。
  (3)限制網(wǎng)絡(luò)訪問:通過限制網(wǎng)絡(luò)訪問可以有效避免來自網(wǎng)絡(luò)的攻擊和非法訪問。
  ·Inetd設(shè)置 ,。確認(rèn)/etc/inetd.conf的所有者是root,,編輯/etc/inetd.conf禁止以下服務(wù): telnet shell login exec talk ntalk imap pop-2? finger auth?;蚴褂?etc/hosts.deny和/etc/hosts.allow來增加訪問限制,。
  ·登錄終端設(shè)置。編輯/etc/securetty,,使root僅可在tty1終端登錄,。
  · 改變/etc/inetd.conf文件,避免顯示系統(tǒng)和版本信息,。
  ·設(shè)置文件的訪問權(quán)限來實現(xiàn)遠(yuǎn)程訪問控制。
  ·合理設(shè)置POP-3和Sendmail等電子郵件服務(wù),,安裝支持加密傳送密碼的POP-3服務(wù)器,。
  ·小心配置FTP服務(wù)。通過對/etc/ftpusers文件的配置,,禁止root,、bin、daemon,、adm等特殊用戶對FTP服務(wù)器進(jìn)行遠(yuǎn)程訪問,。除非特別需要,一般應(yīng)禁止匿名FTP服務(wù),。
  (4)防止攻擊:黑客的攻擊無處不在,,通過對平臺的安全設(shè)置可以有效減少和防止攻擊。
  ·阻止ping攻擊:在/etc/rc.d/rc.local文件中增加如下一行:---- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all,,阻止ping,。
  ·IP欺騙攻擊:在host.conf文件中增加 order bind,,hosts; multi off,; nospoof on三行內(nèi)容來防止IP欺騙攻擊,。
  ·DoS類型攻擊:修改/etc/security/limits.conf,對系統(tǒng)所有的用戶設(shè)置資源限制防止DoS類型攻擊,。
  (5)備份:在完成Linux系統(tǒng)的安裝以后應(yīng)該對整個系統(tǒng)進(jìn)行備份,,以后可以根據(jù)這個備份來驗證系統(tǒng)的完整性,這樣就可以發(fā)現(xiàn)系統(tǒng)文件是否被非法篡改過,。如果發(fā)生系統(tǒng)文件已經(jīng)被破壞的情況,,也可以使用系統(tǒng)備份來恢復(fù)到正常的狀態(tài)。
1.3 Apache安全
  Apache作為站點搭建軟件其安全設(shè)置關(guān)系到整個站點的安全性能,。其密碼被竊,、非法訪問、CGI腳本等安全問題都會導(dǎo)致站點出現(xiàn)安全漏洞和隱患,,因此安裝完Apache后需通過如下措施來增強(qiáng)其安全性,。
  (1)利用.htaccess文件實現(xiàn)的密碼保護(hù)
  ·建立.htpasswd文件。
  ·用.htaccess文件實現(xiàn)保護(hù)(require valid-user),。
  ·增加新的許可用戶,。
  ·建立允許訪問的組。設(shè)置方法是建立一個名為
  ·htgroup的文本文件,。
  ·在.htaccess文件中加入deny from all禁止讀取安全相關(guān)文件,。?????????
  (2)關(guān)注CGI腳本
  CGI腳本是可執(zhí)行程序,一般存放在WEB服務(wù)器的CGI-BIN目錄下面,,在配置WEB服務(wù)器時,,要保證CGI可執(zhí)行腳本只存放于CGI-BIN目錄中,這樣可以保證腳本的安全,,且不會影響到其他目錄的安全,。
  (3)升級Apache軟件通過升級Apache
  增強(qiáng)軟件功能并彌補(bǔ)軟件缺陷,消除安全隱患,。
1.4 MySQL數(shù)據(jù)庫安全
  站點數(shù)據(jù)庫具有容易受到黑客攻擊,、非法訪問、數(shù)據(jù)丟失等安全問題,,因此對MySQL數(shù)據(jù)庫設(shè)置相應(yīng)的安全防范措施以保證其安全,、可靠、不間斷運(yùn)行是安全模型的重要內(nèi)容之一,。具體設(shè)置如下:
  (1)安裝MySQL數(shù)據(jù)庫后,,初始化并設(shè)置root/usr/local/
mysql/;mysql/usr/local/mysql/var;mysql/usr/local/mysql/三個MySQL數(shù)據(jù)庫目錄權(quán)限為只讀,,以防止非法訪問,。
  (2)修改MySQL的root密碼,以防止管理員密碼被竊取,。
  (3)刪除所有用戶名為空的用戶,,增加系統(tǒng)安全性。
  (4)備份數(shù)據(jù)庫,,防止數(shù)據(jù)丟失,。最好能實現(xiàn)雙機(jī)熱備份。
  (5)盡可能使用SSL與數(shù)據(jù)庫連接以增強(qiáng)數(shù)據(jù)庫訪問的安全性,,防止信息泄漏,。
  (6)升級MySQL軟件,增強(qiáng)軟件功能并彌補(bǔ)軟件缺陷,,消除安全隱患,。
1.5 PHP編程安全
  程序設(shè)計中往往由于程序員的疏忽致使應(yīng)用程序存在安全漏洞或隱患,因此對編程中存在的幾個問題提出如下解決方案:
  (1)欺騙SQL語句:有些程序員習(xí)慣用邏輯與來提取和驗證數(shù)據(jù)庫中用戶名和密碼,,這樣只要在用戶框和密碼框輸入“1‘or1=’1”就可通過驗證了,,從而給攻擊者提供了非常簡單的登錄數(shù)據(jù)庫的手段,改進(jìn)的方法是不要用邏輯與,,將用戶的提取及驗證與密碼的提取,、驗證分開用兩個SELECT語句完成。這樣雖然麻煩卻消除了SQL語句被欺騙的安全問題,。
  (2)PHP手冊里有幾個例子存在安全問題,,實際使用時不要照搬。要真正明白語句的用法并在程序編寫完成后進(jìn)行嚴(yán)格的安全測試,。
  (3)不要以環(huán)境變量,、Cookie變量、session變量等作為
  關(guān)系生死的判斷條件,。因為這些變量太容易被偽造,。
  (4)利用PHP可以與SSH連接的特性以及執(zhí)行遠(yuǎn)程命令的能力,加強(qiáng)安全性,。
  ①安裝ssh2.so,。
 ?、趯ibssh和 PHPr鏈接起來。有一個PECL模塊可以完成這個功能,??梢允褂肞EAR安裝它(pear install-f ssh2)。
  ③確保這個新的SSH2.SO模塊被PHP加載,。編輯php.ini文件(對于CLI實用程序:/etc/php5/cli/php.ini,,對于Apache實用程序:/etc/php5/apache2/php.ini;增加一行:extension=ssh2.so),。
  (5)升級PHP軟件,,增強(qiáng)軟件功能并彌補(bǔ)軟件缺陷,消除安全隱患,。
1.6 防火墻及入侵檢測技術(shù)
1.6.1 防火墻

  作為系統(tǒng)的第一道防線,,其主要作用是監(jiān)控可信任網(wǎng)絡(luò)和不可信任網(wǎng)絡(luò)之間的訪問通道,可在內(nèi)部與外部網(wǎng)絡(luò)之間形成一道防護(hù)屏障,,攔截來自外部的非法訪問并阻止內(nèi)部信息的外泄,,但它無法阻攔來自網(wǎng)絡(luò)內(nèi)部的非法操作。它根據(jù)事先設(shè)定的規(guī)則來確定是否攔截信息流的進(jìn)出,,但無法動態(tài)識別或自適應(yīng)地調(diào)整規(guī)則,,因而其智能化程度很有限。防火墻技術(shù)主要有3種:數(shù)據(jù)包過濾器(packet filter),、代理(proxy)和狀態(tài)分析(stateful inspection)?,F(xiàn)代防火墻產(chǎn)品通常混合使用這幾種技術(shù),。
  用Linux+iptables做防火墻具有很高的靈活性和穩(wěn)定性,,但安裝和設(shè)定起來比較麻煩,容易出錯,。設(shè)置防火墻關(guān)鍵是設(shè)置一個好的安全規(guī)則并嚴(yán)格實施,,如何配置和使用已經(jīng)有很多文章論述過,讀者可以自行查閱,。
1.6.2 入侵檢測(IDS—Instrusion Detection System)
  綜合采用了統(tǒng)計技術(shù),、規(guī)則方法、網(wǎng)絡(luò)通信技術(shù),、人工智能,、密碼學(xué)、推理等技術(shù)和方法,,其作用是監(jiān)控網(wǎng)絡(luò)和計算機(jī)系統(tǒng)是否出現(xiàn)被入侵或濫用的征兆,。經(jīng)過不斷發(fā)展和完善,作為監(jiān)控和識別攻擊的標(biāo)準(zhǔn)解決方案,,IDS系統(tǒng)已經(jīng)成為安全防御系統(tǒng)的重要組成部分,。以下是幾款Linux平臺下的工具軟件,綜合應(yīng)用它們以建立自己的IDS系統(tǒng),。
  (1)Psad是端口掃描攻擊檢測程序的簡稱,,它作為一個新工具,,可以與iptables和Snort等緊密合作,展示所有試圖進(jìn)入網(wǎng)絡(luò)的惡意企圖,。這是首選的Linux入侵檢測系統(tǒng),。它使用了許多Snort工具,可以與fwsnort和iptables的日志結(jié)合使用,,這意味著可以深入到應(yīng)用層并執(zhí)行一些內(nèi)容分析,。它可以像Nmap一樣執(zhí)行數(shù)據(jù)包頭部的分析,向用戶發(fā)出警告,,甚至可以對其進(jìn)行配置以便自動阻止可疑的IP地址,。
  (2)Snort是一款輕量級且易于使用的工具,可以獨立運(yùn)行,,也可以與psad和iptables一起使用,。從Linux的發(fā)行版本的程序庫中可以找到并安裝它,這比起過去的源代碼安裝是一個很大的進(jìn)步,。至于保持其規(guī)則的更新問題,,也是同樣的簡單,因為作為Snort的規(guī)則更新程序和管理程序,,oinkmaster也在Linux發(fā)行版本的程序庫中,。
  (3)系統(tǒng)日志。網(wǎng)絡(luò)管理人員要始終提高警惕,,隨時注意各種可疑狀況,,并且按時檢查各種系統(tǒng)日志文件,包括一般信息日志,、網(wǎng)絡(luò)連接日志,、文件傳輸日志以及用戶登錄日志等。在檢查這些日志時,,要注意是否有不合常理的時間記載,。
2 結(jié)束語
  任何一種單一的安全措施其防范能力都是有限的,一個安全的系統(tǒng)必須采取多層次,、多種安全措施,、多管齊下才能更好地保證系統(tǒng)安全。本文根據(jù)網(wǎng)絡(luò)安全的木桶理論提出了一種安全模型,,并對其中涉及的技術(shù)進(jìn)行了闡述,,由于篇幅和水平,本文只能是拋磚引玉,。假如一個站點采取了以上模型并實施了各種安全措施,,則入侵者要想侵入你的系統(tǒng)而又不被發(fā)現(xiàn)幾乎是不可能的。

參考文獻(xiàn)
[1] ?Understanding symantec’s anti-virus strategy for internet?Gateways. http://www.symantec.com/avcenter/reference/wpnavieg.pdf.
[2] ?ELLISON R J. Survivability: protecting your critical systems.IEEE Internet Computing ,December 1999.
[3] ?中華人民共和國計算機(jī)信息系統(tǒng)安全保護(hù)條例.http://www.fosu.edu.cn/laws/law19.htm.
[4] ?MATHIAS H, DAVID G. SNMP versions 1&2 simple?network management protocol theory and practice. International Thomson Computer Press,1995.
[5] ?STEVENS R W.TCP/IP Illustrated, Volume 1: The?Protocols, Addison Wesley, 1994.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。