在Linux中從潛藏密碼遷移至tcb
潛藏密碼作為Linux產(chǎn)品的既定事實(shí)標(biāo)準(zhǔn)已經(jīng)有好多年了,md5密碼的運(yùn)用亦是如此。但是,運(yùn)用傳統(tǒng)的潛藏密碼要領(lǐng)也有不足之處,甚至md5也不像以前那么安全了。
潛藏密碼文件的一個缺點(diǎn)就是,任意一個須要查詢個別潛藏密碼(如您的密碼)的使用程序也可以看到其他人的潛藏密碼,這也就意味著任意一個可以讀取潛藏文件的惡意工具都能夠獲得別人的潛藏密碼。
除了潛藏,還有一個叫做tcb的可供選擇的辦法,它由Openwall Project編寫,可以從tcb主頁上獲取。遷移到tcb雖然須要做一些工作,但是相當(dāng)直接。因?yàn)橹挥蠴penwall GNU/*/Linux、ALT Linux、和Annvix 直接支持tcb。要為您選擇的流通產(chǎn)品獲得tcb支持,您必須重新編輯多個程序,打上補(bǔ)丁。
從tcb站點(diǎn)上,您可以下載tcb程序,并將它和有關(guān)的pam_tcb和nss_tcb庫一起執(zhí)行 編輯。您還須要打上支持crypt_blowfish的glibc補(bǔ)丁(像SUSE一樣的有些產(chǎn)品可能已經(jīng)可以支持blowfish密碼,就不須要再打補(bǔ)丁了)。
也許您還想為shadow-utils組打上補(bǔ)丁;取決于您的產(chǎn)品所采用的shadow-utils的版本,您可以從Openwall CVS為shadow-utils 4.0.4.1或從Annvix SVN儲存庫為4.0.12獲得所需的補(bǔ)丁。像adduser、chage等這樣的工具中的Shadow-utils須要被打上補(bǔ)丁,提供tcb支持。在tcb頁面上有可以打glibc補(bǔ)丁的***crypt_blowfish的鏈接。一旦這些先決條件都滿足了,且tcb編譯和安裝以后,只需基本地將/etc/pam.d/*文件中的所有調(diào)用都替換為pam_unix.so和/或pam_pwdb.so就行了。然后就可以像列表A中那樣運(yùn)用 pam_tcb.so了。
列表Aauth
required
pam_env.soauthrequiredpam_tcb.so shadow fork nullok prefix=$2a$ count=8account
requiredpam_tcb.so shadow forkpassword
requiredpam_passwdqc.so min=disabled,12,8,6,5 max=40 passphrase=3 match=4 similar=deny random=42 enforce=everyone retry=3password
requiredpam_tcb.so use_authtok shadow write_to=tcb fork nullok prefix=$2a$ count=8session
requiredpam_limits.sosession
requiredpam_tcb.so
如果您希望繼續(xù)運(yùn)用
md5密碼,而不是blowfish密碼,將prefix=$2a$ count=8一條從密碼行移除,同時,您還須要修改/etc/nsswitch.conf,讓潛藏行改讀:
shadow: tcb nisplus nis
passwd程序須要sgid潛藏,而不是suid根,并且/etc/login.defs中要包括USE_TCB yes。這些完成以后,您就可以執(zhí)行/sbin/tcb_convert程序,將潛藏文件轉(zhuǎn)換成為適當(dāng)?shù)膯我挥脩粑募?,這些文件將儲存在/etc/tcb/中。做完這些之后,移除/etc/shadow和/etc/shadow-文件,然后您的系統(tǒng)就可以運(yùn)用 tcb了。
獲得tcb支持可能須要花點(diǎn)功夫,但遺憾的是更多的產(chǎn)品沒有提供支持,它們既沒有本地支持也沒有通過插件來支持。運(yùn)用 tcb,連同blowfish密碼一起,會為您的Linux產(chǎn)品提供一個安全得多的密碼系統(tǒng)。
【編輯推薦】