问题描述
最近我的一个朋友来到了我的位置,在15分钟内他使用Live CD攻击我的帐户并在我面前重置密码。我很困惑地看到这样的事情。请指导我防止将来尝试使用Live CD。
最佳解决思路
一种快速简便的方法是禁用从BIOS中的CD和USB memory 棒启动并设置BIOS密码。
根据这个wiki page:
Placing passwords or locking menu items (in the Grub configuration files) does not prevent a user from booting manually using commands entered at the grub command-line.
然而,没有什么可以阻止某人偷你的硬盘驱动器并将其安装在另一台机器上,或者通过取出电池来重置BIOS,或者在物理访问你的机器时攻击者可以使用的其他方法之一。
更好的方法是加密驱动器,您可以通过加密主目录或加密整个磁盘来执行此操作:
次佳解决思路
拿着tee-ball球棒,站在电脑旁边。严重殴打任何接近的人。
或锁定它。
如果您的计算机是物理可访问的,则不安全。
第三种解决思路
首先警告……
grub2密码保护程序可能非常棘手,如果你弄错了,就有可能给自己留下一个non-bootable系统。因此,请始终先对hard-drive进行完整的映像备份。我的建议是使用Clonezilla – 也可以使用另一个备份工具,如PartImage。
如果要练习此操作 – 请使用可以回滚快照的虚拟机guest。
让我们开始
下面的过程可以在启动时保护未经授权的Grub设置编辑 – 也就是说,按e
进行编辑可以更改启动选项。例如,您可以强制启动到单用户模式,从而可以访问您的hard-disk。
此过程应与hard-disk加密和安全bios引导选项一起使用,以防止从live cd启动,如此问题的相关答案中所述。
几乎所有下面的内容都可以一次复制和粘贴一行。
首先让我们备份我们将要编辑的grub文件 – 打开一个终端会话:
sudo mkdir /etc/grub.d_backup
sudo cp /etc/grub.d/* /etc/grub.d_backup
让我们为grub创建一个用户名:
gksudo gedit /etc/grub.d/00_header &
滚动到底部,添加一个新的空行并复制并粘贴以下内容:
cat << EOF
set superusers="myusername"
password myusername xxxx
password recovery 1234
EOF
在此示例中,创建了两个用户名:myusername和recovery
下一步 – 导航回终端(不要关闭gedit
):
仅限Natty和Oneiric用户
通过键入生成加密密码
grub-mkpasswd-pbkdf2
输入您提示时将使用两次的密码
Your PBKDF2 is grub.pbkdf2.sha512.10000.D42BA2DB6CF3418C413373CD2D6B9A91AE4C0EB4E6AA20F89DFA027CA6E6CBF3542CB39E951607E9D651D82700AF47884929BDD193E36CB262CC96201B5789AA.1A9B0033928E3D3D0338583A5BF13AF7D5CC6EC5A41456F8FE8D8EBEB7A093CD0A0CE8688949E6007188ECB3FB0FF916F258602D130CF5C8525FB318FBBE2646
我们感兴趣的一下是grub.pbkdf2...
并结束了BBE2646
使用鼠标突出显示此部分,右键单击并复制此部分。
切换回您的gedit
应用程序 – 突出显示文本”xxxx”并将其替换为您复制的内容(右键单击并粘贴)
即该线应该是这样的
password myusername grub.pbkdf2.sha512.10000.D42BA2DB6CF3418C413373CD2D6B9A91AE4C0EB4E6AA20F89DFA027CA6E6CBF3542CB39E951607E9D651D82700AF47884929BDD193E36CB262CC96201B5789AA.1A9B0033928E3D3D0338583A5BF13AF7D5CC6EC5A41456F8FE8D8EBEB7A093CD0A0CE8688949E6007188ECB3FB0FF916F258602D130CF5C8525FB318FBBE2646
所有’buntu版本(清晰及以上)
保存并关闭文件。
最后,您需要密码保护每个grub菜单项(所有文件都有一行开始menuentry):
cd /etc/grub.d
sudo sed -i -e '/^menuentry /s/ {/ --users myusername {/' *
这将为每一行添加一个新条目--users myusername
。
运行update-grub以重新生成grub
sudo update-grub
当您尝试编辑grub条目时,它将询问您的用户名,即myusername和您使用的密码。
编辑所有grub-entries时,重新启动并测试正在强制执行用户名和密码。
注:记得在开机时按SHIFT
来显示您的grub。
Password protecting recovery mode
通过使用恢复模式,可以轻松解决上述所有问题。
幸运的是,您还可以强制使用用户名和密码来使用recovery-mode菜单条目。在本答案的第一部分中,我们创建了一个名为recovery的附加用户名,密码为1234.要使用此用户名,我们需要编辑以下文件:
gksudo gedit /etc/grub.d/10_linux
更改以下行:
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
至:
if ${recovery} ; then
printf "menuentry '${title}' --users recovery ${CLASS} {\n" "${os}" "${version}"
else
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
fi
使用恢复时,请使用用户名恢复和密码1234
运行sudo update-grub
以重新生成grub文件
尝试引导进入恢复模式时,重新启动并测试要求您输入用户名和密码。
更多信息 – http://ubuntuforums.org/showthread.php?t=1369019
第四种思路
重要的是要记住,如果有人可以物理访问您的计算机,他们将始终能够为您的PC做事。锁定PC机箱和BIOS密码之类的东西并不能阻止一个坚定的人拿走你的硬盘和数据。