如何在CentOS 7中保护单用户模式的密码

在单用户模式下,系统执行单用户shell,您可以在其中运行命令,而无需任何登录凭据(用户名和密码)。

在我们之前的一篇文章中,我们介绍了如何在CentOS 7上启动单用户模式 它也被称为“ 维护模式 ”,其中Linux仅启动一些基本功能的服务,以允许单个用户(通常是超级用户)执行某些管理任务,例如使用fsck来修复损坏的文件系统。

在单用户模式下,系统执行单用户shell ,您可以在没有任何登录凭据(用户名和密码)的情况下运行命令,直接登录到有限的shell并访问整个文件系统。

这是一个巨大的安全漏洞,因为它可以让入侵者直接访问一个shell(并可能访问整个文件系统)。 因此,如下所述,密码保护CentOS 7上的单用户模式非常重要。

CentOS / RHEL 7中救援应急目标 (也是单用户模式 )在默认情况下受密码保护。

例如,当您尝试通过systemd目标运行级别 )更改为rescue.target (也是emergency.target )时,系统会要求您输入根密码,如以下屏幕截图所示。

# systemctl isolate rescue.target
OR
# systemctl isolate emergency.target
CentOS 7中的单用户模式

CentOS 7中的单用户模式

但是,如果入侵者具有物理访问服务器的权限,则可以通过按e键编辑第一个引导选项来选择要从grub菜单项启动的内核。

在以“linux16“开头的内核行上,他/她可以将参数ro更改为“rw init=/sysroot/bin/sh”并在CentOS 7上启动到单用户模式,而无需系统询问root密码,即使在文件/ etc / sysconfig / init中将行SINGLE=/sbin/sushell更改为SINGLE=/sbin/sulogin

更改CentOS引导选项

更改CentOS引导选项

因此,在CentOS 7中密码保护单用户模式的唯一方法是使用以下说明使用密码保护GRUB。

如何在CentOS 7中使用密码保护Grub

首先使用grub2-setpassword实用程序创建一个强大的加密密码,如图所示。

# grub2-setpassword
为GRUB创建加密密码

为GRUB创建加密密码

密码的哈希存储在/boot/grub2/user.cfg&user中 ,即在/boot/grub2/grub.cfg文件中定义了“root” ,您可以使用cat命令查看密码,如图所示。

# cat /boot/grub2/user.cfg
GRUB密码

GRUB密码

现在打开/boot/grub2/grub.cfg文件并搜索您想要密码保护的启动项,它以menuentry 条目一旦找到,请--unrestricted删除--unrestricted参数。

密码在CentOS 7中保护Grub

密码在CentOS 7中保护Grub

保存文件并关闭,现在尝试重新启动 CentOS 7系统并通过按e键修改启动项,将会要求您提供如图所示的凭据。

密码保护的Grub

密码保护的Grub

CentOS 7引导配置

CentOS 7引导配置

而已。 您已成功密码保护您的CentOS 7 GRUB菜单。


分享按钮