對於公司中系統管理員來說,雖然使用者存取管理者的控制是一個很重要的議題,對於安裝並且操作一部 Linux 系統的任何人來說,隨時注意那些網路服務已經啟動是更重要的事情。
Red Hat Enterprise Linux 中的許多服務都可當作網路伺服器,假如一個網路服務在機器上執行,然後稱為『系統程式(daemon)』 的一個伺服器應用程式將會在一個或以上的網路連接埠上傾聽連線要求。 這些伺服器應該被視為進行攻擊的潛在途徑。
網路服務可以為 Linux 系統帶來許多的風險,以下為一些主要問題的清單:
緩衝區滿溢的攻擊 — 連線到連接埠號 0-1023 的服務必須是由一個擁有管理權限 的使用者來執行,假如該應用程式含有一個可被破壞的緩衝區滿溢,攻擊者便可以執行該系統程式的使用者取得 系統的存取,由於可被破壞的緩衝區滿溢存在,怪客使用自動化的工具來辨識含有缺失的系統,然後一旦他們取 得存取後,他們便使用自動化的 rootkits 來維持他們對系統的存取。
阻絕服務攻擊(DoS) — 這是藉由發出大量的連線要求來癱瘓一個服務,一個阻絕 服務的攻擊可以在系統試著要紀錄以及回覆每一個要求時使系統當機。
程式碼弱點的攻擊 — 假如伺服器使用程式碼來執行伺服端的動作,如網頁伺服器, 怪客可以對沒有妥善撰寫的程式碼進行攻擊。 這些程式碼弱點的攻擊可以導致一個緩衝區滿溢的狀況或者是允許 攻擊者修改系統上的檔案。
如要限制暴露漁網路上的攻擊,任何未使用的服務都應該要關閉。
如要加強安全性,大部分安裝在 Red Hat Enterprise Linux 的網路服務都預設為關閉,然而還是有一些例外:
cupsd — Red Hat Enterprise Linux 的預設列印伺服器。
lpd — 另一個列印伺服器。
portmap — NFS、NIS 以及其他 RPC 協定的一個必要元件。
xinetd — 一個超級伺服器,用來控制連線到附屬伺服器的一個主機,如 vsftpd, telnet 與 sgi-fam (這是 Nautilus 檔案管理員所需要的)。
sendmail — Sendmail 郵件傳輸代理是預設啟動的,不過只傾聽來自 localhost 的連線。
sshd — OpenSSH 伺服器,它是 Telnet 的一個安全替代品。
當您決定是否要使這些服務保持運行的狀態時,最好是使用您的常識以及可能發生的錯誤來做考量。 舉例來說, 假如您沒有任何可使用的印表機,請勿執行 cupsd,這也可應用在 portmap 上,假如您並不掛載 NFS 磁區或使用 NIS (ypbind 服務),您應該要停用 portmap 服務。
Red Hat Enterprise Linux 中含有三個設計來開啟或關閉服務的程式,它們為 系統服務設定工具 (redhat-config-services)、ntsysv 與 chkconfig。 如需關於使用這些工具的資訊,請參考 Red Hat Enterprise Linux 系統管理手冊 一書中的 控制服務的存取 一章。
假如您不確定一個特定服務的目的,系統服務設定工具 中含有一個說明欄位 (如 圖形 4-3 所示)。
只檢查那些網路服務於開機時啟動是不夠的,好的系統管理員也應該要檢查那些連接埠已經開啟並且傾聽連線, 請參考 第 5.8 節 以取得關於這個主題的資訊。
大體上來說,任何的網路服務都是不安全的,這也就是為何將未使用的服務關閉是如此的重要。 必須要定期地 發現服務的缺失,並且進行修復,也就是要即時的更新任何與網路服務關聯的套件。 請參考 第3章 以取得關於這個議題的更多資訊。
某些網路協定原本就是比其他的協定不安全,這包括了執行下列功能的任何服務:
以未加密的方式透過網路傳輸使用者名稱與密碼 — 許多舊式的協定(如 Telnet 與 FTP) 並不加密認證的作業階段,所以請盡可能避免使用它們。
以未加密的方式透過網路傳輸重要資料 — 許多協定以未加密的方式透過網路傳輸資料, 這些協定包括了 Telnet, FTP, HTTP 與 SMTP。 許多網路檔案系統,如 NFS 與 SMB,也都以未加密的方式透過網路 傳輸資訊。 當使用者使用這些協定時,使用者有責任限制何種資料可以透過這種方式傳送。
還有,遠端的記憶體轉儲服務(如 netdump)也是以未加密的方式透過網路傳輸記憶體的 內容,記憶體的轉儲也許含有密碼(甚至更糟)或這是資料庫紀錄項,以及其他重要的資訊。
其他的服務像是 finger 與 rwhod 也都會暴露系統上使用者的資訊。
固有不安全的服務範例包括了:
rlogin
rsh
telnet
vsftpd
所有的遠端登入與 shell 程式(rlogin, rsh 與 telnet) 都應該由 SSH 來取代(請參考 第 4.7 節 以取得關於 sshd 的更多資訊)。
FTP 並不像遠端的 shell 那樣地對系統的安全性擁有固有的危險,不過 FTP 伺服器必須要小心地設定而且要 嚴密地監控以避免問題的發生。 請參考 第 5.6 節 以取得保全 FTP 伺服器的更多 資訊。
必須要小心地實作且放置於防火牆以內的服務包括了:
finger
identd
netdump
netdump-server
nfs
portmap
rwhod
sendmail
smb (Samba)
yppasswdd
ypserv
ypxfrd
如需保全網路服務的更多資訊,請參考 第5章。
以下的部份探討用來設定一個簡易防火牆可使用的工具。