Unix系統(tǒng)的安全策略
Unix系統(tǒng)的安全策略之口令安全
Unix系統(tǒng)中的/etc/passwd文件含有全部系統(tǒng)需要知道的關(guān)于每個(gè)用戶(hù)的信息(加密后的口令也可能存于/etc/shadow文件中)。/etc/passwd中包含用戶(hù)的登錄名、經(jīng)過(guò)加密的口令、用戶(hù)號(hào)、用戶(hù)組號(hào)、用戶(hù)注釋、用戶(hù)主目錄以及用戶(hù)所用的shell程序。
其中用戶(hù)號(hào)(UID)和用戶(hù)組號(hào)(GID) 用于Unix系統(tǒng)惟一標(biāo)識(shí)用戶(hù)和同組用戶(hù)及用戶(hù)的訪(fǎng)問(wèn)權(quán)限。/etc/passwd中存放的是加密后的口令,用戶(hù)在登錄時(shí)需要輸入的口令經(jīng)計(jì)算后與/etc/passwd對(duì)應(yīng)部分相比較,符合則允許登錄,否則拒絕用戶(hù)登錄。用戶(hù)可用passwd命令修改自己的口令, 但不能直接修改/etc/passwd中的口令部份。
一個(gè)好的口令應(yīng)當(dāng)至少有6個(gè)字符長(zhǎng),不要用個(gè)人信息做口令(如生日、名字、反向拼寫(xiě)的登錄名、房間中可見(jiàn)的物品等),普通的英語(yǔ)單詞也不好(因?yàn)榭捎米值涔舴?,口令中最好有一些非字母(如數(shù)字、標(biāo)點(diǎn)符號(hào)、控制字符等),還要好記一些, 不能寫(xiě)在紙上或計(jì)算機(jī)里的文件中。選擇口令的一個(gè)推薦方法是將兩個(gè)不相關(guān)的詞用一個(gè)數(shù)字或控制字符相連,并截?cái)酁?個(gè)字符。當(dāng)然,如果能記住8位亂碼自然更好。
不應(yīng)使用同一個(gè)口令在不同機(jī)器中使用,特別是不同級(jí)別的用戶(hù)使用同一口令,可能導(dǎo)致安全隱患。用戶(hù)應(yīng)定期改變口令,至少6個(gè)月要改變一次,系統(tǒng)管理員可以強(qiáng)制用戶(hù)定期做口令修改。為防止別人竊取口令,在輸入口令時(shí)應(yīng)注意保密。
Unix系統(tǒng)的安全策略之文件和目錄訪(fǎng)問(wèn)許可
文件屬性決定了文件的被訪(fǎng)問(wèn)權(quán)限,即誰(shuí)能存取或執(zhí)行該文件。用“ls -l”可以列出詳細(xì)的文件信息,如:
-rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin
上述信息中包括了文件許可、文件鏈接數(shù)、文件所有者名、文件相關(guān)組名、文件長(zhǎng)度、上次存取日期和文件名。
其中文件許可分為四部分: 第一個(gè)rwx表示文件屬主的訪(fǎng)問(wèn)權(quán)限; 第二個(gè)rwx表示文件同組用戶(hù)的訪(fǎng)問(wèn)權(quán)限; 第三個(gè)rwx表示其他用戶(hù)的訪(fǎng)問(wèn)權(quán)限。若某種許可被限制則相應(yīng)的字母換為“-”。
在許可權(quán)限的執(zhí)行許可位置上,可能是其他字母,如s,S,t,T。s和S可出現(xiàn)在所有者和同組用戶(hù)許可模式位置上,與特殊的許可有關(guān)。t和T可出現(xiàn)在其他用戶(hù)的許可模式位置上,與“粘貼位”有關(guān)而與安全無(wú)關(guān)。小寫(xiě)字母(x,s,t)表示執(zhí)行許可為允許,負(fù)號(hào)或大寫(xiě)字母(-,S或T)表示執(zhí)行許可為不允許。改變?cè)S可方式可使用chmod命令,并以新許可方式和該文件名為參數(shù)。新許可方式以3位8進(jìn)制數(shù)給出。
chmod也有其他方式的參數(shù)可直接對(duì)某組參數(shù)修改,在此不再贅述,詳見(jiàn)Unix系統(tǒng)的聯(lián)機(jī)手冊(cè)。
文件許可權(quán)可用于防止偶然地重寫(xiě)或刪除一個(gè)重要文件。改變文件的屬主和組名可用chown和chgrp,但修改后原屬主和組員就無(wú)法修改回來(lái)了。
另外,用戶(hù)ID許可(SUID)設(shè)置和同組用戶(hù)ID許可(SGID)設(shè)置可作用于可執(zhí)行的目標(biāo)文件(只有可執(zhí)行文件才有意義)。當(dāng)一個(gè)進(jìn)程執(zhí)行時(shí)就被賦于4個(gè)編號(hào),以標(biāo)識(shí)該進(jìn)程隸屬于誰(shuí),分別為實(shí)際和有效的UID、實(shí)際和有效的GID。有效的UID和GID一般和實(shí)際的UID和GID相同,有效的UID和GID用于系統(tǒng)確定該進(jìn)程對(duì)于文件的存取許可。
設(shè)置可執(zhí)行文件的SUID許可將改變上述情況,當(dāng)設(shè)置了SUID時(shí),進(jìn)程的有效UID為該可執(zhí)行文件的所有者的有效UID,而不是執(zhí)行該程序的用戶(hù)的有效UID,因此, 由該程序創(chuàng)建的進(jìn)程和文件都有與該程序所有者相同的存取許可。這樣,程序的所有者將可通過(guò)程序的控制在有限的范圍內(nèi)向用戶(hù)發(fā)表不允許被公眾訪(fǎng)問(wèn)的信息。
同樣,SGID設(shè)置有效的GID??捎?ldquo;chmod u+s文件名”和“chmod u-s 文件名”來(lái)設(shè)置和取消SUID設(shè)置;用“chmod g+s 文件名”和“chmod g-s 文件名”來(lái)設(shè)置和取消SGID設(shè)置。當(dāng)文件設(shè)置了SUID和SGID后,使用chown和chgrp命令將全部取消這些許可。
在Unix系統(tǒng)中,目錄也是一個(gè)文件,用“ls -l”列出時(shí),目錄文件的屬性前帶“d”。目錄許可也類(lèi)似于文件許可,用ls列目錄要有讀許可,在目錄中增刪文件要有寫(xiě)許可,進(jìn)入目錄或?qū)⒃撃夸涀鳛槁窂椒至繒r(shí)要有執(zhí)行許可,因此要使用任一個(gè)文件,必須有該文件及找到該文件的路徑上所有目錄分量的相應(yīng)許可。
僅當(dāng)要打開(kāi)一個(gè)文件時(shí),文件的許可才開(kāi)始起作用,而rm、mv只要有目錄的搜索和寫(xiě)許可, 就不需要文件的許可,這一點(diǎn)應(yīng)注意。
UNIX系統(tǒng)會(huì)針對(duì)進(jìn)攻策略采取了相應(yīng)的防范措施,比如將口令與用戶(hù)信息分開(kāi)存放,限制用戶(hù)登錄的嘗試次數(shù)等。希望大家多多掌握。
【編輯推薦】