试验目的:
         在RHCE_LAB(3)中我们通过GRUB系统引导程序来重置root超级用户的密码,因此我们也发现了Linux在root权限保护方面的不足。
         本期试验我们通过配置GRUB系统引导程序的密码来提高root权限的安全性。
         GRUB系统引导程序的密码分为明文密码和MD5加密密码,本期实验将分别介绍。
试验环境:
         操作系统:RedHat Enterprise Linux 5 (RHEL5)
         相关软件:GRUB 系统引导管理器
          RPM版本:grub-0.97-13
试验要求:
          依次完成两种密码的配置,有效保护root用户权限的安全。
 
试验步骤:
一、明文密码配置
         注:无论在实际工作环境还是试验环境中,当我们更改某个配置文件时请先拷贝一份此配置文件的备份档,当我们更改的配置文件出现了问题可以提供一个有效的恢复途径。
         这样做在任何时候都是绝对正确以及非常必要的; 请相信我,并让此做法成为你的一个良好的习惯。
 
         1. 使用root用户编辑/etc/grub.conf 配置文件(请首先备份文件 cp /etc/grub.conf /etc/grub.conf.bak ),在“hiddenmenu”上面新加一行内容为password redhat 其中 redhat 就是我们为GRUB分配的密码。
         参看下面的显示
default=2
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
password redhat
hiddenmenu
title Red Hat Enterprise Linux Server-base (2.6.18-8.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup/LogVol00 quiet
        initrd /initrd-2.6.18-8.el5.img
 
         2. 保存配置,重新引导系统。当进入GRUB系统引导选单界面,我们可以看到“Press enter to boot the selected OS or 'p' to enter a password to unlock the next set of features.”这样的提升信息,它告诉我们按下“p”键然后输入密码来解除锁定并进行下一步设置。
         参见下图:
 
             我们按照提升按下“p”字母键,在出现的“password:”提升符后输入刚刚在/etc/grub.conf 中设置的密码“redhat”并回车。
             这时我们就看到了熟悉的编辑界面,我们依然可以通过“e”编辑选单,通过“a”更改引导参数并且进行相应的维护(在RHCE_LAB(3)中我们已经介绍了这个界面和重置root密码的操作方法)。
 
二、MD5加密的密码配置
         注:明文密码虽然可以保护root权限不被非法获得,但是就GRUB密码本身来说并不安全,所以我们最好使用经过MD5加密后的密码,这样的密码就如同我们/etc/shadow 配置文件中的密码字符串一样,即使GRUB配置文件不慎泄露也不会暴露我们设定的密码。
 
         1. 我们可以使用指令 grub-md5-crypt 来配置MD5加密的密码,在出现类似下面的提示信息后依次输入两次相同的密码。
Password:
Retype password:
$1$bTVkv$BtTsqB6sxh8CVjbJuyptU1
             这里我们依然输入 redhat 作为密码,回车确认之后系统会显示出一个经过MD5加密的字符串,这个就是我们刚刚输入的密码经过MD5运算加密后的样子。
 
        2. 我们再次编辑 /etc/grub.conf 这个配置文件,把刚才输入的“password redhat”那行改为“password --md5 ”,然后我们把刚刚加密过的密码字符串(或者说是乱码^_^)复制到“password --md5 ”字符后面,形式就像下面这样。
password --md5 $1$bTVkv$BtTsqB6sxh8CVjbJuyptU1
 
        3. 保存退出,重新启动。然后依照明文密码配置中说到的步骤进行操作就好了。在这里我们设定的密码依然是“redhat”。如果验证通过那么我们的试验就成功了。
 
试验总结:(本期的试验总结很重要哦!)
         MD5加密算法相对来说是不可逆的运算,也就是说相对无法破解。
         关于将MD5加密过的密码字符串复制到配置文件的方法有很多,不过比较原始的方法就是一个一个字符的输入进去,但是这样不仅效率低而且有时会输入错误。在此奉献给各位一个本人刚刚试验成功的高效率方法^_^,指令如下 grub-md5-crypt | tee /dev/console | grep '^[^R,P]' >> /etc/grub.conf ,这样生成的MD5密码就添加到了/etc/grub.conf 文件的最后一行,我们通过vi编辑器进行复制、粘贴就好了。
         关于这条指令就不过多解释其详细功能了,有兴趣的朋友自行参考相关资料。
         其中重要的一点要说明“/dev/console”是你现在所处的用户终端设备对应的文件名称,如果你是通过SSH或者TELNET来管理Linux的那么就应改成相应的值。我们可以通过“w”指令进行查看,“TTY”那一列所对应的就是你在本指令中应该替换“console”的终端文件名称。
         当你忘记了root密码同时也忘记了GRUB密码的话,那么就要麻烦一些了,你可以把这块硬盘挂载到其他Linux主机,然后对/etc/grub.conf配置文件做相应更改即可。
 
 
RHCE_LAB(4)GRUB提升安全性保护root密码安全--结束