跳轉到內容

UNIX 計算機安全/遠程訪問

來自 Wikibooks,開放世界中的開放書籍

建議主題:調制解調器、ftp、rlogin、ssh、UUCP、NFS、Samba 和 Apache。


Telnet 曾經是一種非常流行的遠程訪問方法。但是,它幾乎完全被 SSH 取代了。也許 Telnet 唯一剩下的合法用途是對其他互聯網協議(如 HTTP 和 SMTP)進行低級調試。

telnet 命令用於與另一個可以通過網絡訪問的主機建立連接,並使用 TELNET 協議與其通信。通常,telnet 用於通過標準 TELNET 端口連接到用戶登錄。對於默認配置,登錄密碼以明文形式發送到網絡。也就是說,如果兩個主機之間的網絡數據包被某個中間人讀取,則密碼字符串將以可讀形式出現在數據包中。同樣,會話期間發送的任何數據也會以可讀形式出現,包括發送到遠程主機的任何其他安全信息。

通常,如果您想保持通信安全,telnet 的默認配置只應該在您高度確信安全的網絡段中使用。但是,除非網絡保持物理隔離,否則建立這樣的網絡越來越難。(即使這樣,也永遠不可能 100% 確定。)

使用 telnet 保護密碼的一種方法是在此功能可用時將其配置為以 Kerberos 客戶端身份運行。Kerberos 客戶端將支持安全身份驗證,並有助於維護密碼字符串的機密性。但是,這不會提供加密會話,因此登錄後發送的數據傳輸仍然容易受到攔截。

從安全角度來看,可以說 telnet 的優點是它通常缺乏繞過 Berkeley 遠程登錄命令(如 rlogin)提供的登錄序列的方法。這降低了後者命令的后門訪問方法的風險。

telnet 服務通常可以配置為在呈現登錄提示之前顯示文本橫幅。此橫幅可用於向訪問系統的任何人顯示措辭謹慎的警告。所以從這個意義上說,它就像一塊財產上的“禁止通行”標誌。如果有人在登錄之前收到此警告,那麼他們就不能聲稱對他們嘗試訪問的內容一無所知。橫幅的存在和一致使用在需要起訴個人未經授權訪問的情況下可能很有用。

/etc/securetty

[編輯 | 編輯源碼]

/etc/securetty 文件用於啟用登錄安全性。當文件存在時,root 帳戶只允許通過文件中列出的設備登錄,每行一個。為了防止通過 root 帳戶進行直接遠程連接,建議的做法是在此文件中只包含單個條目 console。請注意,這不會阻止系統管理員通過其用戶帳戶連接到系統,然後執行 su - 才能成為 root。事實上,這是推薦的方法,因為它允許記錄 root 帳戶的使用情況。

創建 /etc/securetty 文件時,應適當限制它,以防止除 root 之外的任何帳戶修改。因此,擁有者和組為 root:sys,文件模式為 640 將有效地保護此文件。

文件傳輸協議旨在允許在網絡上的兩個系統之間可靠地傳輸文件。它有兩個網絡端口,通常是 20 和 21,並且使用 tcp 進行可靠的數據包傳輸。(端口 20 用於數據傳輸,而端口 21 用於會話控制。)

通過 ftp 連接到遠程系統需要在目標位置登錄。但是,除非啟用了像 kerberos 這樣的安全身份驗證系統,否則密碼將以明文形式發送到網絡。也就是說,任何使用數據包嗅探器攔截會話數據包的人都可以讀取密碼。此外,任何數據文件也以未加密的形式發送。此未受保護版本的 ftp 僅應在安全網絡上使用,或者在安全性不重要的情況下使用。(見下文 匿名 ftp。)對於加密登錄和文件傳輸,可以使用 Secure Shell 軟件。但是,至少在目前,sftp 命令等效項不支持與標準版本的 ftp 一樣豐富的命令集。

ftp 的其他幾個功能可能會對系統管理員構成安全問題。其中第一個是使用用戶主目錄中的 .netrc 文件。可以配置此文件以允許自動連接到遠程站點,而無需提供帳戶名或密碼。但是,存儲在 .netrc 中的任何密碼都以未加密的形式存在。因此,如果未經授權的人員能夠獲得對 .netrc 文件的讀取訪問權限(例如通過入侵系統),他們也可能能夠訪問其他遠程系統。為了防止這種情況,許多系統管理員會定期搜索其系統中的 .netrc 文件,然後刪除它們或檢查其內容。

ftp 守護程序可以配置為允許一種稱為“匿名 ftp”的訪問形式。這允許任何來自遠程站點的個人通過在登錄提示中鍵入“anonymous”進行連接,然後輸入任何字符串作為密碼。(按照慣例,密碼通常以電子郵件地址的形式輸入,但这僅是禮貌。)配置不當的匿名 ftp 功能可能會造成一系列弱點,入侵者可以利用這些弱點。

正確配置 匿名 ftp 帳戶的說明通常在 ftp 守護程序的手冊頁中提供。如果需要此服務,應格外小心地遵循記錄的說明。特別是,~ftp/etc/passwd 文件不應包含加密的密碼信息,並且只有 ls 命令應該位於 ~ftp/usr/bin/ 目錄中,並且具有 111 權限。

更多內容...

許多供應商已經採用了文件傳輸協議的 wu-ftpd 版本。這在 ftp 配置中包含了額外的功能,其中許多功能可用於增強系統的安全性。

敬請期待...

Sendmail

[編輯 | 編輯源碼]

sendmail 程序用於使用 SMTP(簡單郵件傳輸協議)發送、中繼和接收電子郵件。不幸的是,在安全漏洞和利用方面,它有著不光彩的历史。因此,重要的是要利用已添加到 sendmail 中的任何安全功能,并在這些功能可用時將最新安全補丁應用到此產品。

在載入 sendmail 的每個系統上,它都會讀取一個文件,用於存儲郵件別名列表。這些別名是 sendmail 程序將其轉換為另一種形式的電子郵件地址,例如電子郵件地址的發佈列表。別名列表的內置功能之一是能夠使用 prog mailer 執行 shell 命令。

這是一個這樣的條目的示例

save_debug_message   : "|/usr/local/bin/record_bug.sh",debug_log

當電子郵件消息發送到此服務器上的 save_debug_message 地址時,它的 sendmail 守護程序會執行 /usr/local/bin/record_bug.sh 命令,并将郵件消息作为标准输入传递給腳本。

正如您所料,此功能很容易將安全漏洞引入系統。可以將任意內容的消息發送到此地址,如果它沒有安全地處理數據,則格式適當的電子郵件可能會被用來入侵系統。同樣,如果腳本沒有得到安全保護,系統上的用戶可以出于自身目的修改它。即使帳戶被終止的用戶也可能通過這種方式重新獲得訪問權限。

為了試圖限制別名命令可能造成的損害,引入了一種功能,即使用 smrsh shell。當 sendmail 進程配置為使用 smrsh 作為 prog mailer 時,它會限制正在執行的腳本的功能。系統管理員可以將腳本中可以運行的命令限制為一小組“安全”命令。prog mailersendmail.cf 配置文件中使用 Mprog 選項進行配置。

正在建設中...

進一步閱讀

[编辑 | 编辑源代码]
华夏公益教科书