Plurk FaceBook Twitter 收進你的MyShare個人書籤 MyShare
  顯示內嵌語法

【旗標技術通訊電子報】第98期 2001.3.16

本周的文章篇幅很長
請大家耐心看
相信對各位專業技術的增進是很有幫助的


*****************************************************************
※本期書摘:解析 /etc/passwd 檔 (下)
※下期書摘:了解 /etc/shadow 檔
*****************************************************************

※書展訊息

即日起 旗標全省迎春特賣 85 折

時代在進步,為自己選本流行必備的電腦書可是項必要的投資!
包括 Windows、office、linux、DIY、影像處理、進階系列..等熱門書種,
快用超低預算擁有電腦新知,買書送精緻便條紙,送完為止!

全省特賣地點包含了連鎖書店系統與您住家附近的書店,
不論您在台灣的哪一邊,都能享受到旗標 85 折的特惠折扣!

全省特賣據點 http://www.flag.com.tw/book.htm
旗標圖書目錄 http://www.flag.com.tw/product_info/

*****************************************************************
※本期書摘:解析 /etc/passwd 檔 (下)
*****************************************************************

解析 /etc/passwd 檔

passwd 檔中的第一個欄位是使用者名稱。當然, 每個帳號都要有獨一無
二的使用者名稱。如果您試著直接修改 passwd 檔中的一個帳號名稱, 使
它跟另一個帳號名稱重複 (useradd、coasttool 跟 LISA 這些程式並不
允許進行這樣的修改), 會發現任何一個程式只會找尋到第一個出現的同
名帳號, 而且以該帳號為準來檢驗密碼, 並設定該帳號的 UID 給程式,
而其餘同名的帳號則形同虛設﹔這也是所有欄位中唯一一個必須獨一無二
的欄位。

第二個欄位就是經過雜湊 (hash) 演算加密過的密碼, 所謂的雜湊 (hash)
代表的是以一種數學函數演算來加密的意思。以 Linux 來說, 此雜湊演
算法所採用的是DES (Data Encryption Standard )。如果這個欄位的內
容是一個合法有效的密碼, 那麼就會剛好只有 13 個字元﹔而有一些字元
(像是冒號以及引號等) 則不會出現在這 13 個字元中, 這些在下一節
"了解 /etc/shadow 檔" 中會有詳細的解說。如果這個欄位包含的不是一
個合法雜湊過的 13 個字元的密碼, 就沒有辦法利用該帳號登入系統, 當
然啦, 空的 (null) 密碼欄位 (像下面這一個) 例外:

david::500:500:David. A. Bandel:/home/david/:bin/bash

其中第二欄位是空的, 就連一個空白也沒有, 表示該使用者不需要密碼就
能登入系統。這顯然不是任何一個管理者所期望的方式, 所以應該要檢查
每一個密碼欄位, 看是否有任何空的欄位存在。如果這個欄位包含有一個
合法的密碼, 那麼您只要加一個單引號在裡面, 就可以在不更動密碼的前
提下鎖住這個帳號, 不讓人使用。不過這個方法已經舊了, 現在可能不太
管用, 新系統所使用的/etc/shadow (下一節會有相關的討論) 有比較好
的方式, 可以不用修改密碼便將帳號鎖住。在 shadow 機制出現之前, 要
管理主機上眾多帳號 (只要系統有越多的使用者, 就有更多的入侵者) 的
管理者常會把單引號放在密碼的第一位來鎖住 root 帳號, 並使用其他的
帳號像是 "toor" 或是 "tuber" 來代替 root 帳號作為系統的管理者帳
號。

一個標準的密碼長度有 8 個字元(Character), 雖然使用者可以將密碼設
定為超過 8 個字元, 但是卻只有前 8 個字元有效。經過雜湊所產生的密
碼其前兩個字元被稱為salt (這個數字是每次密碼更改後隨機取出, 做為
起始加密的用途), 這樣可以使雜湊後的密碼產生許多不同的排列組合。
如此一來, 假使有兩個使用者設定了相同的密碼, 也不會因為加密過的密
碼相同而被發現。因此, 針對密碼欄位的字典式攻擊法 (dictionary
attack) 便成為破解密碼最常用的方式。

字典式攻擊法 (dictionary attack) 是運用一個類似英文字典的檔案及
函數運算, 用暴力法嘗試透過各種可能的 salt 來編碼, 去比對字典檔中
每一個單字是否為密碼。一個破解密碼的高手, 通常會對字典檔內的每一
個單字加以變化, 例如變換大小寫、首字母大寫、或是在尾端加上數字組
合。許多容易猜到的密碼就是這樣被破解出來的。

請再回顧一下表 1-1(上週的附表), 可以看到 root 加密過後的密碼跟
silvia 還有 david 的一模一樣, 這是書中故意作的, 在現實的情況中並
不會如此。事實上, 這未加密的密碼是 "silvia" (當然這不代表作者的
主機裡真有這個帳號)﹔然而這個密碼有設跟沒設一樣糟糕, 隨便一個破
解密碼的程式跑不到3耐秒 (十億分之一秒, 縮寫為 ns) 就猜到了。

第三個欄位是 UID, 由先前段落所討論的內容, 您應該已經瞭解 UID 是
甚麼了, 此處就不再贅述。不過由於相同的 UID 可以重複出現, 因此只
要是 UID 為 0 的使用者帳號, 就擁有跟 root 一樣的超級使用者權限,
所以在先前的說明中, 不管是要用 toor 或是其他任何名稱的使用者來替
代 root 做為管理員, 只要將 UID 設定為 0 就可以了。

但這個方式也不是完全沒有問題, 假設您現在決定要採用這個方法, 並且
利用「將引號加到加密過的密碼前」的方式把 root 的帳號鎖住, 然後在
passwd 檔的root 項目之後再建立一個 UID 為 0 的新帳號。就在這時侯
, 您正好有事要離開一段時間, 而又不想登出系統, 便不假思索地直接離
開了。當您回來時, 會發現終端視窗被鎖死了 (被螢幕保護程式鎖住),
鎖定終端機的程式會認為是 UID 0 的使用者把它鎖住了, 而最先出現
UID 為 0 的使用者名稱依舊是 root。然而正如之前所提到的, 鎖定終端
機的程式並不會往下繼續尋找其它 UID 為 0 的使用者帳號來比對正確的
密碼, 可是由於 root 的帳號密碼已被鎖住, 因而造成被鎖死無法打開鎖
定的視窗。由此可見, 這個方法也存在著一些問題﹔除非確實了解其設定
的步驟, 否則不要貿然嘗試。

第四個欄位是群組識別碼 GID, 此為使用者所屬的登錄或主要群組。一個
使用者可以屬於任一個群組, 而使用者的主群組必須是其中之一才行。

第五個攔位是備註欄位, 用來填寫參考用的資訊, 原先的欄位名稱叫
"GECOS", 本來是要給作業系統參考用的。當查詢 (finger) 系統內某個
使用者時, 便會出現記載於此欄位的相關資訊, 而要不要將相關資訊寫入
此欄位則視隨管理者的策略而定, 沒有亦可。

第六個欄位記載著使用者家目錄 (home directory) 的位置。每一個使用
者都會有一個自己的使用者目錄 (家目錄), 如果家目錄不存在, 使用者
同樣也可以登入主機, 只是在登入後會進入到 "/" (根目錄)。

有些帳號在設定此欄位時必須多加注意, 例如 ftp 這個帳號就應該將匿
名 FTP 根目錄設定為其家目錄。

第七個欄位, 也是最後一個欄位, 其中所指定的是使用者的登入 shell。
這裡並不是隨便填入一個 shell 名稱就可以了, 必須是經過系統認可的
才行。以 Caldera 的 OpenLinux 來說, /etc/shells 這個檔案內就記
錄了所有可用的 shell 程式 (將在討論 PAM 的時候再作說明)。

稍早曾提到, 以前使用者密碼確實都是放在 passwd 檔內。幾年前, 由於
任何人皆可讀取 passwd 的內容, 因而經常被有心人士拿來利用字典攻擊
法加以破解, 尤其是盜取 root 的密碼。這樣的破解方式通常不用幾個小
時、最多一天就可以達成;現在更不用說了, 硬體的發展快速, 甚至不到
幾分鐘就可以將密碼破解出來。為了防止有人從 passwd 檔內把加密過的
密碼盜走, 現在都把加密後的密碼存在 shadow 檔中。

******************************************************************
以上內容摘自『Linux 網路安全百寶箱』
安人玉、江安中、黃子綱、廖伸豐 編譯
書號:F8828  定價:650 元
******************************************************************
想索取前幾期的電子報內容請至易達網網站下載
http://lib.edirect168.com/enews/enews.asp?CH=87

本電子報內容未經授權請勿轉載
版權所有人:旗標出版股份有限公司


好書能增進知識、提高學習效率
卓越的品質是旗標的信念與堅持
http://www.flag.com.tw
═<易達網電子報發報中心>═══════════════════

˙欲訂閱或取消易達網電子報: http://www.edirect168.com/enewsv2/
˙收報、退報有問題,請洽易達網客服信箱: mailto:cs@service.edirect168.com
˙歡迎申請易達網免費電子信箱: http://www.edirect168.com
˙易達網電子報發報中心: mailto:news@service.edirect168.com
˙您想要登廣告: http://www.edirect168.com/html/ad.htm
˙本電子報文章與其相關連結由電子報報主提供,易達網負責發送。

════════════════ 作自己的媒體,唱自己的歌 ══