红联Linux门户
Linux帮助

引导装载程序口令及保护

发布时间:2006-08-27 00:21:02来源:红联作者:舍其里奥
以下是使用口令来保护 Linux 引导装载程序的主要原因:
1) 防止进入单用户模式 -- 如果攻击者能够引导入单用户模式,他就可以成为根用户。
2) 防止进入 GRUB 控制台 -- 如果机器使用 GRUB 作为引导装载程序,攻击者可以使用 GRUB 编辑界面来改变它的配置或使用 cat 命令来收集信息。
3) 防止进入非安全的操作系统 -- 如果它是双引导系统,攻击者可以在引导时选择操作系统,例如 DOS,它会忽略存取控制和文件权限。


?用口令保护 GRUB
1) GRUB 可以通过在它的配置文件中添加一个口令(password)指令来解决问题,要这么做,
a、首先决定要使用什么口令,然后打开 shell 提示,登录为根用户,键入: /sbin/grub-md5-crypt 在提示时,键入 GRUB 口令,然后按[Enter]。这会返回一个口令的 MD5 散列。
b、编辑 GRUB 配置文件 /boot/grub/grub.conf , 在主体的 timeout 行下添加以下行:
引用:
password --md5 替换成 /sbin/grub-md5-crypt[2] 返回的值


下次系统引导时,如果你不首先按 [p] 和 GRUB 口令,GRUB 菜单就不会允许你进入编辑器或命令界面。

2) 不幸的是,这个办法并不能防止攻击者在双引导环境中引导不安全的操作系统。要解决这个问题,你必须编辑 /boot/grub/grub.conf 文件中的另一个部分。
a、寻找不安全操作系统的 title 行,然后紧跟在下面添加一行 lock。
b、对于 DOS 系统,该实例应该和以下的启动方式相似:
[code] title DOS
lock[/code]

[ 警告]
/boot/grub/grub.conf 文件的主体中必须有 password 行才能使这种方法正确运行。否则,攻击者就可以进入 GRUB 编辑器界面,然后删除 lock 行。

要为某个特定内核或操作系统创建不同的口令,在那个实例中添加一个 lock 行,再紧跟一行 password。
每个使用独特口令来保护的实例开头都应该和以下相似:
[code] title DOS
lock
password --md5 [/code]

?用口令保护 LILO
LILO 是一个比 GRUB 简单的引导装载程序,它不提供命令界面,因此攻击者在内核被载入前无法获得到系统的互动存取。不过,攻击者仍能够引导单用户模式或不安全的操作系统。

使用口令保护 LILO 可以通过在配置文件的全局部分添加一个口令指令来达到。要这么做,打开一个 shell 提示,登录为根用户,编辑 /etc/lilo.conf 文件。在第一个 image 实例前,添加一个和以下相似的口令指令:
[code]password=[/code]

在上面的指令中,把 替换成 LILO 的口令。

[重要]
在编辑 /etc/lilo.conf 时,你必须运行 /sbin/lilo -v -v 命令来使改变生效。如果口令被配置了,除了根用户外的所有人都可以读取这个文件,LILO 会正确安装,但是它会通知用户该配置文件的权限没有被正确设置。

如果不想使用一个全局口令,口令指令可以被添加到和内核及操作系统相应的实例中。要这么做,把口令指令添加到紧跟在 image 下的一行。完成后,使用口令保护的实例的开头就和以下相似:
[code] image=/boot/vmlinuz-
password=[/code]

在前面的例子中,使用内核版本替换 ,使用该内核的 LILO 口令替换
你还有可能在防止用户不使用口令而指定参数的同时不进行口令校验而允许引导内核或操作系统。要做到它,在实例内的 password 行下面添加 restricted 指令。此类实例的开头和以下相仿:
[code] image=/boot/vmlinuz-
password=
restricted[/code]

替换成内核版本,把 替换成该内核的 LILO 口令。
若使用 restricted 指令,在实例内还必须有一个 password 行。

[警告]
/etc/lilo.conf 文件是全局可读的。如果你要使用口令来保护 LILO,只允许根用户读取和编辑该文件是一项基本要求,因为所有的口令都是纯文本的。要做到它,作为根用户键入以下命令:
[code]chmod 600 /etc/lilo.conf[/code]
文章评论

共有 1 条评论

  1. yrj8008037241 于 2011-06-15 16:26:21发表:

    {:3_118:}