远程解锁完全加密的Debian压缩

远程解锁完全加密的Debian压缩

作者:Stephan Jau
修订:v1.0
最后更改:2012年4月14日

介绍

在过去我已经写了几个远程解锁完全加密的Debian安装。 随着Debian Squeeze的到来,开发人员已经集成了一个简单的方法来实现。 大多数东西都是由Debian本身直接提供的 - 这意味着你不再需要第三方脚本了。 然而,它仍然涉及我在下面描述的几个步骤。 另外我还提供一个自动执行所有步骤的bash脚本。

我建议先在虚拟机中测试各个步骤和脚本,看看它是如何进行的。

1.安装必需的软件包

apt-get install dropbear busybox

2.编辑/etc/initramfs-tools/initramfs.conf

将以下参数设置为以下值:

BUSYBOX=y
DROPBEAR=y
DEVICE=eth0
IP=10.0.0.99::10.0.0.1:255.255.255.0::eth0:off

当然,请选择您要连接的适当的网络设备,并设置相应的IP地址,网关和子网掩码。 这些设置只能在重新启动时才能影响到dropbear ssh服务器。 如果您的机器通常使用IP地址10.0.0.43,您仍然可以将其设置为10.0.0.99。 然后.99地址只能用于远程解锁。 一旦它被解锁并且正常的引导过程继续,它将使用真实的地址。 但是我宁愿总是使用相同的IP地址。

3.创建主机密钥在/ etc / initramfs-tools / etc / dropbear /

安装dropbear后,应根据主机键创建。 但是要确保它们真的存在,我们将删除现有的并重新创建它们。

rm /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
rm /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key
dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key

4.创建私钥和公钥

为了使用dropbear进行身份验证,我们将创建一对新的私钥和公钥。 因此,当系统启动时,它们不会与可用的混合。

rm -Rf /etc/initramfs-tools/root/.ssh
mkdir -p /etc/initramfs-tools/root/.ssh
mkdir -p /root/reboot
dropbearkey -t rsa -f /root/reboot/reboot_rsa.dropbear
/usr/lib/dropbear/dropbearconvert dropbear openssh /root/reboot/reboot_rsa.dropbear /root/reboot/reboot_rsa
dropbearkey -y -f /root/reboot/reboot_rsa.dropbear | grep "^ssh-rsa " > /root/reboot/reboot_rsa.pub
cat /root/reboot/reboot_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys

在这个例子中,你可以看到我命名为“rebo​​o”。 你可以为他们选择任何一个名字,只需要相应地改变一切。 在提供的bash脚本中,您可以设置一个前缀,将其命名为您的愿望。 我建议使用主机名作为前缀,所以你知道什么是密钥对属于哪个机器。

5.更新initramfs

update-initramfs -u

SCP本地机的私钥

在本地机器上,不是加密的远程机器,请运行以下命令:

scp root@REMOTE:/root/reboot/reboot_rsa ~/.ssh/

这将将以前生成的私钥复制到本地计算机。 重新启动后,您需要使用私钥解锁远程机器。

7.在本机上创建解锁脚本

创建具有以下内容的本地shell脚本文件。 当然,用实际的密码替换YOURENCRYPTIONPASSWORD来解锁远程机器。

ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.reboot" -i ~/.ssh/reboot_rsa root@REMOTE "echo -ne \"YOURENCRYPTIONPASSWORD\" >/lib/cryptsetup/passfifo"

8.测试

现在,您已经准备了REMOTE加密机器,您已经将本地机器上的私有密钥存储起来,并创建了一个脚本来登录到远程机器并提供LUKS密码。

立即重新启动远程加密机器,并且当它要求加密密码时,只需在本地机器上运行在第7步中创建的脚本。

要了解更多信息,您可以在/usr/share/doc/cryptsetup/README.remote.gz文件中找到该信息

Bash脚本

正如刚才所说,我还提供一个bash脚本来执行所有的步骤。 只需下载附加的bash脚本,将其放在加密的Debian上,编辑顶部,设置您的前缀,网络设备和网络设置。 保存它,使其可执行并以root身份运行。

Bash脚本: debian_crypto

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏