Linux使用者管理安全寶典:密碼防破解與帳號檔案保護

來源:互聯網
上載者:User

Linux作為一種多任務、多使用者的作業系統,在同一時間段上可能為眾多使用者使用,且使用者的管理直接關係到整個系統的安全,使用者需要對其中的密碼管理和帳戶檔案管理進行著重的強調和保護。

Linux使用者管理主要分為兩方面:密碼管理,以及使用者與使用者組的管理。下面將對這兩方面分別進行闡述。

本文隸屬於專題:Linux系統全方位管理
1. 密碼管理

密碼是使用者登入Linux系統的鑰匙,如果沒有鑰匙總是要費一番力氣後,才能登入到目標作業系統。無論入侵者採用何種遠程攻擊,如果無法獲得管理員或超級管理員的使用者密碼,就無法完全控制整個系統。若想訪問系統,最簡單也是必要的方法就是竊取使用者的密碼。因此,對系統管理員賬戶來說,最需要保護的就是密碼,如果密碼被盜,也就意味著災難的降臨。

入侵者大多是通過各種系統和設定漏洞,獲得管理員密碼來獲得管理員權限的,然後,再實現對系統的惡意攻擊。帳號的弱密碼設定會使入侵者易於破解而得以訪問電腦和網路,而強密碼則難以破解,即使是密碼破解軟體也難以在短時間內辦到。密碼破解軟體一般使用3種方法進行破解:字典猜解、組合猜解和暴力猜解。毫無疑問,破解強密碼遠比破解弱密碼困難得多。因此,系統管理員賬戶必須使用強密碼。

據統計,大約80%的安全隱患是由於密碼設定不當引起的。因此,密碼的設定無疑是十分講究技巧的。在設定密碼時,請遵守密碼安全設定原則,該原則適用於任何使用密碼的場合,既包括Windows作業系統,也包括UNIX/Linux作業系統。

John the Ripper是一個工具軟體,用於在已知密文的情況下嘗試破解出明文的破解密碼軟體。目前的最新版本是JOHN1.7版,主要支援對DES、MD5兩種加密方式的密文進行破解工作。它可以工作於多中不同的機型以及多種不同的作業系統之下,目前已經測試過能夠正常啟動並執行作業系統有:Linux x86、freeBSD、x86、Solaris、SPARC、OSF/1 Alpha、DOS、WinNT/WinXP系列等。

John the Ripper官網:http://www.openwall.com/john/

John the Ripper 1.7是目前比較好的破解密碼工具,在解密過程中會自動定時存檔,使用者可以強迫中斷解密過程(使用ctrl+c按鍵組合),下次還可以從中斷的地方繼續進行下去(john-restore命令)。任何時候敲擊鍵盤,使用者都可以看到整個解密的進行情況,所有已經被破解的密碼會被儲存在目前的目錄下的JOHN.POT檔案中,SHADOW中所有密文相同的使用者會被歸成一類,這樣JOHN就不會進行無謂的重複勞動了。在程式的設計中,關鍵的密碼產生的條件被放在JOHN.INI檔案中,使用者可以自行修改設定,不僅支援單詞類型的變化,而且支援自己編寫C的小程式限制密碼的取值方式。

在使用該軟體前,我們可以從網上下載其最新版本john-1.7.3.4 for Linux版本,它包含DOC、SRC和RUN三個目錄,在SRC目錄下,在機器上執行如下命令即可:
#make
#make clean linux-x86-any

安裝好後,可以切換到RUN目錄下,進行測試,如下所示:
#cd ../run
#./john –test

John the ripper提供了如下多達10餘種的命令,供使用者選擇使用:
pwfile:<file>[,..]:用於指定存放密文所在的檔案名稱,(可以輸入多個,檔案名稱一我“,”分隔,也可以使用*或者 這兩個萬用字元引用一批檔案)。也可以不使用此參數,將檔案名稱放在命令列的最後即可。
wordfile:<字典檔案名稱>-stdin:指定的用於解密用的字典檔案名稱。也可以使用STDIO來輸入,就是在鍵盤中輸入。
rules:在解密過程中使用單詞規則變化功能。如將嘗試cool單詞的其他可能,如COOLER、Cool等,詳細規則可以在JOHN.INI檔案中的[List.Rules:Wordlist]部分查到。
incremental[:<模式名稱>]:使用遍曆模式,就是組合密碼的所有可能情況,同樣可以在JOHN.INI檔案中的[Incremental:*****]部分查到。
single:使用單一模式進行解密,主要是根據使用者名稱產生變化來猜測解密,可以消滅比較低級的使用者。其組合規則可以在JOHN.INI檔案中的[List.Rules:Single]部分查到,我們在下面詳細解釋。
external:<模式名稱>:使用自訂的擴充解密模式,使用者可以在john.ini中定義自己需要的密碼組合方式。JOHN也在INI檔案中給出了幾個樣本,在INI檔案的[List.External:******]中所定義的自訂破解功能。
restore[:<檔案名稱>]:繼續上次的破解工作,JOHN被中斷後,當前的解密進度情況被存放在RESTORE檔案中,使用者可以拷貝這個檔案到一個新的檔案中。如果參數後不帶檔案名稱,JOHN預設使用RESTORE檔案。
makechars:<檔案名稱>:製作一個字元表,使用者所指定的檔案如果存在,則將會被覆蓋。JOHN嘗試使用內在規則在相應密鑰空間中產生一個最有可能擊中的密碼組合,它會參考在JOHN.POT檔案中已經存在的密鑰。
show:顯示已經破解出的密碼,因為JOHN.POT檔案中並不包含使用者名稱,同時使用者應該輸入相應的包含密碼的檔案名稱,JOHN會輸出已經被解密的使用者連同密碼的詳細表格。
test:測試當前機器運行JOHN的解密速度,需要1分鐘,它會得出在當前的情況下解密的各種可能情況下相應的解密速度,如同時解密100個使用者時的平均速度,使用 遍曆法解密模式時解密的速度。salts指使用者個數,如果給出的對於100個使用者解密的平均速度為18000次/秒,那麼表明同時對100個使用者解密,解 密的速度為每個180次/秒。因為絕大多數的時間被用於密鑰比較過程中了。所以應該對使用者進行挑選。
users:<login|uid>[,..]:只破解某類型的使用者或者屬於某個組的使用者。如果得到的PASSWD檔案沒有包含密文,那麼在得到SHADOW後應該進行組合,JOHN的附帶程式 UNSHADOW.EXE可以完成這一過程,當然了,使用者也可以手工做。一般的能夠進入CSH的使用者都是解密的首選對象。也可以要UID=0的ROOT層級 的使用者。
shells:[!]<shell>[,..]:和上面的參數一樣,這一選項可以選擇對所有可以使用shell的使用者進行解密,對其他使用者不予理睬。“!”就是表示不要某些類型的使用者。例如:“-shells:csh”。
salts:[!]<count>:只選擇解密使用者大於<count>的帳號,可以使使用者得到選擇的權利,儘快的得到所需要的使用者的PASS。


lamesalts:指定使用者中密碼所使用的cleartext。(我不大清楚此功能的作用)。
timeout:<幾分鐘>:指定解密持續的時間是幾分鐘,到時間JOHN自動停止運行。
list:在解密過程中在螢幕上列出所有正在嘗試使用的密碼,建議不要使用,它會將大部分時間浪費在顯示上,極大地拖慢解密速度。一般只是適用於重新導向輸出到檔案後,檢驗使用者所設定的某些模式是否正常。
beep-quiet:當解密出密碼時是否要讓PC喇叭叫一下,以提醒使用者。
noname-nohash:不使用記憶體來儲存“使用者名稱”等內容。
des-md5:指定使用的解密方式是解DES還是MD5,對於解密DES密碼不用理會這一選項。

除了口令破解程式之外,在這個軟體包中,還包含了其他幾個工具 + 生產力,它們對於實現口令破解都有一定的協助,這些工具都放置在run目錄下,下面分別予以簡要介紹。

(1)unshadow PASSWORD-FILE SHADOW-FILE

unshadow命令將passwd檔案和shadow檔案組合在一起,其結果用於John破解程式。通常應該使用重新導向方法將這個程式的結果儲存在檔案中,之後將檔案傳遞給John破解程式。

(2)unafs DATABASE-FILE CELL-NAME

unafs從二進位AFS資料庫中提取口令散列值,並產生John可用的輸出,通常應該把這個輸出重新導向到檔案中。

(3)unique OUTPUT-FILE

刪除字典表中的重複詞彙,但不改變字典表中各詞條項的順序。

安裝好後,我們可以靈活使用如下幾種方式來對自己的賬戶密碼進行測試:

通常情況下,許多使用者的密碼命名方式非常簡單,比如foo、hello、world等等,或者很多都是與使用者名稱相同的密碼口令,那麼我們一般可以先採用簡單解密方式來對系統中的密碼進行簡單的初步試探,如果發現能夠成功破解,那麼就需要對這些密碼口令的強度進行加強,如下所示:
#./john –single “/etc/shadow”
Loaded 2 password hashes with 3 different salts (FreeBSD MD5 [32/32])
liyang (liyang)
guesses: 1 time: 0:00:00:00 100% c/s: 6975 trying: 999991900

在上述命令中,我們發現系統存在一個liyang使用者,其使用者名稱和密碼均為liyang,因而通過最簡單的方式便能將其發現和利用,如果為駭客破解則將造成不可設想的後果,因而我們的使用者應該立即根據此種情況進行口令加強。

其次,使用者可以使用字典檔案來對系統使用者的惡密碼強度進行試探和測試。人們常用hello、superman、cooler、asdfgh、123456等作為自己的密碼。而-rules參數則在此基礎上再加上些變化,如字典中有單詞cool,則JOHN還會嘗試使用cooler、CoOl、Cool等單詞變化進行解密。一般視SHADOW中的使用者多少及使用者的字典大小、使用者的機器速度,解密時間從幾小時到幾天不等。下面給出使用該方式進行解密的例子,假設我們已經產生了一個password.lst檔案,其中包含了常用的以字典單詞為依據的密碼,那麼我們對系統中的使用者密碼使用該方式進行試探破解,由於字典中保留了young這樣一個單詞,因而使用者google的密碼所以也被試探出來,網路系統管理員同樣需要對該密碼進行加固,比如添加適當的尾碼、字母和數字等:
# ./john --wordlist=password.lst "/etc/shadow"
Loaded 2 password hashes with 2 different salts (FreeBSD MD5 [32/32])
young (google)
guesses: 1 time: 0:00:00:01 100% c/s: 3571 trying: zhongguo2. 系統管理使用者及組檔案安全

Linux作業系統採用了UNIX傳統的方法,把全部的使用者資訊儲存為普通的文字檔。使用者可以通過對這些檔案進行修改來系統管理使用者和組。

(1) 使用者帳號檔案——passwd

/etc/passwd檔案是UNIX安全的關鍵檔案之一。該

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.