Linux内核的系统,如Linux、UNIX等,都存在一个安全性问题,就是通过grub进入单用户模式,进入单用户模式后,可以更改root帐户的密码等等。
那怎么样才是通过grub进入单用户模式呢?
本次实验的操作系统是Rad Hat Enterprise Linux 4(不同系统文件存放地点和文件名可能会有差异)
步骤:
1、在操作系统启动的第一个界面,如下图,是一个限于几秒钟等待键入的画面,此时,在键盘上迅速连续点击”Esc”键(也可以在系统启动之前就一直按”Esc”)
clip_p_w_picpath002
2、最后画面就停留在此处,如下图。下面有提示说“’e’ to edit the commands before booting”,在此画面键入e
clip_p_w_picpath002[5]
3、键入e后跳转到此画面,选择第二项,再次键入e编辑
clip_p_w_picpath002[7]
4、删除”rhgb quie”,输入”single”。请注意不要删到路径,路径+空格+single,如下图。弄错了就麻烦了,建议不要在真实机上做实验。
clip_p_w_picpath002[9]
5、更改为single后按回车,回到选择的界面,如下图。Press ‘b’ to boot,键入b启动系统。
clip_p_w_picpath002[11]
6、系统启动到命令行界面,到此就可以输入各种命令啦
clip_p_w_picpath002[13]
7、想更改root帐户密码。输入passwd回车,提示说更改root用户密码,键入新密码按回车,(请谨慎输入密码,因为在画面上是不可见的),再次输入密码按回车,提示说”updated successfully”就更改成功了,输入reboot重启系统。如下图前几行。
clip_p_w_picpath002[15]
8、实验做到此处就已经更改root密码成功了。
寥寥几步就可以更改root密码,真是太简单了,那怎样才能拒绝,完全不需要知道任何系统信息,就能更改root密码的行为呢?
Grub加密。设置一下grub,要输入正确的密码才能进入grub编辑
步骤:
1、进入文件夹/boot/grub,打开文件grub.conf,添加一条命令password=123abc!!(密码是随意的),添加到splashp_w_picpath命令的上一行或下一行。如下图
clip_p_w_picpath002[17]
2、点击保存,重启系统,再次像上面介绍的方法进入此界面,看看有什么不同。没有提示说键入’e’编辑了,而是“’p’ to enter a password”
clip_p_w_picpath002[19]
3、键入p,下方出现输入密码的地方,正确输入密码
clip_p_w_picpath002[21]
4、正确输入密码按回车后,才进到第一个能编辑的界面,看下图
clip_p_w_picpath002[23]
5、这样别人就不能随意地进入单用户模式了,因为需要grub密码。
6、但是grub密码,以明文的方式保存在文件里,也是不够安全的,Linux系统自带MD5加密算法。可以利用MD5算法把grub密码加密存放。回到桌面,右击打开终端,输入grub-md5-crypt回车,输入密码,再次输入密码,两次密码一致的话,就生成一串不规则字符串,那就是我们要的被加密的密码,如下图第四行
clip_p_w_picpath002[25]
7、复制不规则字符串,注意不要复制多了或少了。打开/boot/grub下的grub.conf文件
删除’=123abc!!’,空格,输入’--md5’,空格,右击粘贴,把刚才的字符串不多不少地粘贴出来,如下图
clip_p_w_picpath002[27]
8、密码以密文的形式保存在文件中,就安全多了。注意在进入grub界面时,还是输明文的那个密码,而不是输那串不规则的密码字符串。
9、以上做的是grub的全局加密,还有个grub局部加密,还是针对/boot/grub里的grub.conf文件做设置。在title里的root下面,添加一条一样的命令就行了,可以使用另一个密码,重新生成另一个密文,这里只用和全局一样的密码,如下图
clip_p_w_picpath002[29]
10、但是,grub全局加密只是对要进入grub界面时才起作用;而局部加密,不但对grub起作用,而且正常启动系统时,也要求输入局部密码,就是说,如果设置了grub局部密码,正常启动系统时要输入两次密码,一次是局部密码,一次是以前启动系统时root帐户密码,如下图:
clip_p_w_picpath002
clip_p_w_picpath002[31]
clip_p_w_picpath002[33]
实验grub加密到此结束