廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5445 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
masa 手機
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x60
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Linux] [教學]鞏固Apache Server的安全
因為近來網路越來越普及,相對的網路安全也越來越被注重,所以轉此帖給大家分享

鞏固Apache Server的安全

張貼者: Banana  
********************************************************************
Apache 伺服器簡介
Apache 源自於美國國家超級計算業務中心(NCSA)Rob McCool 所開發的 NCSA HTTPd
網頁伺服器,在開放原始碼社群的努力下,於 1995 年釋出 Apache 0.6.2 版,之後經過
不斷改進,目前已發展至 1.3.33 版。由於其穩定、安全、管理容易及免費的特性,讓
Apache 逐漸成為網頁伺服器的代表,根據英國網路服務企業 Netcraft 之研究結果,以
Apache 作為網頁伺服器的網站由 2003 年 1 月的兩千兩百萬個增加至 2004 年 11 月的
三千八百萬個,市場佔有率也由 62% 成長至 67%,同時由於網路頻寬及相關技術的進步,
內容豐富的動態網頁逐漸取代了靜態網頁,有些公司也透過新的網頁介面系統取代舊有的
內部系統,使網頁服務進一步從網頁伺服器延伸到後端資料庫,隨著線上服務的增加,這
些具有豐富資源的網站伺服器,就成為潛伏在暗處的入侵者攻擊之首要目標,而且由於網
頁伺服器的特性,其服務對象為網路上任何想要存取網頁的使用者,無法像企業內部伺服
器一樣藉由適當存取控制的防護措施,將惡意入侵者阻擋在系統外,就因為網頁伺服器提
供匿名服務,入侵者可以如同一般網路使用者透過合法的 80 port 連上網頁伺服器,防
火牆機制在此種情況下無法發揮效用,因此希望透過介紹一些針對 Apache 網頁伺服器的
防護方法,在提供網頁服務給使用者的同時做到 Apache 伺服器基本安全的防護,避免資
訊洩漏。接下來我們針對兩個方面的防護分別加以介紹。

Apache 網頁伺服器的漏洞
雖然 Apache 在 1997 年 1 月之後就沒有發現重大漏洞,但如果您主機上執行的
Apache 並非最新版本,就可能存在漏洞,藉由適當修補 Apache 漏洞,可避免惡意入侵
者透過 Apache 程式本身的缺陷,來攻陷網頁伺服器。我們以這個兩年前存在的漏洞
Apache Web Server Chunk Handling Vulnerability 做為例子來加以說明(請參閱:
http://www.cert.org.tw/document/advisor...sn=TW-CA-2002-151
,此弱點存在於 Apache 處理 chunk-encoded 的無效要求時,它影響版本 1.3 到 1.3.24
及 2.0 到 2.0.36 的 Apache 網頁伺服器,惡意攻擊者可透過送出變形的要求給 Apache
伺服器引發緩衝區溢位,利用有弱點的 Apache 取得執行者權限,一般我們是透過 nobody
帳號來執行 Apache,攻擊者在攻陷 Apache 伺服器後便可使用 nobody 權限執行命令,
雖然攻擊者並無在此次攻擊中直接獲得 root 存取權限,但是在大部分的系統上若要進一
步獲得 root 存取權限只是時間的問題了。此外除了 Apache 伺服器本身安全缺陷所造成
的問題外,由於 Apache 伺服器也可以透過使用「模組」(Module),在網頁伺服器上彈性
載入適當模組以提供所需功能,例如:mod_cgi、mod_proxy 等,但有時模組自己本身的
缺陷也會影響 Apache 伺服器的安全,我們透過 Redhat 所發出的 RHSA-2004:063-01:
Updated mod_python packages fix denial of service vulnerability 來加以說明(請
參閱:http://www.cert.org.tw/document/advisory/show.php?twcert_sn=TW-CA-2004-047)
,mod_python 模組使 Apache 伺服器得以解譯 Python 語言,但在 mod_python 3.0.3
中發現一個漏洞,將容易導致伺服器受到阻斷服務攻擊。攻擊者可能利用 Apache 程式本
身或其模組存在的弱點來進行入侵動作,這些弱點通常都是廣為流傳,而且很容易取得現
成的攻擊工具,短時間內即可攻陷目標網頁伺服器。因此 Apache 網頁伺服器的管理員,
應該特別注意 Apache 相關的安全通告,及時進行修補,避免因為疏忽而被攻擊者透過漏
洞攻陷網頁伺服器,我們可以透過以下的網站來取得 Apache 相關的安全訊息:
http://www.ce...g.tw
http://www.ap....org
http://www.apachewe...ecurity
當然我們也可以安裝最新版的 Apache,以避免舊版 Apache 存在的未修補漏洞。

Apache 網頁伺服器安全相關設定
Apache 本身程式上的漏洞可能成為惡意攻擊者入侵的途徑,但是與 Apache 有關的
安全問題大多來自 Apache 設定錯誤,導致未經授權的使用者,可以任意存取 Apache
上的資訊資源,Apache 組態設定主要是透過 httpd.conf 來設定,此檔案一般會存在
/usr/local/apache/conf 目錄下,接下來我們針對以下三個主題來介紹設定 Apache 所
應該考慮的面向:
1.存取權限(Access Rights)
2.符號連結(Symbolic Links)
3.索引(Index)

1.存取權限
由於 Apache 網頁伺服器本身的運作及存取權限都是依據 Apache 執行者的存取權限
,我們一般都是以「nobody」帳號執行 Apache,在設定時則儘可能降低其權限,至少比
root 低,當然也可以設定不同的帳號,例如:www 或 apache 來負責執行 Apache,這樣
設定是希望萬一 Apache 伺服器被入侵,攻擊者只能取得一個低存取權限的帳號,另一方
面由於大部分協助 Apache 運作的檔案都存在於伺服器的根目錄內(也就是 ServerRoot
所指定的目錄),所以當 Apache 是藉由 non-root 的使用者來負責執行,其將沒有足夠
權限來修改相關的 Apache 系統設定檔,因此 Apache 伺服器本身無法修改自己的相關設
定,如果沒有這樣透過這樣的方式來執行 Apache,讓伺服器本身可以修改設定檔,攻擊
者將可藉由更改相關設定檔的方式讓未經授權的使用者存取伺服器的資源或破壞 Apache
伺服器,除了在 ServerRoot 所設定的伺服器根目錄外,還有另一個文件根目錄(也就是
DocumentRoot 所指定的目錄)也需要限制其存取權限,儘可能將其設定為唯讀,但是在
某些情況下,可能需要讓使用者能夠寫入或執行文件根目錄內的檔案,如果遇到這種情況
,我們在文件根目錄下另外開一個子目錄,將這些檔案移到這個子目錄中,將這個目錄存
取的權限開放出來,透過這樣的方式來維持整體的安全性。因為 Apache 執行者權限對伺
服器的安全相當的重要,所以在控管其權限時我們要格外的小心來維持 Apache 本身的安
全。

2.符號連結
符號連結(Symbolic links)是存在於 UNIX 的一個機制,其概念有點類似微軟視窗
的捷徑,管理者可能為了本身方便而使用符號連結,但是這可能形成安全上的威脅,因為
管理這些符號連結是很困難的一件事,管理者可能建立了大量的符號連結,但是日子一久
可能就會忘記到底存在有那些符號連結,最後要管理這些連結,所以我們需要去確認那些
連結到我們文件根目錄(document root directory)是否真的有需要,關閉掉那些不需
要的連結,我們可以藉由下面的指令找出連到特定目錄的連結:
find /usr/local/apache/htdocs -type l -print
在 Apache 伺服器中,可以透過關鍵字 Options 設定 FollowSymLinks,設定這個組態後
,Apache 伺服器會依照符號連結的設定來連結在伺服器上的其他檔案,但假如您沒有要
使用符號連結,請關閉 Options 以避免相關問題,因為 Apache 這個選項是預設為開啟
,假如您要使用符號連結,那您需仔細的對這些符號連結進行確認,避免未經授權的使用
者存取那些不是他權限可以存取的檔案。在 Apache 伺服器中還有另一個用來設定符號連
結設定的指令 FollowSymLinksIfOwnerMatch,也是用來允許符號連結的使用,但是它有
更嚴格的控管,只有在符號連結的擁有者與符號連結所指到的檔案擁有者相同時,伺服器
才會使用符號連結,換句話說,使用者只能使用符號連結去連結當其所擁有的檔案,假如
伺服器對安全性的要求較為嚴格, FollowSymLinksIfOwnerMatch 可對符號連結做更嚴格
的安全控管。對符號連結做仔細的控管可以避免攻擊者利用管理者的疏忽,來違法存取其
不應該存取的檔案或進行破壞的行為。以下就httpd.conf的預設值加以說明
Ex: …
<Directory />
Options FollowSymLinks <- 刪除此設定值
AllowOverride None
</Directory>

<Directory "/var/www/html">
Options Indexes Includes FollowSymLinks <- ,刪除此設定值

</Directory>


3.索引(Index)
當 Apache 網頁伺服器收到使用者的網頁需求後,會分析使用者需求並將需求轉換成
對應伺服器上的檔案,再傳回客戶端瀏覽器。有時候,客戶端送出的網頁需求所轉換出來
的不是檔案而是目錄,在此種情況之下,Apache 可能會有以下其中一種反應:
1.Apache 會自動找出目錄中的特定檔案傳回給客戶端,例如 index.html 使用者不需要
明確指定它,但是 Apache 會自動回傳這個檔案。
2.Apache 會顯示出目錄中完整的檔案名單。
3.Apache 會顯示出錯誤的訊息,告訴使用者無法存取其所要求的資源。

以上這些情況是一連串的動作,當 Apache 所得到轉換出來的結果是目錄時,它會先
去確認該目錄內有沒有目錄索引 (DirectoryIndex),如果有列在目錄索引內的檔案存在,
Apache 網頁伺服器會取出第一個出現在目錄索引內的檔案,處理然後傳給客戶端。但是如
果找不到列在目錄索引的檔案,Apache 伺服器會去確認 httpd.conf 內的 Indexes 的設
定狀況,有被開啟則傳回在這目錄中檔案完整的清單,若沒有開啟 Apache 則會回應錯誤
訊息,表示存取目標資源被拒,如果設定上的疏忽,攻擊者送出要求目錄的需求,而這個
目錄又預設開啟 indexes,那 Apache 傳回目錄內檔案的完整清單,則可能會導致網頁伺
服器上機密資訊的洩漏,雖然攻擊者可能無法存取所列出的檔案,但是透過檔案的名稱攻
擊者還是可以獲得伺服器的相關資訊,因此為了避免伺服器機密資訊的洩漏,我們可以在
httpd.conf 或 .htaccess 目錄的設定檔內加入 options -Indexes,就可以關閉指定目錄
的索引功能。下面以 httpd.conf 的預設值作說明
Ex: …
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory "/var/www/html">
Options Indexes Includes FollowSymLinks <- 修改成-Indexes

</Directory>
結論:
除了上述兩部分之外還有一些安全相關事項需要注意,分別說明如下:
1.對設定檔進行定期備份
在進行每次修改前,都將相關設定檔預先保留下來,避免在更改設定檔後發生錯誤,尤
其當 Apache 伺服器服務的使用者眾多時,使用者可能沒有耐性等您重新設定相關設定檔。
2.千萬不要洩漏機密資訊
管理者必須對某些關鍵資訊保密,像管理者密碼千萬不能與其他人共用,另外像伺服器上
相關的安全措施,也不能輕易洩漏。
3.定期確認系統 log
隨時監控存取網站的使用者,瞭解伺服器曾經做過什麼事,是管理員相當重要的例行工
作,例如記錄錯誤訊息的 error_log,其負責記錄網頁瀏覽器存取網頁時發生的錯誤訊息,
及 referer_log 記載使用者是透過那個網頁連到您的伺服器,可以藉此分析哪些網頁參考
到本機上的網頁,這些 log 都會提供相關有用的資訊,另外隨著時間增加,log 檔也會逐
漸累積佔據磁碟空間,可以透過 rotatelog 或 logrotate 對 log 檔進行管理。
透過上述措施可以維持 Apache 伺服器基本的安全,我們還可以透過像 Nkito
(http://www.cirt.net/...to.shtml) 等網頁伺服器掃描器來偵測 Apache 網頁伺服
器的弱點,再設法修補,以維持網頁伺服器的安全。

參考資料:
1.Ashok Appu. Administering and Securing the Apache Server. Premier Press, 2002
2.Michael D. Bauer. Building Security Server with Linux. O'Reilly,2002
3.Ben Laurie and Peter Laurie. Apache definitive guide. O'Reilly,1999
4.Stuart McClure, Joel Scambray, and George Kurtz. Hacking exposed: network
security and solutions 4th ed. McGraw-Hill,2003
5.李蔚澤. Apache 2.0 深入研究.碁峰資訊,2003
6.施威銘研究室. Red Hat Linux 架站實務. 旗標,2000


[ 此文章被andyz在2005-05-18 20:08重新編輯 ]



獻花 x0 回到頂端 [樓 主] From:台灣數位聯合 | Posted:2005-02-24 12:08 |
elroy 手機 會員卡
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x8
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

表情 真的嗎??q_q
那一定要去設定一下哦
太危險了耶~~~
真的謝謝大大


□□□□□□□□『 速達電腦 SD 』□□□□□□□□
  專 業 服 務 , 快 速 完 修
服務電話:(03)553-9725 傳真:(03)553-6349
地址:新竹縣竹北市中正西路169號1F
獻花 x0 回到頂端 [1 樓] From:台灣數位聯合 | Posted:2005-02-27 17:41 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.023323 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言