歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> 如何保障Unix系統安全

如何保障Unix系統安全

日期:2017/2/27 17:43:45   编辑:Unix教程

  Unix系統的安全等級標准達到C2級,它具有以下安全特征:
  1、訪問控制
  系統通過訪問控制表ACL使得用戶可以自行改變文件的安全級別和訪問權限 。
  
  如: -rwxr-xr-- 1 john test 4月9日17:50 cm
  上面的例子表示文件cm對於用戶john來說可讀、可寫、可執行,對test這個組的其他用戶只有讀和執行的權限,而對除此以外的所有用戶只有讀的權限。系統管理員可用umask命令為每個用戶設置默認的權限值,用戶可用chmod命令來修改自己擁有的文件或目錄的權限。
  
  2、對象的可用性
  當一個對象不再使用時,在它回到自由對象之前,TCB (Trusted Computing Base) 將要清除它,以備下次需要時使用。
  
  3、個人身份標識與認證
  其目的是為了確定用戶的真實身份, 在用戶登錄時它采用擴展的DES算法對輸入的口令進行加密,然後把口令的密文與存放在/etc/password中的數據進行比較,如果二者的值完全相同則允許用戶登錄到系統中,否則禁止用戶的登錄。
  
  4、審計記錄
  Unix系統能夠對很多事件進行記錄,比如:文件的創建和修改以及系統管理的所有操作和其他有關的安全事件(登錄失敗,以root身份進行登錄的情況),通過這些記錄系統管理員就可以對安全問題進行跟蹤。
  
  5、操作的可靠性
  操作的可靠性是指Unix系統用於保證系統的完整性的能力。Unix系統通過對用戶的分級管理,通過對運行級別的劃分,以及前面提到的訪問控制加之自帶的一些工具,能夠很好地保證系統操作的可靠性。
  
  Unix的安全體系結構
  Unix的安全體系結構可以按照ISO/OSI網絡模型的層次結構將它分成七層,如下表所示:
  
  層次 名稱 含義
  7 Policy 安全策略定義、指導
  6 Personnel 使用設備和數據的人員
  5 LAN 計算機設備和數據
  4 Internal Demark 內部區分
  3 Gateway OSI中第7、6、5、4層的功能
  2 Packet-Filter OSI中第3、2、1層的功能
  1 External Demark 外部連接
  
  1、Policy(策略層)
  在這一層中,主要定義了一個組織的安全策略,包括安全策略的需求分析、安全方針的制定,也包括了高層次定義的允許的安全風險以及下層的如何配置設備及過程。
  
  2、Personnel (用戶層)
  本層定義了Unix的安裝、操作、維護和使用以及通過其他方法訪問網絡的人員。從廣義上講, 對Unix多用戶環境下的應用進程也應算在其中。此層的安全策略應該反映出用戶對總體系統安全的期望值。
  
  3、LAN(局域網層)
  它定義用戶的安全程序要保護的設備和數據,包括計算機互聯的設備。如:路由器、單一的Unix主機等。
  
  4、Internal Demark (內部區分層)
  這一層定義了用戶如何將局域網連接到廣域網以及如何將局域網連接到防火牆上。
  
  5、Gateway (嵌入的Unix網關層)
  本層定義了整體平台包括第四層的網絡接口以及第三層的路由器。它用於為廣域網提供防火牆服務。
  
  6、Packet-Filter (包過濾層)
  它對應於OSI的第一層到第三層,本層不僅提供第一層的物理連接,更主要的是根據安全策略, 通過用戶層的進程和包過濾規則對網絡層中的IP包進行過濾。一般的包過濾算法是采用查規則表來實現的,它根據“條件/動作”這樣的規則序列來判斷是前向路由還是扔包。
  
  7、External Demark (外部連接層)
  它定義用戶系統如何與設備、電話線路或其他用戶不能直接控制的媒介進行連接。完整的用戶安全策略應包括這一部分,因線路本身可能允許非授權訪問。
  
  Unix系統不安全的因素
  盡管Unix系統有比較完整的安全體系結構,但它仍然存在很多不安全的因素,主要表現在以下幾個方面:
  
  1、 特權軟件的安全漏洞
  程序員在編寫特權代碼或suid代碼時,如果沒能確保用戶對程序執行環境的完全控制,或者對所有返回的錯誤狀態沒能給予適當的處理,導致入侵者控制程序的運行環境,使得用戶的程序出現不可預期的結果,從而威脅系統的安全。
  
  2、研究源代碼的漏洞
  由於一些程序本身存在著安全漏洞(如緩沖區溢出),入侵者往往通過這些漏洞來對系統進行攻擊。
  
  3、特洛伊木馬
  特洛伊木馬與用戶一般要執行的程序從表面上(如文件名等)看很相似,實際上卻完成其他的操作,如刪除文件、竊取密碼和格式化磁盤等,到用戶發現時,為時已晚。
  
  4、網絡監聽及數據截取
  計算機安全面臨的另一個重要威脅是計算機之間傳輸的數據可以很容易地被截取。由於異種機的互連,敏感數據傳輸處於系統的控制之外,有許多現成的軟件可以監視網絡上傳輸的數據。
  
  5、軟件之間相互作用和設置
  由於大型系統軟件通常由很多人共同協作完成因此無法准確預測系統內每個部分之間的相互作用。例如/bin/login, 它可接收其他一些程序的非法參數,從而可使普通用戶成為超級用戶。另一方面,系統軟件配置的復雜性,以至簡單的配置錯誤可能導致不易覺察的安全問題。
  
  安全管理
  Unix系統安全包括物理安全和邏輯安全,因此與其相對應有物理安全的管理和邏輯安全的管理,下面只針對Unix邏輯安全的管理,從三個方面對此進行論述。
  
  1、防止未授權存取
  防止未授權的人進入系統,這是Unix安全管理最重要的問題。新版Unix提供了專門的鑒別系統,如SUN Solaris使用DES密碼機構和公共關鍵字密碼,該系統極大地提高了網絡環境的安全性。要使Unix鑒別機制更充分地發揮作用,必需加強用戶的安全意識和良好的口令管理,進行用戶和網絡活動的周期檢查。
  
  2、防止洩密
  就是防止已授權或未授權用戶間相互存取或交換對方的重要信息,如用戶文件及各種日志文件(如各種log文件)。為此,必須加強對重要文件的訪問控制和管理,對系統文件和其他重要文件(如用戶root的文件)的屬性一定要作安全設置。
  
  3、防止用戶拒絕系統的管理
  Unix系統不應被一個有意試圖使用過多資源的用戶損壞。由於Unix不能很好地限制用戶對資源的使用,因此,系統管理員需要用ps、df和du命令周期性地檢查系統,以便能夠查出過多占用CPU資源的進程和大量占用磁盤空間的文件和用戶。
  
  保障Unix安全的具體措施
  針對比較突出的安全問題,提出了下面一些具體的措施。
  
  1、防止緩沖區溢出
  據統計,約90%的安全問題來自緩沖區溢出。攻擊者通過寫一個超過緩沖區長度的字符串,然後植入到緩沖區,可能會出現兩個結果,一是過長的字符串覆蓋了相鄰的存儲單元,引起程序運行失敗,嚴重的可導致系統崩潰;另有一個結果就是利用這種漏洞可以執行任意指令,甚至可以取得系統root特級權限。一些版本的Unix系統(如Solaris 2.6和Solaris 7)具備把用戶堆棧設成不可執行的功能,以使這種攻擊不能得逞。以下是讓這個功能生效的步驟:
  
  1)變成root
  2)對/etc/system文件做個拷貝 cp /etc/system /etc/system.BACKUP
  3)用編輯器編輯/etc/system文件
  4)到文件的最後,插入以下幾行:
  set noexec_user_stack=1
  set noexec_user_stack_log=15
  
  5)保存文件,退出編輯器後,重啟機器,以使這些改變生效。可能有些合法使用可執行堆棧的程序在做如上改變後不能正常運行,不過這樣的程序並不多。
  
  2、在inetd.conf中關閉不用的服務
  Unix系統中有許多用不著的服務自動處於激活狀態。它們中可能存在的安全漏洞使攻擊者甚至不需要賬戶就能控制機器。為了系統的安全,應把該關的功能關閉,該限制的文件限制訪問權限。可以用如下方法來關閉:
  1)變成root
  2)備份inetd的配置文件/etc/inetd.conf
  cp /etc/inetd.conf /etc/inetd.conf.BACKUP
  3)編輯/etc/inetd.conf文件
  以“#”符號注釋掉不需要的服務,使其處於不激活的狀態。在確實需要很高安全的機器上,最好注釋掉telnet和ftp,即使要使用此兩項服務,也要對使用情況進行限制,如用TCP Wrapper對使用telnet或ftp的IP地址進行限制。
  4)在改變/etc/inetd.conf後,找到inetd進程的id號,用kill向它發送HUP信號來刷新它。一定要確保kill了inetd進程後,它還在運行。
  
  3 、給系統打補丁
  Unix系統被發現的漏洞,幾乎都有了相應的補丁程序。因此,系統管理員需對系統漏洞做及時的修補。軟件公司都會定期提供補丁。
  
  4、重要主機單獨設立網段
  從安全角度考慮,經常做telnet、ftp等需要傳送口令的重要機密信息應用的主機應該單獨設立一個網段, 以避免某一台個人機被攻破,被攻擊者裝上sniffer, 造成整個網段通信全部暴露。
  
  5、定期檢查
  定期檢查系統日志文件,在備份設備上及時備份。定期檢查關鍵配置文件(最長不超過一個月)。
  重要用戶的口令應該定期修改(不長於三個月),不同主機使用不同的口令。
Copyright © Linux教程網 All Rights Reserved