4.5. 可使用的網路服務

對於公司中系統管理員來說,雖然使用者存取管理者的控制是一個很重要的議題,對於管理並操作 Linux 系統的任何人來說,隨時注意那些網路服務已經啟動是更重要的事情。

Red Hat Enterprise Linux 中的許多服務都可當作網路伺服器,假如一個網路服務在機器上執行,然後稱為『系統程式(daemon)』 的一個伺服器應用程式將會在一個或以上的網路連接埠上傾聽連線要求。 這些伺服器應該被視為進行攻擊的潛在途徑。

4.5.1. 服務的風險

網路服務可以為 Linux 系統帶來許多的風險,以下為一些主要問題的清單:

注注意
 

ExecShield 是支援單或多 x86 處理器核心的可執行記憶體分區與保護技術,能大大降低緩衝區溢位對 Red Hat Enterprise Linux 所造成的威脅。。ExecShield 把虛擬記憶體分成可執行與不可執行兩種區段,降低緩衝區溢位的風險。任何試圖在可執行區段外執行的程式(例如藉由緩衝區溢位弱點植入的惡意程式碼)會啟動分區錯誤,然後自動結束。

Execshield 也支援 AMD64 平台的 不可執行(NX,No eXecute)技術,以及 Itanium 與 Intel® EM64T 系統的 取消執行(XD,eXecute Disable)技術。這些技術結合了 ExecShield,以避免惡意程式碼以 4kb 大小的可執行碼,在虛擬記憶體的可執行區段中執行,降低潛在緩衝區溢位漏洞所可能引起的風險。

欲知更多關於 ExecShield 與 NX 或 XD 技術的資訊,請參閱New Security Enhancements in Red Hat Enterprise Linux v.3, Update 3 白皮書,網址如下:

http://www.redhat.com/solutions/info/whitepapers/

如要限制暴露於網路上的攻擊,任何未使用的服務都應該要關閉。

4.5.2. 辨識與設定服務

如要加強安全性,大部分安裝在 Red Hat Enterprise Linux 的網路服務都預設為關閉,然而還是有一些例外:

當您決定是否要使這些服務保持運行的狀態時,最好是使用您的常識以及可能發生的錯誤來做考量。舉例來說,假如您沒有任何可使用的印表機,請勿執行 cupsd,這也可應用在 portmap 上,假如您並不掛載 NFSv3 磁區或使用 NIS(ypbind 服務),您應該要停用 portmap 服務。

Red Hat Enterprise Linux 中含有三個設計來開啟或關閉服務的程式,它們為 系統服務設定工具 (system-config-services)、ntsysvchkconfig。 如需關於使用這些工具的資訊,請參考 Red Hat Enterprise Linux 系統管理手冊 一書中的 控制服務的存取 一章。

圖形 4-3. 系統服務設定工具

假如您不確定一個特定服務的目的,系統服務設定工具 中含有一個說明欄位 (如 圖形 4-3 所示)。

只檢查那些網路服務於開機時啟動是不夠的,好的系統管理員也應該要檢查那些連接埠已經開啟並且傾聽連線,請參考 第 5.8 節 以取得關於這個主題的資訊。

4.5.3. 不安全的服務

大體上來說,任何的網路服務都是不安全的,這也就是為何將未使用的服務關閉是如此的重要。 必須要定期地 發現服務的缺失,並且進行修復,也就是要即時的更新任何與網路服務關聯的套件。 請參考 第3章 以取得關於這個議題的更多資訊。

某些網路協定原本就是比其他的協定不安全,這包括了執行下列功能的任何服務:

固有不安全的服務範例包括了:

所有的遠端登入與 shell 程式(rlogin, rshtelnet)都應該由 SSH 來取代(請參考 第 4.7 節 以取得關於 sshd 的更多資訊)。

FTP 並不像遠端的 shell 那樣地對系統的安全性擁有固有的危險,不過 FTP 伺服器必須要小心地設定而且要 嚴密地監控以避免問題的發生。 請參考 第 5.6 節 以取得保全 FTP 伺服器的更多 資訊。

必須要小心地實作且放置於防火牆以內的服務包括了:

如需保全網路服務的更多資訊,請參考 第5章

以下的部份探討用來設定一個簡易防火牆可使用的工具。