LinuxFan98 Asked: 2018-03-03 10:56:07 +0800 CST2018-03-03 10:56:07 +0800 CST 2018-03-03 10:56:07 +0800 CST 如何防止单用户模式 772 您好,我想知道如何防止 init 和 systemd 的单用户模式 secure-boot 1 个回答 Voted Best Answer Connor Payne 2018-03-03T11:02:45+08:002018-03-03T11:02:45+08:00 潜在的攻击 单用户模式 这是获得对 Linux 系统的未经授权访问的最简单方法是将服务器引导到单用户模式,因为默认情况下,它不需要 root 密码来获得 root 级别的访问权限。单用户心情可以通过重启机器和中断启动过程来访问。要引导到使用 GRUB 引导加载程序的单用户模式,请执行以下操作;中断引导过程,按 e 编辑引导配置文件,附加到其中一个开始的行Linux以s, S, 1 or systemd. unit=[rescue.target, emergency.target, rescue]更改引导期间传递给内核的参数以引导到单用户模式,然后按 ctrl+x。 防止单用户模式 对于传统的基于 init 的系统 以 root 身份编辑文件/etc/sysconfig/init,然后在行上SINGLE=/sbin/sushell更改 sushell TO sulogin。 对于基于 systemd 的系统 需要更改目标配置才能提示输入 root 密码。目标位于/lib/systemd/system需要更改的文件是emergency.service和rescue.service. 更改行首并将和中ExecStart=-/bin/sh –c “/usr/sbin/sushell; ……”的 更改/usr/sbin/sushell为。/usr/sbin/suloginemergency.servicerescue.service 检查这是否已生效 然后保存更改并重新启动以确认更改已生效,如果在启动到单用户模式时更改成功,则需要输入root密码。 根密码 默认情况下,某些 Linux 发行版没有设置 root 密码,这可以通过运行命令来检查head -1 /etc/shadow,如果使用冒号作为分隔符的第二列是感叹号,则没有设置密码。如果没有设置 root 密码,那么无论系统是否设置为提示输入单用户模式的密码,它都只会加载 root 访问权限。 保护引导加载程序 不安全的引导加载程序可能会导致引导加载程序被完全绕过,并使用 shell 获得对系统的直接根级别访问权限。这是通过中断 GRUB 引导过程并附init=/bin/bas加到行开头来完成的linux16。这将告诉内核使用 bash 而不是 init。 防止引导加载程序侧载 GRUB 引导加载程序可以通过将配置放在 /etc/grub.d/40_custom 文件中来进行密码保护,因为该文件不会被引导加载程序的更新和升级所触及。在保存并退出文件后/etc/grub.d/40_custom添加set superusers=”admin”密码 admin 并运行以下命令grub2-mkpasswd-…(允许制表符完成以完成此命令,以便运行系统兼容脚本)此命令的输出来自 grub2。Onwards 需要添加password admin到/etc/grub.d/40_custom. 之后,需要通过在grub2-mkconfig –o /boot/grub2/grub.cfgcentos 或update-grub¬debian 上运行命令来重新编译 grub 文件。 检查这是否已生效 然后保存更改并重新启动以确认更改已生效,如果在启动时更改成功并且想要更改 grub 设置,则需要提供用户名 admin 和加密密码。 防止恢复攻击 这些措施有助于保护,但是,如果使用磁盘,则磁盘上的恢复 Linux 功能可用于挂载文件系统并从磁盘更改 GRUB 设置。为了防止任何可移动媒体的启动优先级低于启动驱动器和密码,请保护 BIOS 和启动选项菜单,以阻止无权访问的人更改启动顺序并启动到磁盘以对系统进行更改。
潜在的攻击
单用户模式
这是获得对 Linux 系统的未经授权访问的最简单方法是将服务器引导到单用户模式,因为默认情况下,它不需要 root 密码来获得 root 级别的访问权限。单用户心情可以通过重启机器和中断启动过程来访问。要引导到使用 GRUB 引导加载程序的单用户模式,请执行以下操作;中断引导过程,按 e 编辑引导配置文件,附加到其中一个开始的行
Linux
以s, S, 1 or systemd. unit=[rescue.target, emergency.target, rescue]
更改引导期间传递给内核的参数以引导到单用户模式,然后按 ctrl+x。防止单用户模式
对于传统的基于 init 的系统
以 root 身份编辑文件
/etc/sysconfig/init
,然后在行上SINGLE=/sbin/sushell
更改 sushell TOsulogin
。对于基于 systemd 的系统
需要更改目标配置才能提示输入 root 密码。目标位于
/lib/systemd/system
需要更改的文件是emergency.service
和rescue.service
. 更改行首并将和中ExecStart=-/bin/sh –c “/usr/sbin/sushell; ……”
的 更改/usr/sbin/sushell
为。/usr/sbin/sulogin
emergency.service
rescue.service
检查这是否已生效
然后保存更改并重新启动以确认更改已生效,如果在启动到单用户模式时更改成功,则需要输入root密码。
根密码
默认情况下,某些 Linux 发行版没有设置 root 密码,这可以通过运行命令来检查
head -1 /etc/shadow
,如果使用冒号作为分隔符的第二列是感叹号,则没有设置密码。如果没有设置 root 密码,那么无论系统是否设置为提示输入单用户模式的密码,它都只会加载 root 访问权限。保护引导加载程序
不安全的引导加载程序可能会导致引导加载程序被完全绕过,并使用 shell 获得对系统的直接根级别访问权限。这是通过中断 GRUB 引导过程并附
init=/bin/bas
加到行开头来完成的linux16
。这将告诉内核使用 bash 而不是 init。防止引导加载程序侧载
GRUB 引导加载程序可以通过将配置放在 /etc/grub.d/40_custom 文件中来进行密码保护,因为该文件不会被引导加载程序的更新和升级所触及。在保存并退出文件后
/etc/grub.d/40_custom
添加set superusers=”admin”
密码 admin 并运行以下命令grub2-mkpasswd-…
(允许制表符完成以完成此命令,以便运行系统兼容脚本)此命令的输出来自 grub2。Onwards 需要添加password admin
到/etc/grub.d/40_custom
. 之后,需要通过在grub2-mkconfig –o /boot/grub2/grub.cfg
centos 或update-grub¬
debian 上运行命令来重新编译 grub 文件。检查这是否已生效
然后保存更改并重新启动以确认更改已生效,如果在启动时更改成功并且想要更改 grub 设置,则需要提供用户名 admin 和加密密码。
防止恢复攻击
这些措施有助于保护,但是,如果使用磁盘,则磁盘上的恢复 Linux 功能可用于挂载文件系统并从磁盘更改 GRUB 设置。为了防止任何可移动媒体的启动优先级低于启动驱动器和密码,请保护 BIOS 和启动选项菜单,以阻止无权访问的人更改启动顺序并启动到磁盘以对系统进行更改。