• 如何对Linux的grub进行加密


    一、加密


        设置grub密码:

        众所周知,通过编辑GRUB启动参数可以轻松的进入单用户模式从而修改root密码,这对于一台多用户的计算机或服务器来说,无疑增加了安全隐患。大家一定很像为自己的GRUB加一把锁吧,大家可以通过GRUB的password参数对GRUB设置密码。

        GRUB的密码设置可分为全局密码和菜单密码,为了防止他人通过GRUB修改root密码大家需要设置一个全局密码。在splashimage这个参数的下一行可以加上password=密码,保存后重新启动计算机,再次登录到GRUB菜单页面的时候就会发现,这时已经不能直接使用e命令编辑启动标签了,须先使用p命令,输入正确的密码后才能够对启动标签进行编辑。

        虽然我们设置了全局密码,但是如果他人得到了全局密码后仍然可以修改GRUB启动标签从而修改root密码;这样我们就可以设置菜单密码,设置菜单密码也非常简单,我们只需要在title的下一行加上password=密码,然后保存退出。这样即使有了全局密码也必需输入菜单密码才能够引导系统。此外,如果直接对GRUB进行明文加密也是非常不安全的,所以就要使用MD5对其进行加密。在终端中输入grub-md5-crypt回车,这时系统会要求输入两次相同的密码,之后系统便会输出MD5码。大家只需要将生成的MD5密文复制下来,然后在按照password--md5 MD5密文这个格式设置全局或者菜单密码,保存退出,重启计算机即可。

        1、计算grub的MD5加密密码:

    #grub-md5-crypt

    Password: 
    Retype password:
        输入两遍密码进行确认以后,就会计算出你所输入密码的MD5加密值,如:$1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ
        复制该密码进行MD5加密后的值。

        2、设置grub密码:

    #vi /boot/grub/grub.conf

    比如我原来的/boot/grub/grub.conf文件的内容是下面的。

                default=1

                timeout=10

               splashimage=(hd0,7)/boot/grub/splash.xpm.gz

                title Fedora Core (2.4.22-1.2061.nptl)

                root (hd0,7)

                kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/

                initrd /boot/initrd-2.4.22-1.2061.nptl.img

                title WindowsXP

                rootnoverify (hd0,0)

                chainloader +1

    所以我要在/boot/grub/grub.conf中加入 password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ 这行,以及lock,应该加到哪呢,请看下面的更改实例;

                timeout=10

               splashimage=(hd0,7)/boot/grub/splash.xpm.gz

                password ——md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ

                title Fedora Core (2.4.22-1.2061.nptl)

                lock

                root (hd0,7)

                kernel /boot/vmlinuz-2.4.22-1.2061.nptlro root=LABEL=/

                initrd /boot/initrd-2.4.22-1.2061.nptl.img

                title WindowsXP

                rootnoverify (hd0,0)

                chainloader +1

    lock的意思就是把Redhat Fedora锁住了。如果启动时会提示错误。这时就应该按P键,然后输入密码就行了。

     

    使用password,lock命令实现几种加密方法如下:

     

    1)单纯对GRUB界面加密,而不对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD

     

    2)对GRUB界面加密,同时对被引导的系统加密在timeout一行下面加一行: password ——md5 PASSWORD 在title一行下面加一行: lock

     

    3)同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密) 在title一行下面加一行: lock 在lock一行下面紧贴着再加一行: password ——md5 PASSWORD 注:lock不能单独使用.

    二、解密

        当Linux系统管理员密码忘记,又不能编辑grub菜单进行单用户模式重置密码,怎么办呢,只有对grub进行解密了。

        1、用Linux第一张安装光盘引导系统,进入修复模式。
        2、光盘引导系统,选择区域和语言,不用启动网卡。
        3、出现Rescue菜单,选择Continue,再弹出一个Rescue菜单,会显示“chroot /mnt/sysimage”,OK。
        4、sh-3.2#chroot /mnt/sysimage,若不执行此步,进系统不能进行改写。
        5、执行passwd对用户密码进行重置,完后重启正常进入系统。
        6、编辑/boot/grub/grub.conf,去掉“password --md5 $1$3VbjX/$PTzUC7OpcO3QunjIsB6LZ”这一行即可。

  • 相关阅读:
    Android自定义控件之仿美团下拉刷新
    Android性能优化之Bitmap的内存优化
    基于openfire+smack即时通讯instant message开发
    Android各组件/控件间通信利器之EventBus
    android的task任务栈
    Activity的启动模式
    Android 自定义View (一)
    Android之Handler用法总结
    Android中轻松使用线程
    Android 中Activity,Window和View之间的关系
  • 原文地址:https://www.cnblogs.com/xautlmx/p/3441315.html
Copyright © 2020-2023  润新知