1、什么是grub加密
上篇文章說了,系統在開機的時候,有一個5秒的讀秒時間,方便你進入到grub
界面中。
如下圖所示:
此時我們按下Enter鍵,就可以進入到grub
界面中。
如下圖所示:
在選擇框的正下方可以看到有幾行提示:
# 使用 ↑ 和 ↓ 鍵高亮某個選項,並按回車鍵確認來引導選定的操作系統。
Use the ↑ and ↓ keys to select which entry is highlighted.
Press enter to boot the selected OS,
# 按e鍵在啟動之前編輯命令,
'e' to edit the connands before booting,
# 按a鍵在啟動之前修改內核參數,
'a' to nodify the kernel argunents before booting,
# 按c鍵切換命令行(esc鍵返回)。
or 'c' for a connand-1 ine.
可以看到提示,按e
鍵就能編輯grub
配置文件中的啟動選項內容。
按e
鍵,結果如下圖:
提示再按e
鍵可直接修改內容。
而grub
加密,就是在上面第二張圖的狀態時,需要先輸入我們設定的密碼,才能按e
鍵編輯系統啟動參數。也就是說給grub
設置一個密碼, 避免像上邊那樣能夠直接進入grub
,並編輯其中的系統啟動參數。
2、grub加密步驟
1)執行grub-md5-crypt
命令成生md5密碼。
執行命令:[root@localhost ~]# grub-md5-crypt
2)設置密碼。
輸入兩次密碼:
Pas sword:
Retype pas sword:
生成MD5加密的密碼字符串:$1$Y84LB1$8tMY2PibScmu0Cc8z8U351
這樣就把你輸入的密碼進行了MD5加密,用這個加密字符串來加密grub
配置文件。
3)修改grub的配置文件。
一定在timeout
屬性之后,在splashimage
屬性之前,添加password
選項,一定是這個順序,放在其他位置不生效。
如下所示:
[root@localhost ~]# vim /boot/grub/grub.conf
# 內容
default=0
timeout=5
# password選項放在整體設置處。
password --md5 $1$Y84LB1 $8tMY2PibScmu0Cc8z8U35/
splashimage=(hd 0,0)/grub/splash.xpm.gz
4)重啟系統。
重啟系統后,我們發現進入到grub
界面中,下面的提示,原來的e
鍵變成了p
鍵。
我們再按e
鍵都是沒有反應的,按p
鍵就會讓你輸入密碼,不輸入密碼你就不能編輯grub
的配置文件。
如下圖所示:
輸入后按Enter鍵,才進入到可編輯的grub
界面中,e
鍵提示又出來了。如下圖:
注意:
當你在第四步中第一個圖的時候,就算你不知道密碼,直接按Enter鍵,系統是可以直接啟動的。所以說grub
加密是對grub
配置文件的編譯進行了加密,而不是對系統的啟動進行加密。
上面的加密步驟,是對grub
菜單整體加密,整體加密后,如果想進入grub
編輯界面必須輸入正確的密碼。同時也是不影響系統的正常啟動的。
還有對單個啟動菜單進行加密,但grub
的編輯模式是不能鎖定的,還是可以按e
鍵進入編輯模式。而且進入編輯模式后,是可以刪除password
字段的,不是很好,所以不講解了。
3、grub加密的lock屬性
如果我想啟動CentOS系統時,既需要grub
的整體加密,又需要系統啟動時輸入正確的grub
加密密碼,才能正常啟動系統。那應該怎么做呢?
很簡單,方法如下:在grub
的/boot/grub/grub.conf
配置文件中,在title
字段中加入lock
,代表鎖死,如果不輸入正確的grub密碼,系統是不能啟動的。
如下圖所示:
注意:
lock
這個屬性千萬不要添加,如果添加了lock
屬性在grub
的配置文件中,當你在不輸入密碼的時候,直接按Enter鍵,是不能直接進入系統的,會報錯,如下圖:
提示了錯誤32,按任意鍵繼續,就又回來了。
為什么一定不要添加lock
的原因:
在系統啟動的時候,進入到grub
啟動引導,此時系統還沒有啟動完成,網卡是還沒加載生效,所以遠程終端是連接不上服務器的,這時候就只能拿鍵盤做本地輸入。但現在我們的服務器一般都放在機房或者遠端,你會十分的不方便。所以堅決不能用lock
鎖定grub
的配置文件。