UNIX 電腦保安/遠端訪問
建議主題:調變解調器、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 檔案用於啟用登入安全性。當檔案存在時,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 程式用於使用 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 mailer 在 sendmail.cf 配置檔案中使用 Mprog 選項進行配置。
正在建設中...