應用:基於Unix的Web服務(wù)器安全指南
在計算機網絡日益普及的今(jīn)天,計算機安全不但(dàn)要求防治計算機病毒,而且要提高係統抵抗黑客非法入侵的能力,還要提高對(duì)遠程(chéng)數據傳輸的保(bǎo)密性,避免在(zài)傳輸途中遭受非法(fǎ)竊取。本文僅僅討論在構造Web服務器時可能出現的一些情況,希(xī)望能引起重視。
一. 安全(quán)漏洞
Web服務器上的漏洞可以從以下幾方麵考慮:
1.在Web服務器上你不讓人訪問的秘密文件、目錄或重要數據。
2.從(cóng)遠程用戶向(xiàng)服務器發送(sòng)信息時,特別是信用卡之類東西時(shí),中途遭不法分子非法攔截。
3.Web服務器本身存在一些漏洞,使得一些人能侵入到主機係統,破(pò)壞一(yī)些(xiē)重要的數據,甚至造成係統癱瘓。
4.CGI安全(quán)方麵的漏洞有:
(1)有意或無(wú)意在(zài)主機係統中遺漏Bugs給(gěi)非法黑客創造條件。
(2)用(yòng)CGI腳本編寫的程序當(dāng)涉及到遠程用戶從瀏覽器中輸入表格(Form),並進行檢索(Search index),或form-mail之類在主機上直接(jiē)操作命令時,或許會給Web主機係統(tǒng)造成(chéng)危險。
5.還有一些簡單的從網上(shàng)下載的Web服務器,沒有過多考慮到一些(xiē)安(ān)全因素(sù),不能用作商業應用。
因此,不(bú)管是配置服務器,還是在編寫CGI程序(xù)時都要注意係統的安全性。盡量堵住任何存在的(de)漏洞,創造安全的環(huán)境。
二. 提高係統安全性和穩定性
Web服務器安全預防措施:
1.限製在Web服務器開賬戶,定期刪除一些斷進程的用戶。
2.對在Web服務器上開的賬戶(hù),在口令長度及(jí)定期更改方麵作出(chū)要求,防止被(bèi)盜用。
3.盡量使FTP、MAIL等服務器與(yǔ)之分開,去掉ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些無關的(de)應(yīng)用。
4.在Web服務器上去掉一些絕對不用的如SHELL之類的解釋器,即當(dāng)在你的CGI的程(chéng)序(xù)中沒用到PERL時,就盡量把PERL在係統解釋器中刪(shān)除掉。
5.定期查看服務器中的日誌logs文件,分析(xī)一切可疑事件。在errorlog中出現rm, login, /bin/perl, /bin/sh等之類記(jì)錄(lù)時,你的服務器(qì)可能已經受到(dào)了一些非法(fǎ)用戶的入侵(qīn)。
6.設(shè)置好Web服務(wù)器上係統文件的權限(xiàn)和屬性,對可讓人訪問(wèn)的(de)文檔分配一個公用的組,如WWW,並隻分配(pèi)它(tā)隻讀的權利。把所有的(de)HTML文件歸屬WWW組,由Web管理(lǐ)員管理WWW組。對於Web的配置文件僅對Web管理員有(yǒu)寫的權(quán)利。
7.有些Web服務(wù)器把Web的文(wén)檔目錄與FTP目錄指(zhǐ)在同一目錄時,應該注意不要把FTP的目錄與CGI-BIN指定在一個目錄之下。這樣是為了防止一些用戶通過FTP上載(zǎi)一些如PERL或SH之類程序,並用Web的CGI-BIN去執行(háng),造成不(bú)良後果。
8.通過限製許可訪(fǎng)問用戶(hù)IP或DNS,如在NCSA中的access.conf中加上:
《Directory /full/path/to/directory》
《Limit GET POST》
order mutual-failure
deny from all
allow from 168.160.142. abc.net.cn
《/Limit》
《/Directory》
這樣隻能是以域名為abc.net.cn或IP屬於(yú)168.160.142的客(kè)戶訪問該(gāi)Web服務器。
對於CERN或W3C服務(wù)器可以這樣在httpd.conf中加(jiā)上:
Protection LOCAL-USERS {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
Protect /relative/path/to/directory/* LOCAL-USERS
9.WINDOWS下HTTPD
(1)Netscape Communications Server for NT
PERL解釋器的漏洞:
Netscape Communications Server中無法識(shí)別CGI-BIN下的擴展名及其應用關係,如.pl文件是PERL的代碼程(chéng)序自動調用的(de)解釋文件,即(jí)使現在也隻能把perl.exe文件存放在CGI-BIN目錄之下。執行如:/cgi-bin/perl.exe? &my_script.pl。但是這就給任何(hé)人都有執行PERL的可能,當有些人在其瀏覽器的URL中加(jiā)上如:/cgi-bin/perl.exe?-e unlink <*>時,有(yǒu)可能造成刪除服務器當前目錄下文件的危險。但(dàn)是,其他如:O′Reilly WebSite或(huò)Purveyor都不存在(zài)這種漏洞。
CGI執行批處理文件的漏洞:
文(wén)件test.bat的內容如下(xià):
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果(guǒ)客戶瀏覽器的URL為:/cgi-bin/test.bat?&dir,則執行調用命令解釋器(qì)完(wán)成DIR列表。這就讓訪問者有執(zhí)行其他命令可能性(xìng)。
(2)O′Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用批處理文件(jiàn)存在著與Netscape同樣的漏洞,但是,新版關閉了.bat在CGI中的作用。支持PERL,新版將(jiāng)VB和C作為CGI開發工具。
(3)Microsoft′s IIS Web Server
1996年3月5日前的IIS在NT下(xià)的BUG嚴重,可以任意使用command命令(lìng)。但之後已修補了該漏(lòu)洞,你可檢(jiǎn)查你的可執行(háng)文件的建立日期。IIS3.0還存在一些安(ān)全BUG,主要是CGI-BIN下的覆給權利。另(lìng)外,許(xǔ)多Web服務器本身都存在一些安全上的漏洞,都是在版本升級過程(chéng)中被不斷更新了,在此就不一一(yī)列舉了。
三. 從CGI編程角度考慮安全
1.采用編譯語言比解釋語言會更安全些,並且CGI程序應放在獨立於HTML存放目(mù)錄之外的(de)CGI-BIN下(xià),這是為了防止一些非法訪問者(zhě)從瀏覽器端取得解釋性語言的原代碼後從中尋找漏洞。
2.在用C來編(biān)寫(xiě)CGI程序時應盡量少用popen()、system()、所有(yǒu)涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、evals()等exec或evals之類(lèi)命令。
在由用戶填寫的form還回CGI時,不(bú)要直接調用system()之類函數。
另外,對於數據的(de)加(jiā)密與傳輸,目前有SSL、SHTTP、SHEN等協議供大家研究。
四(sì). 防火牆(Firewall)
1.防(fáng)火牆的(de)概念
防火牆(qiáng)(Firewall)是指一個由軟件或由軟件和硬件設備組合而成,處於企業或網絡群體計算機與外界通道(Internet)之間,限製外界用戶對內部網絡的訪(fǎng)問及管理內部用戶訪問外界網絡的權(quán)限。
2.防火牆的措施
(1)代(dài)理(Proxy)主機(jī)
“內部網絡--代理網關(Proxy Gateway)--Internet”
這種方(fāng)式是內部網絡與Internet不直接(jiē)通訊。就是內部網絡計算機用戶與代理網關采用一種通訊方式,即提供內部網絡協議(Netbioses、TCP/IP 等(děng)),而網關與Internet之間采取的是標準TCP/IP網絡通訊協議。這樣使(shǐ)得網(wǎng)絡數據包不能(néng)直接在內外網(wǎng)絡之間(jiān)進行。內部計(jì)算機必須(xū)通(tōng)過代理網關(guān)訪問Internet,這樣(yàng)容易在代理服務器上對內部網絡計算機訪問外界計算機進行限(xiàn)製。另外,由於代理服務器兩端采用不同協議標準也可以直接阻止(zhǐ)外界非法入侵。還有,代理服務器的網關可(kě)對數據封包進行驗證和對密碼進行確認等安全管(guǎn)製(zhì)。這(zhè)樣,能較好地控製(zhì)管理兩端的用戶(hù),起到防火牆(qiáng)作用(yòng)。
因(yīn)為這種防火牆措施是采用透過代(dài)理服務器進(jìn)行,在聯(lián)機用戶(hù)多時,效率必然受到影響,代理服務器負擔很(hěn)重,所以許多訪問Internet的客戶軟件在內部網絡計算機中(zhōng)可能無法正常訪問Internet。
(2)路由器加過(guò)濾器完成
“內部網絡--過濾器(Filter)--路由器(Router)--Internet”
這種結構由路由器和過濾器共同(tóng)完成從IP地址或域名上對外界計算機訪問內部網絡的限製,也可以(yǐ)指定或限製內部網絡訪問Internet。路由器僅對主機上特定的PORT上的數據通訊加以路由,而過濾器則執行篩選、過濾、驗證及其安全監控,這(zhè)樣可以很大程度上隔斷內外網絡間的不正常的訪問登錄。
關鍵詞:Unix,Web服務器
閱讀本文後您有什麽感想? 已有(yǒu) 人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1