首页 > 系统相关 >Linux GRUB加密方法详解(2种加密方式)

Linux GRUB加密方法详解(2种加密方式)

时间:2023-03-24 11:33:43浏览次数:42  
标签:加密 grub GRUB rd 密码 Linux password

转至:http://c.biancheng.net/view/1036.html

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 编辑界面,又加密系统启动过程了。是不是很简单?

标签:加密,grub,GRUB,rd,密码,Linux,password
From: https://www.cnblogs.com/my-first-blog-lgz/p/17250943.html

相关文章

  • linux系统下mysql自动定时脚本
    查看脚本代码#!/bin/bash#备份路径BACKUP=/mnt/databackup/sql#当前时间DATETIME=$(date+%Y-%m-%d)echo"===备份开始==="#数据库名称DATABASE=hysoftv21_zs......
  • Prometheus通过Nginx防盗链加密node_exporter
    node_exporter是Prometheus的一个扩展程序,也是通过go语言编写,同样是开箱即食,主要用来采集服务器上的数据(CPU、内存等等)主机Prometheus可以通过部署在客户端的node_exporte......
  • linux 命令使用9--netstat(网络)
    1.概述netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。2.语法netstat[-acCeFghilMnNoprstuvV......
  • Linux查看端口的命令-九五小庞
    第一种:lsof命令lsof(listopenfiles)是一个列出当前系统打开文件的工具。lsof-i:端口号lsof可查看端口占用情况示例:查看服务器8000端口的占用情况:第二种:netstat......
  • 前端js RSA jsrsasign加密、解密、加签、验签
     jsrsasign(RSA-SignJavaScript库)是一个免费的开源加密库,支持RSA/RSAPSS/ECDSA/DSA签名/验证,ASN.1,PKCS#1/5/8私钥/公钥,X.509证书,纯JavaScript中的CRL,OCSP,CMSSigned......
  • Linux命令su、sudo、sudo su、sudo -i使用和区别
    sudo与su两个命令的最大区别是:sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码。另外一个区别是其默认行为,sudo命令只允许使用提升的权限运行单个命......
  • AM33X将本机Linux系统打包成docker镜像
    基于现有开发板上运行带有dockerfeature将正在运行系统打包成dockerimage对系统进行压缩   /proc、/sys、/run、/dev这几个目录都是系统启动时自动生成的,虽......
  • python读取linux服务下载数据文件
    importparamiko#pipinstallcx_Oracle-ihttps://mirrors.aliyun.com/pypi/simple/host='ip'port=22username='账户'password='密码'remote_path='服......
  • Linux实用又常用的命令
    linux查看当前目录下每个子目录的文件数量find.-maxdepth1-typed|whilereaddir;docount=$(find"$dir"-typef|wc-l);echo"$dir:$count";done-maxde......
  • Linux的优缺点
    作为一个Archlinux用户,断然是不会认为Linux有缺点的,任何所谓的缺点都是自己技艺不精或者没有好好利用搜索引擎而造成的狭隘偏见.但是假如是一位习惯于视窗系统的新手......