2009年10月25日 星期日

Ubuntu密技 - 強制規定開機時輸入密碼

在Ubuntu啟動時,管理者可以鎖住開機選單,直到按下p鍵,再輸入解鎖密碼,才會繼續載入系統。而且,除非解除開機選單鎖定,也不能編輯開機選項,入侵者不能藉著編輯選單的方式,繞過這道保護措施。

不過,若入侵者以Ubuntu安裝光碟直接啟動系統,仍可以百分之百存取硬碟,密碼保護的開機選單終究無用。聊勝於無,這個方式對大部份具強烈好奇心、非技術性的同伴們依然有效。

開啟終端機視窗,鍵入如下命令:

$ rub-md5-crypt

這個命令的目的是將密碼由明碼轉為暗碼。此時,用心想一個合適的開機選單密碼,牢記後小心的輸入,再輸入一次做為確認。密碼可以包含數字、字母和空格。輸入完成後會輸出一組由雜湊演算而得的暗碼,它看起來像是由字母、數字、特殊符號隨機組成的字串。仔細記錄下來,然後將其加入開機設置文件內。由於雜湊演算是不可逆加密方式,即使檢視開機選單設置文件也無法猜測出原始密碼的明碼。

鍵入如下命令,以Gedit開啟開機設置文件:

$ gksu gedit /boot/grub/menu.lst

在文件頂端加入一行新文字,句首為password --md5,後面跟著剛下記錄下來的暗碼。例如:

password --md5 $1$Qeb3b$XO.lbPvj47A3GEywBcR6m

將文件向下捲動,找到自己的Ubuntu安裝的啟動項目。通常是在## ## End Default Options ##字串之下,其內容依使用者的系統而有所不同。例如,選單中某一啟動選項為:

title Ubuntu 8.04.3, kernel 2.6.24-19-generic
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID= ……
initrd /boot/initrd.img-2.6.24-19-generic
quiet

在其後加入很短一行新內容,只有四個字母:lock。亦即:

title Ubuntu 8.04.3, kernel 2.6.24-19-generic
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID= ……
initrd /boot/initrd.img-2.6.24-19-generic
quiet

lock

現在,繼續為其它啟動選項一一加上lock,即可鎖住整個開機選單。若是漏了某一個啟動選項(有意或無意),開機時無需密碼即可選擇該啟動方式來載入系統。

修改完成後,儲存檔案並退出Gedit,重新開機以測試新加的防護措施。此時電腦仍會顯示開機選單,也可以用方向鍵移動至各個啟動方式(高亮度反白顯示),但是卻無法啟動,只會得到錯誤訊息:Error 32: Must be authenticated,然後提示使用者按下任何鍵以回到開機選單。按下e鍵也無法編輯選單。

若想要過關,於開機選單出現後按下p鍵,輸入密碼的明碼(不是雜湊演算而得的暗碼),即可選擇任何一個啟動方式來載入系統。

密技以Ubuntu 8.04長期支援版本(Hardy Heron)測試,有可能不適用於新版本,或需做配合微調。

0 留言:

張貼留言