首頁 > linux教程 > Linux系統啟動管理 閱讀:0更新時間:2020-03-28 01:03:05

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

linux 在啟動時,在 GRUB 管理界面中是可以通過按"e"鍵進入編輯模式,修改啟動選項的。

圖 1 GRUB界面
如圖 1 所示,每個啟動選項都支持按"e"鍵進入編輯模式。在編輯模式中可以修改啟動模式,比如進入單用戶模式(單用戶模式主要用于破解密碼,我們將在后續章節中講 解)。

但是有時候,我們不想讓用戶進入編輯模式,就需要給 GRUB 菜單加密。那么,如何生成加密的密碼串呢?可以通過命令 grub-md5-crypt 來實現。命令如下:

[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
#輸入兩次密碼
$1$Y84LB1$8tMY2PibScmuOCc8z8U35/
#生成加密的密碼串

這樣就可以生成加密的密碼串,這個字符串是采用 MD5 加密的,我們會利用這個加密的密碼串來加密 GRUB 配置文件。

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

這樣就能加密 CentOS 啟動菜單了,在啟動時如果不輸入正確的密碼,是不能啟動系統的。需要注意的是,password 選項一定要在 title 下面第一行。

給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

這樣就會把 GRUB 界面整體加密,要想進入 GRUB 的編輯界面,必須先輸入正確的密碼,如圖 2 所示。

圖 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

只要在 GRUB 整體配置中加入 password 選項,在 title 中加入 lock 選項,就可以既加密 GRUB 編輯界面,又加密系統啟動過程了。是不是很簡單?

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩