Linux GRUB加密方法詳解(2種加密方式)

圖 1 GRUB界面
如圖 1 所示,每個啟動選項都支持按"e"鍵進入編輯模式。在編輯模式中可以修改啟動模式,比如進入單用戶模式(單用戶模式主要用于破解密碼,我們將在后續章節中講 解)。
但是有時候,我們不想讓用戶進入編輯模式,就需要給 GRUB 菜單加密。那么,如何生成加密的密碼串呢?可以通過命令 grub-md5-crypt 來實現。命令如下:
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
#輸入兩次密碼
$1$Y84LB1$8tMY2PibScmuOCc8z8U35/
#生成加密的密碼串
GRUB 的加密有兩種模式:
- 給每個啟動菜單加密,如果不輸入正確的密碼,則系統不能正常啟動;
- 給 GRUB 菜單整體加密,如果想進入編輯模式,則必須輸入正確的密碼;
給每個啟動菜單加密
如果給每個啟動菜單加密,那么系統在啟動時進入相應的啟動菜單,必須輸入正確的密碼,否則系統不能啟動。具體的方法如下:
[root@localhost ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
password --md5 $l$Y84LBl$8tHY2PibScmuOCc8z8D35/
#加入password選項,密碼串是通過grub-md5-crypt命令生成的
root(hd0,0)
kernel /vmlinuz-2.6.32-279.el6•i686 ro root=UUID=b9a7ala8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_N0_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_N0_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.el6.i686.img
給GRUB菜單整體加密
如果只是加密單個啟動菜單,那么 GRUB 的編輯模式是不能被鎖定的,仍然可以按"e"鍵進入編輯模式。而且在進入編輯模式后,是可以刪除 password 字段的,再按"b"(boot啟動)鍵就可以不用密碼直接進入系統。這時就需要給 GRUB 菜單整體加密。在整體加密后,如果想進入 GRUB 編輯界面,則必須輸入正確的密碼。加密方法其實只是把 password 字段換一個位置而已,具體方法如下:
[root@localhost ~]# vi /boot/grub/grub.conf
default=0
timeout=5
password --md5 $l$Y84LBl$8tMY2PibScmuOCc8z8U35/
#將password選項放在整體設置處
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9a7ala8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.el6.i686.img

圖 2 GRUB 整體加密
注意到了嗎?在 GRUB 界面中已經看不到"e"鍵了,必須輸入"p"鍵,并輸入正確的密碼才能進入編輯界面。但是這樣加密,在啟動 CentOS 時,是不需要密碼就能正常啟動的。如果既需要 GRUB 的整體加密,又需要系統啟動時輸入正確的密碼,應該怎么做呢?
很簡單,方法如下:
default=0
timeout=5
password --md5 $l$Y84LBl$8tHY2PibScmuOCc8z8U35/
splashimage=(hdO,0)/grub/splash.xpm.gz hiddenmenu
title CentOS (2.6.32-279.el6.i686) lock
#在title字段下加入lock選項,代表鎖死,如果不輸入正確的GRUB密碼,則不能啟動root(hd0,0)
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9a7ala8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd / initramf s-2.6.32-27.9 .el6.i686. img
beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。
通俗易懂,深入淺出,一篇文章只講一個知識點。
文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。
文章不涉及代碼,不燒腦細胞,人人都可以學習。
當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!