网络安全讲座之四账号安全和文件系统安全
生活随笔
收集整理的這篇文章主要介紹了
网络安全讲座之四账号安全和文件系统安全
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用戶帳號不適當的安全問題是***侵入系統的主要手段之一。其實小心的帳號管理員可以避免很多潛在的問題,如選擇強固的密碼、有效的策略加強通知用戶的習慣,分配適當的權限等。所有這些要求一定要符合安全結構的尺度。介于整個過程實施的復雜性,需要多個用戶共同來完成,而當維護小的***時就不需要麻煩這些所有的用戶。
整體的安全策略中本地帳號的安全是非常重要的。這節課,我們將探討用不同的方法來保護本地帳號的安全。
本章要點:
·描述帳號安全和密碼之間的關系
·在Windows NT和UNIX系統的實現安全帳號的技術
·在NT下實施密碼策略的步驟
·描述UNIX密碼安全及密碼文件的格式
·分析UNIX下的安全威脅,拒絕帳號訪問和監視帳號
密碼的重要性
密碼是UNIX和Windows NT安全基礎的核心。如果危及到密碼,那個基本的安全機制和模式將遭到嚴重影響。為了選擇強固的密碼,你需要在帳號策略里設置更多相關的選項。你還要幫助用戶選擇強壯的密碼。
一個強固的密碼至于要有下列四方面內容的三種:
·大寫字母
·小寫字母
·數字
·非字母數字的字符,如標點符號
強固的密碼還要符合下列的規則
·不使用普通的名字或昵稱
·不使用普通的個人信息,如生日日期
·密碼里不含有重復的字母或數字
·至少使用八個字符
從***的思想考慮,避免密碼容易被猜出或發現(比如不要寫到紙條上放到抽屜里)。
NT下的密碼安全
在NT下為了強制使用強壯的密碼,你可以更改注冊表里的LSA值來實現,叫passfilt.dll,這個文件可以在Windows NT的Service Pack2及以后的版本里找到。在LSA鍵值下需要添加Notification Packages字串并把值為passfilt.dll加進去。這串值必須在公司所有的域控制器里都加入。同時你還需要使用passprop.exe這個程序來使passfilt.dll生效。
UNIX下的密碼安全
在UNIX中加密后的密碼信息是存在一個文件里,通常是/etc/passwd 。維護好這個文件的安全性是非常重要的。在UNIX系統里它的屬主是具有最高權限的帳號,即root的。UNIX基本上有兩類用戶:普通用戶和系統特權用戶。有時特權用戶也被不確切地叫做超級用戶。實際上,一個超級用戶帳號的標識號是為零。當一個帳號建立的時候,會被分配一個唯一的標識數字(UID)。這個數字分配從0開始,最低的數字(也就是最高的權限)是分配給登陸帳號root的。Root可以執行任何程序,打開任何目錄,檢查任何文件,改變系統內任何對象的屬性及其它任意的功能。任何對于***UNIX系統的***最終目的都是取得Root帳號。
Root掌管/etc/passwd文件。此文件可以被所有登陸的用戶讀取,它包含每一個用戶的認證信息。因此,在簡單的UNIX系統上任何人都可以復制這個文件的內容并分析哪個字段是包含加密后的密碼。然后利用不同的密碼一系列的嘗試和/etc/passwd加密后的字串進行比較。因此,密碼的選擇是UNIX系統安全級別中最重要的。
Windows NT帳號安全
首先,也是最困難的任務就是確保只有必需的帳戶被使用而且每個帳號僅有能滿足他們完成工作的最小權限。在一個大型的公司里,通常是用一個或多個用戶域集中管理所有的用戶帳號。域是一個中央集權的帳號數據庫可以在分布于公司中間。因此有經驗的管理員盡量地把用戶放到較少的域里面以便于管理。這種限制通常促進公司策略的粘附性。本地組創建本地資源并管理權限。本地資源的機器要被配置成信任集中帳號域。但有時這種設置也是不可行的,因為和遠程站點間沒有足夠的帶寬。
有幾種技術可以解決帳號安全的問題。其中一個主要關心的是確保不再有新的帳號建立或已存在的帳戶權限不作改動。另一個簡單的方法就是利用net user和net group命令把信息定向到一個文體文件里后進行比照。有規律地運行這些命令并對輸出的文本文件中的帳號列表進行比較就能輕易地發現問題。一些內置的工具,比如系統任務進度表程序,可以自動的執行。也可以使用其它一些外部工具比如Perl或diff可以自動地對標準列表和當前的設置進行比照。
帳號重命名
另一個可靠的辦法就是對默認的帳號重命名。包括administrator、guest以及其它一些由安裝軟件時(如IIS)所自動建立的帳號。這些帳號必須好好保護因為它們易受***。然而簡單地重命名帳號并不能很好地隱藏它們。因為Windows NT必須知道哪一個是管理員帳號,管理員帳號當前的名字是保存在注冊表里的。
帳號策略
為了保持用戶數據庫不被侵犯,你必須強制用戶養成良好的習慣在帳號的設置上要能有效地防止***使用暴力破解的方法來***。這些任務主要是通過Windows NT上的帳號策略上設置的。帳號策略的設置是通過域用戶管理器來實施的,從策略的菜單中選擇用戶權限,第一項是有關密碼的時效,第二項是有關密碼長度的限制,以及帳號鎖定等機制。
實現強壯的密碼
大多數情況下,僅養成使用好密碼的習慣是不夠的;你還需要使用更強壯的密碼來有效阻止類似于字典***和暴力破解***。我們前面已經討論,一個強壯的密碼至少需要六個字符,不能包括用戶名的任何一部分,并且至少要有大小寫字母、數字和通配符等。為了實施強壯的密碼你需要在注冊表里LSA項加入本課已提過的其它的密碼過濾器。在主域控制器或在任一可能會升級為主域控制器的備份域控制器上,你都需要在注冊表HKLM\System\CurrentControlSet\Control\LSA中加入PASSFILT的字串。
Windows2000帳號大漏洞
在Windows2000啟動之后,按照屏幕提示按下ALT+CTRL+DEL進行登錄,在登錄界面將光標移至用戶名輸入框,按鍵盤上的Ctrl+Shift鍵進行輸入法的切換,屏幕上出現輸入法狀態條,在出現的“全拼”輸入法中將鼠標移至輸入法狀態條點擊鼠標右鍵,出現的選單中選擇“幫助”,然后繼續選擇“輸入法入門”,在窗口頂部會出現幾個按鈕,奧妙就在“選項按鈕”上。如果系統是未安裝Windows2000 ServicePack1或IE5.5的系統,用鼠標左鍵點擊選項按鈕,在出現的選單中選擇“主頁”,這時在已出現的幫助窗口的右側會出現IE瀏覽器界面中的“此頁不可顯示”頁面,其中有個“檢測網絡設置”的鏈接,點擊它就會出現網絡設置選項,這樣任何人都可以對網絡設置甚至控制面板做任何修改。
或者之前用鼠標左鍵點擊“選項”按鈕時,在出現的選單選擇“Internet選項”中,就可以對主頁、連結,安全、高級選項等做任何修改。最為嚴重的是用鼠標右鍵點擊先前提到的“選項”按鈕會出現一個選單,選擇“跳至URL”,這時出現一個對話框,其中有一個跳至該URL輸入框,輸入你想看到的路徑,比如c:,那么這時在已出現的幫助窗口的右側會出現資源管理器c盤的界面顯示,這時已經是系統管理員權限對C盤進行操作了。操作者可以對看到的數據做任何的操作,這樣他就完全繞過了Windows2000的登錄驗證機制。
如果系統是安裝了Windows2000 ServicePack1或IE5.5的系統,上面所用的“網絡設置選項”就不能執行了,但“Internet選項”仍可執行。資源管理器界面仍可出現,通過路徑輸入,所有的文件夾中的文件和根目錄下的文件都可看到,但已不能直接對文件夾和文件進行操作,然而仍可以用鼠標右鍵點擊文件夾和文件選擇進行刪除、重命名和發送到軟盤等操作,而且更為嚴重的是操作者可以對文件夾進行共享操作,在單個文件出現的對話框中選擇屬性,就可以任意添加共享權限,如任何人都能完全控制的權限,這樣網絡中的所有人都可以通過網絡遠程登錄完全控制所有數據資料!
||||||UNIX帳號安全
在討論UNIX帳號安全,你首先要理解UNIX密碼的安全。這種理解需要檢查密碼文件的格式。你可以利用下面的命令來得到幾種特殊密碼的格式 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> $ man 5 password
密碼文件包括幾個字段,在表2-1作了詳細解釋
字 段 用 處
登陸名字
用戶登陸時所真正使用的名字
加密后的密碼
在UNIX中,密碼是用高強度的DES算法來進行加密并保存結果
UID
用戶唯一的標識號
GID
用戶組的標識號
用戶名
用戶真正的名字
HOME
默認的主目錄
SHELL
默認的程序SHELL接口
密碼文件在顯示的時候是加密的;這種顯示叫做Shadow密碼,通常創建在/etc/shadow,并屬于root且只有root有權訪問。
密碼時效
按目前的形勢,已有更強大的硬件大大地縮短了利用自動運行的程序來猜測密碼的時間。因此在UNIX系統中防止密碼被***的別一方法就是要經常地改變密碼。很多時候,用戶卻不改變密碼。因此一種機制用來強制規律性的更改密碼是合乎要求的。這種技術稱做密碼時效并在很多UNIX系統上有效。
密碼時效:LINUX
在LINUX系統上,密碼時效是通過chage命令來管理的。
參數意思
-m 密碼可更改的最小天數。如果是零代表任何時候都可以更改密碼
-M 密碼更改的最大天數
-W 用戶密碼到期前,提前收到警告信息的天數。
-e 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-i 停滯時期。如果一個密碼已過期這些天,那么此帳號將不可用。
-l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。
舉個例子
% chage ?m 2 ?M 30 ?W 5 steven
此命令要求用戶steven兩天內不能更改密碼,并且密碼最長的存活期為30天,并在密碼過期前5天通知他。
記錄不成功的登陸企圖
所有的UNIX系統都能夠記錄非成功的登陸企圖。在LINUX中,登陸的失敗是由syslog守護進程記錄在/var/log/messages文件里。可以用下列命令來查找相關信息
$ grep login /var/log/messages
搜索路徑(PATH)的重要性
在UNIX里,常使用的命令用來在不同的環境下查找一組特殊的目錄稱做PATH。想要運行當前目錄包含的命令時是不需要加上一長串路徑名的。在UNIX中用戶經常使用”.”來表示當前的目錄。如果”.”作為shell環境變量的一部分時,一個全局目錄下的shell腳本或公用命令就有可能被相同目錄下的偽程序所解釋,而這個命令可能包含一段代碼,一旦被執行后果可能是較嚴重的,比如是一個***程序。在Bourne or Korn Shell里搜索路徑通常這樣來設置:
$ PATH=pathname1:pathname2:pathname3:
$ export PATH
在C或類似的shell里,以下列命令設置:
% set path = (pathname1 pathname2 pathname3)
在UNIX中像這樣的路徑可以保存在.profile文件里,可以看到像下面的語句
PATH=/bin:/usr/bin:/sbin:$HOME
Export PATH
因此,如果你經常參考用戶主目錄下的某個文件時,就創建一個叫”bin”的并把所以的個人的可執行文件放到里面,并要嚴格注意它們的安全性。假設”.”路徑名存在于用戶的shell初始化文件里,并且用戶不精通有關安全的知識而且不太注意環境變量中路徑,那么可以想像他經常使用到的who命令。假設用戶已創建了下面的文件
$ touch /tmp/testfile
然后,編輯下面的程序并保存為who.c文件
# include
main()
{
system (“/usr/bin/who”);
system (“/bin/rm /tmp/testfile 2>/dev/null”);
}
然后對些程序進行編譯
$ gcc ?o who who.c
并且此用戶可能含有這樣的profile:
PATH=.:/bin:/usr/bin:/sbin:$HOME
Export PATH
現在,如果戶鍵入
$ who
再去找找你剛剛建立的testfile這個文件,看看發生了什么..
限制root登陸
另一增強root帳號安全的方法是限制其在系統上直接登陸。不同版本的UNIX處理此項任務的方法是不同的。
在SUN的Solaris系統上要修改/etc/default/login文件,你需要加入下面一行
CONSOLE=/dev/console 現在你已知道如何實施帳號的安全,并已建立了一個有效的認證機制,接下來將實施安全中訪問控制部分。訪問控制必須在兩個地方實施,即本地和遠程。文件可以由用戶在本地訪問或通過網絡進行遠程訪問。本課將對這兩種方法逐一進行測試。
Windows NT文件系統安全
當建立文件的權限時,你必須先實現Windows NT的文件系統(NTFS),當然你也可以使用FAT格式,但是并不支持文件級的權限。FAT只在那些相對來講,對安全要求較低的情況下使用。即使NTFS也不能認為是能完全地保護文件的,這一點在稍后的實驗中你將會看到。
一旦已經實施了NTFS的文件系統格式,可通過Windows NT的資源管理器直接來管理文件的安全。使用NT資源管理器你可為設置目錄或文件的權限。基于文件級的權限你可以分配下面幾種:讀取(R),寫入(W),執行(X),刪除(D),改變(P),取得所有權(O)。詳細請參照下表:
NTFS權限
基于目錄
基于文件
讀取 (R)
顯示目錄名,屬性,所有者及權限
顯示文件數據,屬性,所有者及權限
寫入 (W)
添加文件和目錄,改變一個屬性以及顯示所有者和權限
顯示所有者和權限;改變文件的屬性;在文件內加入數據
執行 (X)
顯示屬性,可進入目錄中的目錄,顯示所有者和權限
顯示文件屬性,所有者和權限;如果是可執行文件可運行
刪除 (D)
可刪除目錄
可刪除文件
改變權限 (P)
改變目錄的權限
改變文件的權限
取得所有權 (O)
取得目錄的所有權
取得文件的所有權
為了簡化權限的管理,NT有幾種有關權限的標準。通常在分配權限的時候,往往是組合使用權限而不是使用單獨的權限,這些權限如下表
標準權限
基于目錄
基于文件
不可訪問
無
無
列出
RX
不適用
讀取
RX
RX
添加
WX
不適用
添加和讀取
RWS
RX
更改
RWXD
RWXD
完全控制
ALL
ALL
在這些權限的基礎上,你可以達到根據需要來訪問控制。但是確定什么是你需要的最小權限是困難的。回顧一下第一課我們所講的一個新建立的NTFS分區默認情況下everyone組對其有完全控制的權限。這種標準是無法接受的,如果你不加選擇的刪除everyone組或在任何地方都把不可訪問的權限賦予給everyone組,那么有可能會損壞你的NT安裝。Everyone組必須可以訪問主要的系統目錄(比如登陸目錄)來使用戶能夠連接和登陸到服務器上。因為用戶在開始登陸的過程中還沒有被認證,你必須使用everyone組提供訪問以使他們能夠被認證。賦予everyone組不可訪問其實更危險,因為拒絕訪問優先于允許訪問,而且所有的用戶都是屬于everyone組的,這樣也就等于完全阻止了對文件系統的訪問。
目錄的權限分配和文件是一樣的。目錄的權限影響其目錄中新建的文件。換句話說就是任何新建的文件將繼承此目錄的權限。
磁盤分區
因為操作系統目錄的權限是非常嚴格的,把Windows NT放置自己單獨的分區內是個明智的選擇。在這個分區上只安裝Windows NT而不安裝應用程序使管理任務簡單很多,一個磁盤分區可能會像下圖這樣。 操作系統
程序文件
數據
盡管這種分區需要額外地策劃,但它還是很有吸引力,特別是簡化了對于目錄權限的管理。目錄可以根據需要分開。如果 你在運行一個設備如WEB服務器,你可能會考慮使用HTML,圖像和其它一些靜態文件在一個分區上,而你的腳本文件則放到另一個分區上。你可以將腳本設置成只可以執行那些靜態文件可允許讀取。這種策略的結果就是易于管理文件和目錄的權限。
復制和移動文件
最后,你要理解當文件被復制和移動的時候發生了什么。每當一個文件被復制到一個新的目錄里時,這個文件將繼承目標目錄的權限。當文件移動時,過程是很復雜的。如果一個文件從一個目錄移動到同一分區下的另一個目錄,那么此文件的權限將保留。當文件在相同的分區內移動時,Windows NT對于新目錄的位置更新目錄分配表。當文件在兩個不同的分區間移動時,Windows NT首先把這個文件復制到新位置,在成功地復制之后,Windows NTG再刪除掉原始的那個文件。一個新文件被建立后,將繼承目標目錄的權限。
遠程文件訪問控制
遠程的訪問一個文件或目錄是通過共享權限來提供的。一個共享就是供遠程用戶訪問文件的網絡訪問點。當配置這些共享時,你要設置相應的權限。共享權限的應用類似于在NTFS上權限的應用。主要的區別是共享權限缺乏精細地權限設置。你只能分配不可訪問、讀取、更改和完全控制的權限。參照下表
權限
允許
完全控制
改變文件的權限;在NTFS卷上取得文件的所有權;
能夠完成所有,有更改權限所執行的任務
更改
創建目錄和添加文件;更改文件內的數據;更改文件的屬性;
刪除目錄和文件;能完成所有有讀取權限執行的任務
讀取
顯示目錄和文件名;顯示文件數據和屬性;運行應用程序文件
在目錄里可轉到另一目錄
不可訪問
僅能和共享目錄建立連接,拒絕訪問而且目錄里的內容不可見
共享的權限和共享點一定要小心地分配。因為權限僅僅是分配給共享點的,任何共享點下的文件或目錄都是以和共享點本身相同的權限被訪問的。
結合使用本地和遠程權限
Windows NT權限的設計是要綜合使用NTFS和共享權限。因為Windows NT的設計是作為一個服務器,用戶很少直接訪問文件。當然,共享的安全性對于需要更加安全是遠遠不夠的,因此共享和遠程都需要使用。當你結合使用共享和NTFS權限時,兩者中最嚴格的權限優先使用。
UNIX文件系統安全
在UNIX領域里,所有的信息都是儲存在文件里,并有一個相關的名字。文件是存儲在目錄中的,但UNIX仍把它看作是文件。本課的重點是UNIX文件系統是如何處理權限的。這些權限控制什么樣的用戶可以訪問以及如何訪問。文件系統已是強制UNIX系統安全的最基礎的方法。
||||||UNIX下的文件格式
UNIX對于文件的讀取和寫入,是以像樹狀結構的方式維護的。很多年前,UXNI文件系統就支持長文件名和目錄名。所有的文件都有i-節點或連接點;它包含一個文件所有的統計和后勤信息。一些數據包含:
·文件類型
·大小(以字節為單位)
·參考計數。如果有其它不同名字而實際上是相同的一個文件(叫做鏈接文件)
·拒絕地址列表指示器
·時間戳。比如文件最后一次訪問的時間;文件內容最后一次被修改的時間等..
·安全相關字段:文件屬主的UID及GID
·文件訪問權限或位,也稱做Mode bits。
Ls 命令是最常用的UNIX命令,用來查看文件和目錄的權限。
第一個命令ls –ld .意思是:列出當.下的內容通常.是指當前的目錄;在本例中,用戶自動地登陸到他的主目錄中,而命令中的.是作為當前目錄的意思
對于命令輸出的結果詳細說明見下表
輸出符號
含義
d
表明目錄
r
屬主可以讀取訪問
w
屬主有寫權限
x 屬主對目錄有搜索及執行權限 R
屬主所在組的用戶有讀取訪問的權限(本例中是staff組)
-屬主所在組沒有寫權限
x
屬主所在組對目錄有搜索及執行權限
R
其它用戶有讀取權限(任何人)
-其它用戶沒有寫權限
X
其它用戶對目錄有搜索及執行權限
4
參考計數
test
屬主的登陸名
Staff
屬主用戶所屬于的組名
512
目錄的大小(字節)
Time Stamp
最后一次改變大小的日期
08:41
改變時的時間
.所有這些信息所屬于的文件名
第二個命令ls –la .bashrc_profile如圖輸出的有關用戶配置文件的信息,它的組成部分見下表
范圍值
含義
-普通文件
R
屬主有讀取訪問權限
W
屬主有寫權限
屬主沒有執行權限
R
屬主所在組有讀取權限
-屬主所在組沒有寫權限
-任何組都沒有執行的權限
R
其它用戶有讀取權限(任何人) 其它用戶有寫權限
其它用戶沒有執行的權限
230
文件大小
Time Stamp
文件建立的日期。第三個命令ls –la 123列出一個普通文件的權限。此文件在這里叫123。ls命令通常都是列出其屬主和其它用戶對此文件有什么樣的特殊權限。
第四個命令ls –l /etc/rc.d/init.d/linuxconf主要列出了linux重要配置文件linuxconf的權限。參照表3-6
文件值
含義
L
鏈接;文件指向另一個文件??????????? Rwx
屬主有完全控制的權限??????????? Rwx 屬主所在組有完全控制的權限
Rwx
所有其它用戶有完全控制的權限
1
參考計數(說明是唯一的文件)
Root此文件真正的所有者
Root
文件所屬的組名43 文件大小(字節)
Stamp文件首次建立的日期
用來說明真正文件的鏈接或符號
usr/lib/linuxconf/
redhat/scripts/linuxconf ?? 說明文件的物理位置
現在你已經理解了在UNIX下的文件或目錄不同模式位所代表的含義,下面我們將用不同的方法來改變它們。
通常對普通文件默認的權限是666(屬主、所在組及其它用戶有讀取和寫入的權限)。每個位(八進制值)都分配給文件的三個組成部分(屬主、所在組及其它用戶)。對于一個可執行的程序默認的權限可能是777(對所有的用戶都是有讀取、寫入和搜索執行的權限)。
Umask命令默認的”mask”為022,通常與文件的模式位相AND來改變,比如對一個默認權限為0666的文件作AND得到最后的模式位為0644,也就是最后文件的權限為屬主有讀、寫權限,所在組和其它用戶有只讀的權限。
在一個站點中的所有的用戶都期望保護他們自己的數據,默認情況下,是由其它用戶來檢查的,所有的用戶都應該有一個UMASK值為077。如果用戶需要和所在組的用戶協同完成項目時,那么umask值為037是最佳的選擇。
The chmod 命令
Chmod命令是用來操縱文件權限的。這個命令可以以兩種方法來應用
·絕對模式:當使用這種方法時,命令是這樣的
chmod 666 filename
這里,權限的模式位已經被絕對地應用到了文件上。應用到不同組成部分上的權限(如屬主,組,其它用戶)取決于輸出的模式位,請參考表3-4
·符號模式:當使用這種方法時,命令是這樣的
chmod a+rwx filname
這里,對于些文件所有用戶的權限都是可以讀取、寫入及執行。因為這些符號符合利用ls命令所顯示出來的描述。
下表總結了所有Chmod命令使用的符號
符號
含義
U用戶或屬主
G組
O其它
A所有的用戶,組和其它部分
+增加這些權限
-去掉這些權限
=設置權限等于
整體的安全策略中本地帳號的安全是非常重要的。這節課,我們將探討用不同的方法來保護本地帳號的安全。
本章要點:
·描述帳號安全和密碼之間的關系
·在Windows NT和UNIX系統的實現安全帳號的技術
·在NT下實施密碼策略的步驟
·描述UNIX密碼安全及密碼文件的格式
·分析UNIX下的安全威脅,拒絕帳號訪問和監視帳號
密碼的重要性
密碼是UNIX和Windows NT安全基礎的核心。如果危及到密碼,那個基本的安全機制和模式將遭到嚴重影響。為了選擇強固的密碼,你需要在帳號策略里設置更多相關的選項。你還要幫助用戶選擇強壯的密碼。
一個強固的密碼至于要有下列四方面內容的三種:
·大寫字母
·小寫字母
·數字
·非字母數字的字符,如標點符號
強固的密碼還要符合下列的規則
·不使用普通的名字或昵稱
·不使用普通的個人信息,如生日日期
·密碼里不含有重復的字母或數字
·至少使用八個字符
從***的思想考慮,避免密碼容易被猜出或發現(比如不要寫到紙條上放到抽屜里)。
NT下的密碼安全
在NT下為了強制使用強壯的密碼,你可以更改注冊表里的LSA值來實現,叫passfilt.dll,這個文件可以在Windows NT的Service Pack2及以后的版本里找到。在LSA鍵值下需要添加Notification Packages字串并把值為passfilt.dll加進去。這串值必須在公司所有的域控制器里都加入。同時你還需要使用passprop.exe這個程序來使passfilt.dll生效。
UNIX下的密碼安全
在UNIX中加密后的密碼信息是存在一個文件里,通常是/etc/passwd 。維護好這個文件的安全性是非常重要的。在UNIX系統里它的屬主是具有最高權限的帳號,即root的。UNIX基本上有兩類用戶:普通用戶和系統特權用戶。有時特權用戶也被不確切地叫做超級用戶。實際上,一個超級用戶帳號的標識號是為零。當一個帳號建立的時候,會被分配一個唯一的標識數字(UID)。這個數字分配從0開始,最低的數字(也就是最高的權限)是分配給登陸帳號root的。Root可以執行任何程序,打開任何目錄,檢查任何文件,改變系統內任何對象的屬性及其它任意的功能。任何對于***UNIX系統的***最終目的都是取得Root帳號。
Root掌管/etc/passwd文件。此文件可以被所有登陸的用戶讀取,它包含每一個用戶的認證信息。因此,在簡單的UNIX系統上任何人都可以復制這個文件的內容并分析哪個字段是包含加密后的密碼。然后利用不同的密碼一系列的嘗試和/etc/passwd加密后的字串進行比較。因此,密碼的選擇是UNIX系統安全級別中最重要的。
Windows NT帳號安全
首先,也是最困難的任務就是確保只有必需的帳戶被使用而且每個帳號僅有能滿足他們完成工作的最小權限。在一個大型的公司里,通常是用一個或多個用戶域集中管理所有的用戶帳號。域是一個中央集權的帳號數據庫可以在分布于公司中間。因此有經驗的管理員盡量地把用戶放到較少的域里面以便于管理。這種限制通常促進公司策略的粘附性。本地組創建本地資源并管理權限。本地資源的機器要被配置成信任集中帳號域。但有時這種設置也是不可行的,因為和遠程站點間沒有足夠的帶寬。
有幾種技術可以解決帳號安全的問題。其中一個主要關心的是確保不再有新的帳號建立或已存在的帳戶權限不作改動。另一個簡單的方法就是利用net user和net group命令把信息定向到一個文體文件里后進行比照。有規律地運行這些命令并對輸出的文本文件中的帳號列表進行比較就能輕易地發現問題。一些內置的工具,比如系統任務進度表程序,可以自動的執行。也可以使用其它一些外部工具比如Perl或diff可以自動地對標準列表和當前的設置進行比照。
帳號重命名
另一個可靠的辦法就是對默認的帳號重命名。包括administrator、guest以及其它一些由安裝軟件時(如IIS)所自動建立的帳號。這些帳號必須好好保護因為它們易受***。然而簡單地重命名帳號并不能很好地隱藏它們。因為Windows NT必須知道哪一個是管理員帳號,管理員帳號當前的名字是保存在注冊表里的。
帳號策略
為了保持用戶數據庫不被侵犯,你必須強制用戶養成良好的習慣在帳號的設置上要能有效地防止***使用暴力破解的方法來***。這些任務主要是通過Windows NT上的帳號策略上設置的。帳號策略的設置是通過域用戶管理器來實施的,從策略的菜單中選擇用戶權限,第一項是有關密碼的時效,第二項是有關密碼長度的限制,以及帳號鎖定等機制。
實現強壯的密碼
大多數情況下,僅養成使用好密碼的習慣是不夠的;你還需要使用更強壯的密碼來有效阻止類似于字典***和暴力破解***。我們前面已經討論,一個強壯的密碼至少需要六個字符,不能包括用戶名的任何一部分,并且至少要有大小寫字母、數字和通配符等。為了實施強壯的密碼你需要在注冊表里LSA項加入本課已提過的其它的密碼過濾器。在主域控制器或在任一可能會升級為主域控制器的備份域控制器上,你都需要在注冊表HKLM\System\CurrentControlSet\Control\LSA中加入PASSFILT的字串。
Windows2000帳號大漏洞
在Windows2000啟動之后,按照屏幕提示按下ALT+CTRL+DEL進行登錄,在登錄界面將光標移至用戶名輸入框,按鍵盤上的Ctrl+Shift鍵進行輸入法的切換,屏幕上出現輸入法狀態條,在出現的“全拼”輸入法中將鼠標移至輸入法狀態條點擊鼠標右鍵,出現的選單中選擇“幫助”,然后繼續選擇“輸入法入門”,在窗口頂部會出現幾個按鈕,奧妙就在“選項按鈕”上。如果系統是未安裝Windows2000 ServicePack1或IE5.5的系統,用鼠標左鍵點擊選項按鈕,在出現的選單中選擇“主頁”,這時在已出現的幫助窗口的右側會出現IE瀏覽器界面中的“此頁不可顯示”頁面,其中有個“檢測網絡設置”的鏈接,點擊它就會出現網絡設置選項,這樣任何人都可以對網絡設置甚至控制面板做任何修改。
或者之前用鼠標左鍵點擊“選項”按鈕時,在出現的選單選擇“Internet選項”中,就可以對主頁、連結,安全、高級選項等做任何修改。最為嚴重的是用鼠標右鍵點擊先前提到的“選項”按鈕會出現一個選單,選擇“跳至URL”,這時出現一個對話框,其中有一個跳至該URL輸入框,輸入你想看到的路徑,比如c:,那么這時在已出現的幫助窗口的右側會出現資源管理器c盤的界面顯示,這時已經是系統管理員權限對C盤進行操作了。操作者可以對看到的數據做任何的操作,這樣他就完全繞過了Windows2000的登錄驗證機制。
如果系統是安裝了Windows2000 ServicePack1或IE5.5的系統,上面所用的“網絡設置選項”就不能執行了,但“Internet選項”仍可執行。資源管理器界面仍可出現,通過路徑輸入,所有的文件夾中的文件和根目錄下的文件都可看到,但已不能直接對文件夾和文件進行操作,然而仍可以用鼠標右鍵點擊文件夾和文件選擇進行刪除、重命名和發送到軟盤等操作,而且更為嚴重的是操作者可以對文件夾進行共享操作,在單個文件出現的對話框中選擇屬性,就可以任意添加共享權限,如任何人都能完全控制的權限,這樣網絡中的所有人都可以通過網絡遠程登錄完全控制所有數據資料!
||||||UNIX帳號安全
在討論UNIX帳號安全,你首先要理解UNIX密碼的安全。這種理解需要檢查密碼文件的格式。你可以利用下面的命令來得到幾種特殊密碼的格式 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> $ man 5 password
密碼文件包括幾個字段,在表2-1作了詳細解釋
字 段 用 處
登陸名字
用戶登陸時所真正使用的名字
加密后的密碼
在UNIX中,密碼是用高強度的DES算法來進行加密并保存結果
UID
用戶唯一的標識號
GID
用戶組的標識號
用戶名
用戶真正的名字
HOME
默認的主目錄
SHELL
默認的程序SHELL接口
密碼文件在顯示的時候是加密的;這種顯示叫做Shadow密碼,通常創建在/etc/shadow,并屬于root且只有root有權訪問。
密碼時效
按目前的形勢,已有更強大的硬件大大地縮短了利用自動運行的程序來猜測密碼的時間。因此在UNIX系統中防止密碼被***的別一方法就是要經常地改變密碼。很多時候,用戶卻不改變密碼。因此一種機制用來強制規律性的更改密碼是合乎要求的。這種技術稱做密碼時效并在很多UNIX系統上有效。
密碼時效:LINUX
在LINUX系統上,密碼時效是通過chage命令來管理的。
參數意思
-m 密碼可更改的最小天數。如果是零代表任何時候都可以更改密碼
-M 密碼更改的最大天數
-W 用戶密碼到期前,提前收到警告信息的天數。
-e 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-i 停滯時期。如果一個密碼已過期這些天,那么此帳號將不可用。
-l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。
舉個例子
% chage ?m 2 ?M 30 ?W 5 steven
此命令要求用戶steven兩天內不能更改密碼,并且密碼最長的存活期為30天,并在密碼過期前5天通知他。
記錄不成功的登陸企圖
所有的UNIX系統都能夠記錄非成功的登陸企圖。在LINUX中,登陸的失敗是由syslog守護進程記錄在/var/log/messages文件里。可以用下列命令來查找相關信息
$ grep login /var/log/messages
搜索路徑(PATH)的重要性
在UNIX里,常使用的命令用來在不同的環境下查找一組特殊的目錄稱做PATH。想要運行當前目錄包含的命令時是不需要加上一長串路徑名的。在UNIX中用戶經常使用”.”來表示當前的目錄。如果”.”作為shell環境變量的一部分時,一個全局目錄下的shell腳本或公用命令就有可能被相同目錄下的偽程序所解釋,而這個命令可能包含一段代碼,一旦被執行后果可能是較嚴重的,比如是一個***程序。在Bourne or Korn Shell里搜索路徑通常這樣來設置:
$ PATH=pathname1:pathname2:pathname3:
$ export PATH
在C或類似的shell里,以下列命令設置:
% set path = (pathname1 pathname2 pathname3)
在UNIX中像這樣的路徑可以保存在.profile文件里,可以看到像下面的語句
PATH=/bin:/usr/bin:/sbin:$HOME
Export PATH
因此,如果你經常參考用戶主目錄下的某個文件時,就創建一個叫”bin”的并把所以的個人的可執行文件放到里面,并要嚴格注意它們的安全性。假設”.”路徑名存在于用戶的shell初始化文件里,并且用戶不精通有關安全的知識而且不太注意環境變量中路徑,那么可以想像他經常使用到的who命令。假設用戶已創建了下面的文件
$ touch /tmp/testfile
然后,編輯下面的程序并保存為who.c文件
# include
main()
{
system (“/usr/bin/who”);
system (“/bin/rm /tmp/testfile 2>/dev/null”);
}
然后對些程序進行編譯
$ gcc ?o who who.c
并且此用戶可能含有這樣的profile:
PATH=.:/bin:/usr/bin:/sbin:$HOME
Export PATH
現在,如果戶鍵入
$ who
再去找找你剛剛建立的testfile這個文件,看看發生了什么..
限制root登陸
另一增強root帳號安全的方法是限制其在系統上直接登陸。不同版本的UNIX處理此項任務的方法是不同的。
在SUN的Solaris系統上要修改/etc/default/login文件,你需要加入下面一行
CONSOLE=/dev/console 現在你已知道如何實施帳號的安全,并已建立了一個有效的認證機制,接下來將實施安全中訪問控制部分。訪問控制必須在兩個地方實施,即本地和遠程。文件可以由用戶在本地訪問或通過網絡進行遠程訪問。本課將對這兩種方法逐一進行測試。
Windows NT文件系統安全
當建立文件的權限時,你必須先實現Windows NT的文件系統(NTFS),當然你也可以使用FAT格式,但是并不支持文件級的權限。FAT只在那些相對來講,對安全要求較低的情況下使用。即使NTFS也不能認為是能完全地保護文件的,這一點在稍后的實驗中你將會看到。
一旦已經實施了NTFS的文件系統格式,可通過Windows NT的資源管理器直接來管理文件的安全。使用NT資源管理器你可為設置目錄或文件的權限。基于文件級的權限你可以分配下面幾種:讀取(R),寫入(W),執行(X),刪除(D),改變(P),取得所有權(O)。詳細請參照下表:
NTFS權限
基于目錄
基于文件
讀取 (R)
顯示目錄名,屬性,所有者及權限
顯示文件數據,屬性,所有者及權限
寫入 (W)
添加文件和目錄,改變一個屬性以及顯示所有者和權限
顯示所有者和權限;改變文件的屬性;在文件內加入數據
執行 (X)
顯示屬性,可進入目錄中的目錄,顯示所有者和權限
顯示文件屬性,所有者和權限;如果是可執行文件可運行
刪除 (D)
可刪除目錄
可刪除文件
改變權限 (P)
改變目錄的權限
改變文件的權限
取得所有權 (O)
取得目錄的所有權
取得文件的所有權
為了簡化權限的管理,NT有幾種有關權限的標準。通常在分配權限的時候,往往是組合使用權限而不是使用單獨的權限,這些權限如下表
標準權限
基于目錄
基于文件
不可訪問
無
無
列出
RX
不適用
讀取
RX
RX
添加
WX
不適用
添加和讀取
RWS
RX
更改
RWXD
RWXD
完全控制
ALL
ALL
在這些權限的基礎上,你可以達到根據需要來訪問控制。但是確定什么是你需要的最小權限是困難的。回顧一下第一課我們所講的一個新建立的NTFS分區默認情況下everyone組對其有完全控制的權限。這種標準是無法接受的,如果你不加選擇的刪除everyone組或在任何地方都把不可訪問的權限賦予給everyone組,那么有可能會損壞你的NT安裝。Everyone組必須可以訪問主要的系統目錄(比如登陸目錄)來使用戶能夠連接和登陸到服務器上。因為用戶在開始登陸的過程中還沒有被認證,你必須使用everyone組提供訪問以使他們能夠被認證。賦予everyone組不可訪問其實更危險,因為拒絕訪問優先于允許訪問,而且所有的用戶都是屬于everyone組的,這樣也就等于完全阻止了對文件系統的訪問。
目錄的權限分配和文件是一樣的。目錄的權限影響其目錄中新建的文件。換句話說就是任何新建的文件將繼承此目錄的權限。
磁盤分區
因為操作系統目錄的權限是非常嚴格的,把Windows NT放置自己單獨的分區內是個明智的選擇。在這個分區上只安裝Windows NT而不安裝應用程序使管理任務簡單很多,一個磁盤分區可能會像下圖這樣。 操作系統
程序文件
數據
盡管這種分區需要額外地策劃,但它還是很有吸引力,特別是簡化了對于目錄權限的管理。目錄可以根據需要分開。如果 你在運行一個設備如WEB服務器,你可能會考慮使用HTML,圖像和其它一些靜態文件在一個分區上,而你的腳本文件則放到另一個分區上。你可以將腳本設置成只可以執行那些靜態文件可允許讀取。這種策略的結果就是易于管理文件和目錄的權限。
復制和移動文件
最后,你要理解當文件被復制和移動的時候發生了什么。每當一個文件被復制到一個新的目錄里時,這個文件將繼承目標目錄的權限。當文件移動時,過程是很復雜的。如果一個文件從一個目錄移動到同一分區下的另一個目錄,那么此文件的權限將保留。當文件在相同的分區內移動時,Windows NT對于新目錄的位置更新目錄分配表。當文件在兩個不同的分區間移動時,Windows NT首先把這個文件復制到新位置,在成功地復制之后,Windows NTG再刪除掉原始的那個文件。一個新文件被建立后,將繼承目標目錄的權限。
遠程文件訪問控制
遠程的訪問一個文件或目錄是通過共享權限來提供的。一個共享就是供遠程用戶訪問文件的網絡訪問點。當配置這些共享時,你要設置相應的權限。共享權限的應用類似于在NTFS上權限的應用。主要的區別是共享權限缺乏精細地權限設置。你只能分配不可訪問、讀取、更改和完全控制的權限。參照下表
權限
允許
完全控制
改變文件的權限;在NTFS卷上取得文件的所有權;
能夠完成所有,有更改權限所執行的任務
更改
創建目錄和添加文件;更改文件內的數據;更改文件的屬性;
刪除目錄和文件;能完成所有有讀取權限執行的任務
讀取
顯示目錄和文件名;顯示文件數據和屬性;運行應用程序文件
在目錄里可轉到另一目錄
不可訪問
僅能和共享目錄建立連接,拒絕訪問而且目錄里的內容不可見
共享的權限和共享點一定要小心地分配。因為權限僅僅是分配給共享點的,任何共享點下的文件或目錄都是以和共享點本身相同的權限被訪問的。
結合使用本地和遠程權限
Windows NT權限的設計是要綜合使用NTFS和共享權限。因為Windows NT的設計是作為一個服務器,用戶很少直接訪問文件。當然,共享的安全性對于需要更加安全是遠遠不夠的,因此共享和遠程都需要使用。當你結合使用共享和NTFS權限時,兩者中最嚴格的權限優先使用。
UNIX文件系統安全
在UNIX領域里,所有的信息都是儲存在文件里,并有一個相關的名字。文件是存儲在目錄中的,但UNIX仍把它看作是文件。本課的重點是UNIX文件系統是如何處理權限的。這些權限控制什么樣的用戶可以訪問以及如何訪問。文件系統已是強制UNIX系統安全的最基礎的方法。
||||||UNIX下的文件格式
UNIX對于文件的讀取和寫入,是以像樹狀結構的方式維護的。很多年前,UXNI文件系統就支持長文件名和目錄名。所有的文件都有i-節點或連接點;它包含一個文件所有的統計和后勤信息。一些數據包含:
·文件類型
·大小(以字節為單位)
·參考計數。如果有其它不同名字而實際上是相同的一個文件(叫做鏈接文件)
·拒絕地址列表指示器
·時間戳。比如文件最后一次訪問的時間;文件內容最后一次被修改的時間等..
·安全相關字段:文件屬主的UID及GID
·文件訪問權限或位,也稱做Mode bits。
Ls 命令是最常用的UNIX命令,用來查看文件和目錄的權限。
第一個命令ls –ld .意思是:列出當.下的內容通常.是指當前的目錄;在本例中,用戶自動地登陸到他的主目錄中,而命令中的.是作為當前目錄的意思
對于命令輸出的結果詳細說明見下表
輸出符號
含義
d
表明目錄
r
屬主可以讀取訪問
w
屬主有寫權限
x 屬主對目錄有搜索及執行權限 R
屬主所在組的用戶有讀取訪問的權限(本例中是staff組)
-屬主所在組沒有寫權限
x
屬主所在組對目錄有搜索及執行權限
R
其它用戶有讀取權限(任何人)
-其它用戶沒有寫權限
X
其它用戶對目錄有搜索及執行權限
4
參考計數
test
屬主的登陸名
Staff
屬主用戶所屬于的組名
512
目錄的大小(字節)
Time Stamp
最后一次改變大小的日期
08:41
改變時的時間
.所有這些信息所屬于的文件名
第二個命令ls –la .bashrc_profile如圖輸出的有關用戶配置文件的信息,它的組成部分見下表
范圍值
含義
-普通文件
R
屬主有讀取訪問權限
W
屬主有寫權限
屬主沒有執行權限
R
屬主所在組有讀取權限
-屬主所在組沒有寫權限
-任何組都沒有執行的權限
R
其它用戶有讀取權限(任何人) 其它用戶有寫權限
其它用戶沒有執行的權限
230
文件大小
Time Stamp
文件建立的日期。第三個命令ls –la 123列出一個普通文件的權限。此文件在這里叫123。ls命令通常都是列出其屬主和其它用戶對此文件有什么樣的特殊權限。
第四個命令ls –l /etc/rc.d/init.d/linuxconf主要列出了linux重要配置文件linuxconf的權限。參照表3-6
文件值
含義
L
鏈接;文件指向另一個文件??????????? Rwx
屬主有完全控制的權限??????????? Rwx 屬主所在組有完全控制的權限
Rwx
所有其它用戶有完全控制的權限
1
參考計數(說明是唯一的文件)
Root此文件真正的所有者
Root
文件所屬的組名43 文件大小(字節)
Stamp文件首次建立的日期
用來說明真正文件的鏈接或符號
usr/lib/linuxconf/
redhat/scripts/linuxconf ?? 說明文件的物理位置
現在你已經理解了在UNIX下的文件或目錄不同模式位所代表的含義,下面我們將用不同的方法來改變它們。
通常對普通文件默認的權限是666(屬主、所在組及其它用戶有讀取和寫入的權限)。每個位(八進制值)都分配給文件的三個組成部分(屬主、所在組及其它用戶)。對于一個可執行的程序默認的權限可能是777(對所有的用戶都是有讀取、寫入和搜索執行的權限)。
Umask命令默認的”mask”為022,通常與文件的模式位相AND來改變,比如對一個默認權限為0666的文件作AND得到最后的模式位為0644,也就是最后文件的權限為屬主有讀、寫權限,所在組和其它用戶有只讀的權限。
在一個站點中的所有的用戶都期望保護他們自己的數據,默認情況下,是由其它用戶來檢查的,所有的用戶都應該有一個UMASK值為077。如果用戶需要和所在組的用戶協同完成項目時,那么umask值為037是最佳的選擇。
The chmod 命令
Chmod命令是用來操縱文件權限的。這個命令可以以兩種方法來應用
·絕對模式:當使用這種方法時,命令是這樣的
chmod 666 filename
這里,權限的模式位已經被絕對地應用到了文件上。應用到不同組成部分上的權限(如屬主,組,其它用戶)取決于輸出的模式位,請參考表3-4
·符號模式:當使用這種方法時,命令是這樣的
chmod a+rwx filname
這里,對于些文件所有用戶的權限都是可以讀取、寫入及執行。因為這些符號符合利用ls命令所顯示出來的描述。
下表總結了所有Chmod命令使用的符號
符號
含義
U用戶或屬主
G組
O其它
A所有的用戶,組和其它部分
+增加這些權限
-去掉這些權限
=設置權限等于
?
轉載于:https://blog.51cto.com/luoyuehansong/68038
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的网络安全讲座之四账号安全和文件系统安全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 表单的提交完美示例
- 下一篇: Sony Sony开发在线音乐订阅服务