基于Unix系統(tǒng)Web服務(wù)器安全指南

發(fā)布時(shí)間:2007/10/12 23:20:00
基于Unix系統(tǒng)Web服務(wù)器安全指南

在計(jì)算機(jī)網(wǎng)絡(luò)日益普及的今天,計(jì)算機(jī)安全不但要求防治計(jì)算機(jī)病毒,而且要提高系統(tǒng)抵抗黑客非法入侵的能力,還要提高對(duì)遠(yuǎn)程數(shù)據(jù)傳輸?shù)谋C苄?避免在傳輸途中遭受非法竊取。本文僅僅討論在構(gòu)造Web服務(wù)器時(shí)可能出現(xiàn)的一些情況,希望能引起重視。

  一、安全漏洞

  Web服務(wù)器上的漏洞可以從以下幾方面考慮:

  1.在Web服務(wù)器上你不讓人訪問(wèn)的秘密文件、目錄或重要數(shù)據(jù)。

  2.從遠(yuǎn)程用戶向服務(wù)器發(fā)送信息時(shí),特別是信用卡之類東西時(shí),中途遭不法分子非法攔截。

  3.Web服務(wù)器本身存在一些漏洞,使得一些人能侵入到主機(jī)系統(tǒng),破壞一些重要的數(shù)據(jù),甚至造成系統(tǒng)癱瘓。

  4.CGI安全方面的漏洞有:

  (1)有意或無(wú)意在主機(jī)系統(tǒng)中遺漏Bugs給非法黑客創(chuàng)造條件。

  (2)用CGI腳本編寫的程序當(dāng)涉及到遠(yuǎn)程用戶從瀏覽器中輸入表格(Form),并進(jìn)行檢索(Search index),或form-mail之類在主機(jī)上直接操作命令時(shí),或許會(huì)給Web主機(jī)系統(tǒng)造成危險(xiǎn)。

  5.還有一些簡(jiǎn)單的從網(wǎng)上下載的Web服務(wù)器,沒有過(guò)多考慮到一些安全因素,不能用作商業(yè)應(yīng)用。

  因此,不管是配置服務(wù)器,還是在編寫CGI程序時(shí)都要注意系統(tǒng)的安全性。盡量堵住任何存在的漏洞,創(chuàng)造安全的環(huán)境。

二、提高系統(tǒng)安全性和穩(wěn)定性

  Web服務(wù)器安全預(yù)防措施:

  1.限制在Web服務(wù)器開賬戶,定期刪除一些斷進(jìn)程的用戶。

  2.對(duì)在Web服務(wù)器上開的賬戶,在口令長(zhǎng)度及定期更改方面作出要求,防止被盜用。

  3.盡量使FTP、MAIL等服務(wù)器與之分開,去掉ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些無(wú)關(guān)的應(yīng)用。

  4.在Web服務(wù)器上去掉一些絕對(duì)不用的如SHELL之類的解釋器,即當(dāng)在你的CGI的程序中沒用到PERL時(shí),就盡量把PERL在系統(tǒng)解釋器中刪除掉。

  5.定期查看服務(wù)器中的日志logs文件,分析一切可疑事件。在errorlog中出現(xiàn)rm, login, /bin/perl, /bin/sh等之類記錄時(shí),你的服務(wù)器可能已經(jīng)受到了一些非法用戶的入侵。

  6.設(shè)置好Web服務(wù)器上系統(tǒng)文件的權(quán)限和屬性,對(duì)可讓人訪問(wèn)的文檔分配一個(gè)公用的組,如WWW,并只分配它只讀的權(quán)利。把所有的HTML文件歸屬WWW組,由Web管理員管理WWW組。對(duì)于Web的配置文件僅對(duì)Web管理員有寫的權(quán)利。

  7.有些Web服務(wù)器把Web的文檔目錄與FTP目錄指在同一目錄時(shí),應(yīng)該注意不要把FTP的目錄與CGI-BIN指定在一個(gè)目錄之下。這樣是為了防止一些用戶通過(guò)FTP上載一些如PERL或SH之類程序,并用Web的CGI-BIN去執(zhí)行,造成不良后果。

  8.通過(guò)限制許可訪問(wèn)用戶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屬于168.160.142的客戶訪問(wèn)該Web服務(wù)器。

  對(duì)于CERN或W3C服務(wù)器可以這樣在httpd.conf中加上:

  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中無(wú)法識(shí)別CGI-BIN下的擴(kuò)展名及其應(yīng)用關(guān)系,如.pl文件是PERL的代碼程序自動(dòng)調(diào)用的解釋文件,即使現(xiàn)在也只能把perl.exe文件存放在CGI-BIN目錄之下。執(zhí)行如:/cgi-bin/perl.exe?& my_script.pl。但是這就

  給任何人都有執(zhí)行PERL的可能,當(dāng)有些人在其瀏覽器的URL中加上如:/cgi- bin/perl.exe?-e+unlink+%3C*%3E時(shí),有可能造成刪除服務(wù)器當(dāng)前目錄下文件的危險(xiǎn)。但是,其他如:O′Reilly  WebSite或Purveyor都不存在這種漏洞。

  CGI執(zhí)行批處理文件的漏洞:

  文件test.bat的內(nèi)容如下:

  @echo off

  echo Content-type: text/plain

  echo

  echo Hello World!

  如果客戶瀏覽器的URL為:/cgi-bin/test.bat?&dir,則執(zhí)行調(diào)用命令解釋器完成DIR列表。這就讓訪問(wèn)者有執(zhí)行其他命令可能性。

  (2)O′Reilly WebSite server for Windows NT/95

  在WebSite1.1B以前的版本中使用批處理文件存在著與Netscape同樣的漏洞,但是,新版關(guān)閉了.bat在CGI中的作用。支持PERL,新版將VB和C作為CGI開發(fā)工具。

  (3)Microsoft′s IIS Web Server

  1996年3月5日前的IIS在NT下的BUG嚴(yán)重,可以任意使用command命令。但之后已修補(bǔ)了該漏洞,你可檢查你的可執(zhí)行文件的建立日期。 IIS3.0還存在一些安全BUG,主要是CGI-BIN下的覆給權(quán)利。另外,許多Web服務(wù)器本身都存在一些安全上的漏洞,都是在版本升級(jí)過(guò)程中被不斷更新了,在此就不一一列舉了。

三、從CGI編程角度考慮安全

  1.采用編譯語(yǔ)言比解釋語(yǔ)言會(huì)更安全些,并且CGI程序應(yīng)放在獨(dú)立于HTML存放目錄之外的CGI-BIN下,這是為了防止一些非法訪問(wèn)者從瀏覽器端取得解釋性語(yǔ)言的原代碼后從中尋找漏洞。

  2.在用C來(lái)編寫CGI程序時(shí)應(yīng)盡量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之類命令。

  在由用戶填寫的form還回CGI時(shí),不要直接調(diào)用system()之類函數(shù)。

  另外,對(duì)于數(shù)據(jù)的加密與傳輸,目前有SSL、SHTTP、SHEN等協(xié)議供大家研究。

  四、防火墻(Firewall)

  1.防火墻的概念

  防火墻(Firewall)是指一個(gè)由軟件或由軟件和硬件設(shè)備組合而成,處于企業(yè)或網(wǎng)絡(luò)群體計(jì)算機(jī)與外界通道(Internet)之間,限制外界用戶對(duì)內(nèi)部網(wǎng)絡(luò)的訪問(wèn)及管理內(nèi)部用戶訪問(wèn)外界網(wǎng)絡(luò)的權(quán)限。

  2.防火墻的措施

  (1)代理(Proxy)主機(jī)
  
  “內(nèi)部網(wǎng)絡(luò)--代理網(wǎng)關(guān)(Proxy Gateway)--Internet”

  這種方式是內(nèi)部網(wǎng)絡(luò)與Internet不直接通訊。就是內(nèi)部網(wǎng)絡(luò)計(jì)算機(jī)用戶與代理網(wǎng)關(guān)采用一種通訊方式,即提供內(nèi)部網(wǎng)絡(luò)協(xié)議(Netbios、 TCP/IP等),而網(wǎng)關(guān)與Internet之間采取的是標(biāo)準(zhǔn)TCP/IP網(wǎng)絡(luò)通訊協(xié)議。這樣使得網(wǎng)絡(luò)數(shù)據(jù)包不能直接在內(nèi)外網(wǎng)絡(luò)之間進(jìn)行。內(nèi)部計(jì)算機(jī)必須通過(guò)代理網(wǎng)關(guān)訪問(wèn)Internet,這樣容易在代理服務(wù)器上對(duì)內(nèi)部網(wǎng)絡(luò)計(jì)算機(jī)訪問(wèn)外界計(jì)算機(jī)進(jìn)行限制。另外,由于代理服務(wù)器兩端采用不同協(xié)議標(biāo)準(zhǔn)也可以直接阻止外界非法入侵。還有,代理服務(wù)器的網(wǎng)關(guān)可對(duì)數(shù)據(jù)封包進(jìn)行驗(yàn)證和對(duì)密碼進(jìn)行確認(rèn)等安全管制。這樣,能較好地控制管理兩端的用戶,起到防火墻作用。

  因?yàn)檫@種防火墻措施是采用透過(guò)代理服務(wù)器進(jìn)行,在聯(lián)機(jī)用戶多時(shí),效率必然受到影響,代理服務(wù)器負(fù)擔(dān)很重,所以許多訪問(wèn)Internet的客戶軟件在內(nèi)部網(wǎng)絡(luò)計(jì)算機(jī)中可能無(wú)法正常訪問(wèn)Internet。

  (2)路由器加過(guò)濾器完成

  “內(nèi)部網(wǎng)絡(luò)--過(guò)濾器(Filter)--路由器(Router)--Internet”

  這種結(jié)構(gòu)由路由器和過(guò)濾器共同完成從IP地址或域名上對(duì)外界計(jì)算機(jī)訪問(wèn)內(nèi)部網(wǎng)絡(luò)的限制,也可以指定或限制內(nèi)部網(wǎng)絡(luò)訪問(wèn)Internet。路由器僅對(duì)主機(jī)上特定的PORT上的數(shù)據(jù)通訊加以路由,而過(guò)濾器則執(zhí)行篩選、過(guò)濾、驗(yàn)證及其安全監(jiān)控,這樣可以很大程度上隔斷內(nèi)外網(wǎng)絡(luò)間的不正常的訪問(wèn)登錄。
 
 
 
                                                    海騰數(shù)據(jù)中心(技術(shù)部整理)
                                                    2007-10-12


Copyright© 2004-2020 河南海騰電子技術(shù)有限公司 版權(quán)所有   經(jīng)營(yíng)性ICP/ISP證 備案號(hào):B1-20180452   豫公網(wǎng)安備 41019702002018號(hào)    電子營(yíng)業(yè)執(zhí)照