国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Apache > 正文

Apache服務(wù)器的保護(hù)

2024-08-27 18:28:41
字體:
供稿:網(wǎng)友
作者:nixe0n

一. 綜述

  本文將討論unix平臺下,apache web服務(wù)器安裝和配置的安全問題。我們假定閱讀本文的系統(tǒng)管理員已經(jīng)針對自己站點(diǎn)的情況選擇了相關(guān)的模塊,并且能夠進(jìn)行配置、創(chuàng)建和排除故障。本文的主要目的是幫助你簡歷一個安全的apache歪脖(web :p)服務(wù)器。

  在眾多的web服務(wù)器產(chǎn)品中,apache是應(yīng)用最為廣泛的一個產(chǎn)品,同時也是一個設(shè)計(jì)上非常安全的程序。但是,同其它應(yīng)用程序一樣,apache也存在安全缺陷。本文主要針對三個安全缺陷進(jìn)行討論,包括:使用http協(xié)議進(jìn)行的拒絕服務(wù)攻擊(denial of service)、3緩沖區(qū)溢出攻擊以及被攻擊者獲得root權(quán)限。注意:合理的配置能夠保護(hù)apache免遭多種攻擊,但是在網(wǎng)絡(luò)層上的拒絕服務(wù)攻擊則不是調(diào)整apache的配置所能夠防止的。本文所涉及的是使用http(應(yīng)用層)協(xié)議進(jìn)行的拒絕服務(wù)攻擊。

二. apache的主要缺陷

  · http拒絕服務(wù)

  攻擊者通過某些手段使服務(wù)器拒絕對http應(yīng)答。這會使apache對系統(tǒng)資源(cpu時間和內(nèi)存)需求的劇增,最終造成系統(tǒng)變慢甚至完全癱瘓。

  · 緩沖區(qū)溢出

  攻擊者利用程序編寫的一些缺陷,使程序偏離正常的流程。程序使用靜態(tài)分配的內(nèi)存保存請求數(shù)據(jù),攻擊者就可以發(fā)送一個超長請求使緩沖區(qū)溢出。比如一些perl編寫的處理用戶請求的網(wǎng)關(guān)腳本。一旦緩沖區(qū)溢出,攻擊者可以執(zhí)行其惡意指令或者使系統(tǒng)宕機(jī)。

  · 被攻擊者獲得root權(quán)限

  apache一般以root權(quán)限運(yùn)行(父進(jìn)程),攻擊者通過它獲得root權(quán)限,進(jìn)而控制整個系統(tǒng)。

三. 獲得最新的apache

  使用最安全版本對于加強(qiáng)apache web服務(wù)器的安全是至關(guān)重要的。

  你可以從apache的官方網(wǎng)站http://www.apache.org獲得apache的最新版本。

  配置文件的保護(hù)

  apache web服務(wù)器有三個主要的配置文件,它們一般位于/usr/local/apache/conf目錄。這三個文件是:httpd.con、srm.conf和access.conf。這些文件是整個apache的控制中心,因此需要對三個配置文件有所了解。httpd.conf文件是主配置文件;srm.conf允許你填加資源文件;access.conf設(shè)置文件的訪問權(quán)限。這些文件的配置可以參考http://httpd.apache.org/docs/mod/core.html。

 服務(wù)器訪問控制

  access.conf文件包含一些指令控制允許什么用戶訪問apache目錄。應(yīng)該把deny from all作為初始化指令,然后使用allow from指令打開訪問權(quán)限。你可以允許來自某個域、ip地址或者ip段的訪問。例如:
  
  
  order deny,allow
  deny from all
  allow from sans.org
  
  

密碼保護(hù)

  使用.htaccess文件,可以把某個目錄的訪問權(quán)限賦予某個用戶。系統(tǒng)管理員需要在httpd.conf或者srm.conf文件中使用accessfilename指令打開目錄的訪問控制。以下是一個.htaccess示例文件:

  authname privatefiles
  authtype basic
  authuserfile /path/to/httpd/users
  require foo <---一個有效的用戶名

  然后,使用如下命令填加一個用戶:

  # htpasswd -c /path/to/httpd/users foo

  apache日志文件

  系統(tǒng)管理員可以使用日志格式指令來控制日志文件的信息。使用logformat "%a %l"指令,可以把發(fā)出http請求瀏覽器的ip地址和主機(jī)名記錄到日志文件。出于安全的考慮,你至少應(yīng)該那些驗(yàn)證失敗的web用戶,在http.conf文件中加入logformat "%401u"指令可以實(shí)現(xiàn)這個目的。這個指令還有其它的許多參數(shù),用戶可以參考apache的文檔。另外,apache的錯誤日志文件對于系統(tǒng)管理員來說也是非常重要的,錯誤日志文件中包括服務(wù)器的啟動、停止以及cgi執(zhí)行失敗等信息。

  安全相關(guān)的指令

  在apache配置文件中,有一些安全相關(guān)的指令可以使用。這些指令的詳細(xì)用法可以參考http://httpd.apache.org/docs/mod/directives.html。

  使用以下指令可以幫助你減小拒絕服務(wù)的威脅:

  limitrequestbody: 數(shù)字參數(shù),控制http請求的大小。
  limitrequestfields: 數(shù)字參數(shù),控制請求頭的數(shù)目。
  keepalive: 設(shè)置連接的生存期。
  keepalivetimeout: 限制等待請求的時間。

  使用以下指令可以幫助你叫囂緩沖區(qū)溢出的危險(xiǎn):

  limitrequestfieldsize: 限制每個請求頭的大小。
  limitrequestline: 限制每個請求行的大小。

  cgi(ommon gateway interface,通用網(wǎng)關(guān)接口)的安全威脅

 cgi的安全性非常重要,攻擊者可以利用cgi的缺陷獲得系統(tǒng)信息、執(zhí)行系統(tǒng)命令、占用系統(tǒng)資源。如果一個cgi程序使用靜態(tài)分配的內(nèi)存,就可能為緩沖區(qū)溢出攻擊提供機(jī)會。為了減少這種風(fēng)險(xiǎn),程序員應(yīng)該在cgi代碼中使用動態(tài)分配內(nèi)存。除了cgi編寫人員應(yīng)該注意外,系統(tǒng)管理員可以采取對cgi進(jìn)行封裝(例如:suexec或者cgi wrap)的辦法加強(qiáng)cgi的安全性。通過這種方式可以使cgi程序以某個獨(dú)立的用戶權(quán)限運(yùn)行,即使發(fā)生緩沖區(qū)溢出,也只影響那個用戶的目錄/文件。

  perl是一種功能非常強(qiáng)大的腳本語言。主要用于文本的處理,程序員還可以通過perl腳本使用系統(tǒng)調(diào)用。如果程序編寫的不好,就會為攻擊者闖入服務(wù)器大開方便之門。因此,使用perl腳本一定要小心,以免出現(xiàn)此類漏洞。在perl腳本中,處理請求數(shù)據(jù)之前,最好能夠調(diào)用專門的檢查例程對輸入的合法性進(jìn)行檢查。除此之外,還要確保apache不是以root的權(quán)限運(yùn)行的,perl腳本被限制在某個特定的目錄下運(yùn)行。
ssi(server-side includes)的安全

  使用ssi,程序員可以建立一些常用的例程,在需要時把這些例程包含進(jìn)他們的代碼中。ssi還允許有條件地執(zhí)行外部程序,攻擊者可能利用這個條件讓服務(wù)器執(zhí)行他們的惡意程序。在access.conf文件中使用includesnoexec指令,可以關(guān)閉執(zhí)行ssi文件的功能。不過這條指令會造成服務(wù)器不執(zhí)行cgi腳本或者程序。

  其它安全工具

  使用tcp wrappers和tripwire可以為你的系統(tǒng)提供額外的保護(hù)。你可以使用tcp wrappers來控制telnet或者ftp的訪問權(quán)限。tripwire是一個數(shù)據(jù)完整性檢測工具,可以幫助系統(tǒng)管理員監(jiān)視系統(tǒng)是否被改動過,你可以在tripwire的配置文件中編制特定的策略,監(jiān)視web服務(wù)器的配置文件、數(shù)據(jù)和cgi文件是否被修改。
總結(jié)

  apache是一個優(yōu)秀的歪脖服務(wù)器,雖然apache的開發(fā)者非常注重其安全性,但是由于apache非常龐大,難免會存在安全隱患。apache的安裝維護(hù)中需要注意以下問題:

  · 檢查文件和目錄的權(quán)限是否恰當(dāng)。
  · httpd.conf、srm.conf和access.conf的設(shè)置是否適當(dāng)
  · 使服務(wù)器日志文件能夠記錄盡可能詳細(xì)的信息。
  · 對某些需要特別保護(hù)的目錄使用密碼保護(hù)(.htaccess)。
  · 對cgi腳本或者程序進(jìn)行封裝。
  · 如果cgi使用perl編寫,要詳細(xì)檢查其安全性
  · 檢查ssi指令
  · 使用tcp wrappers和tripwire。

最大的網(wǎng)站源碼資源下載站,

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚东县| 东阿县| 克山县| 上栗县| 易门县| 高雄县| 会东县| 华蓥市| 浦东新区| 时尚| 蓬安县| 桐柏县| 东丽区| 信丰县| 兰坪| 北海市| 新营市| 丹凤县| 洛扎县| 岗巴县| 汉川市| 西乡县| 怀集县| 贵溪市| 平山县| 蕲春县| 久治县| 扶余县| 浦县| 巧家县| 肃北| 泽州县| 井冈山市| 云阳县| 四川省| 驻马店市| 舟山市| 林西县| 康乐县| 慈利县| 溧阳市|