如何在启动过程中及早打开端口以通过SSH解锁LUKS


11

我有一个运行Debian 7的完全加密的服务器,并设置了dropbear和busybox来通过SSH解锁LUKS容器(如本教程本U&L回答中所述)。

不幸的是,每当我尝试在重新引导时通过SSH SSH到服务器(通过LAN)时,都会出现“拒绝连接”错误。我曾尝试telnetnmap到默认端口(22),并都表示端口被封闭。

服务器具有ufw接受来自LAN的所有流量的规则:

Anywhere         ALLOW       192.168.1.0/24

我曾试图改变端口上监听dropbear /etc/defaults/dropbearsshtelnet仍然拒绝连接1

如何确保在引导过程中的那个阶段打开了端口,以便可以连接以解锁LUKS容器?

禁用防火墙没有区别:nmap显示所有端口仍处于关闭状态。

更新2/14

我添加break=premount到内核​​行,并在initramfs中进行了戳戳。dropbear已启动,但此时网络还没有建立。退出后,网络启动并继续引导,直到提示解锁LUKS设备。

此时,网络启动,并且已为主机分配了正确的IP地址,但端口22仍然关闭。

/etc/initramfs-tools/intiramfs.conf我正在使用的IP线路是:

export IP=192.168.1.200::192.168.1.1:255.255.255.0::eth0:off

/usr/share/doc/cryptsetup/README.remote.gz我尝试仅添加设备选项中的指示一致,但这不足以使网络启动并获得dhcp租约。

更新11/10/14

Karl的回答是需要的:设置/etc/initramfs-tools/conf.d/cryptroot是关键:

target=md1_crypt,source=UUID=8570d12k-ccha-4985-s09f-e43dhed9fa2a

该指南还被证明是最新和相关的(并且是成功的)。


1
哇!我完全不知道您可以远程解锁完全锁定的LUKS。显然我无法回答您的问题,但我想sshd尚未启动。在我的机器中,sshd在此过程的稍后启动。
emory 2012年

1
在busybox环境中,您是否可以通过控制台访问计算机?您能否验证dropbear确实在运行(通过ps)并在您期望的端口上进行监听(通过netstat)?
larsks 2012年

larsks-不,因为在控制台上,提示正在等待输入密码,并且切换到另一个TTY只是意味着空白屏幕(如果我理解正确的话)。
jasonwryan'4

您可以(暂时)删除LUKS加密并验证drop bear实际上正在运行吗?
emory

1
您是否尝试过使用break=X引导参数之一来获得早期的initramfsShell?每当我调试文件系统加密问题时,都会使用break=premount。您可以检查情况,解决问题,然后继续启动。
Alexios,2012年

Answers:


3

几周前我遇到了同样的问题(Debian Wheezy 7.6),经过几天的故障排除后,我发现缺少一个配置文件,该文件阻止init-top上的cryptroot脚本正确运行,因此它没有停止通过ssh询问密码,在序列末尾(init-bottom)杀死dropbear。

配置文件被称为cryptroot并且应当根据/etc/initramfs-tools/conf.d/ 如果我没有记错的话这个配置文件应该已经自动安装过程中创建的(我已阅读只是一个教程谈论的配置文件),但不知何故,没有(在一台物理服务器和测试VM,相同的操作系统和版本)

我花了几次尝试才能正确配置它,因为那时我找不到合适的语法。我的cryptroot配置文件如下:

target=crypt-root,source=/dev/vg0/root,lvm=root

创建配置文件后,只需更新initramfs,然后重试:

update-initramfs -u

你是传奇!谢谢:我已经为此苦苦挣扎了很长时间,并且几乎放弃了解决它的希望。我的cryptroot语法与您的语法不同,但是您的回答足以使我朝正确的方向发展。我很感激你。
jasonwryan 2014年

我很高兴您终于成功了。在调查问题时,我看到了您的问题,我认为我应该在解决问题后发布解决方案。
卡尔

3

主题行有误。问题不是封闭端口,而是未绑定的端口。SSHd尚未启动;这就是您无法连接到它的原因。


@camh,对此有任何规定吗?
poige,2012年

我更专注于第一句话,即社论。其余的答案很简短,但是我想仍然是一个答案。我将删除我的评论。
卡姆(Camh)2012年

@camh,我知道了…
poige

我没有使用sshd:正如问题所述,我尝试连接到默认情况下在端口22上运行的dropbear实例。
jasonwryan 2014年

@jasonwryan,您要使用的确切TCP服务没有任何作用,真正重要的是它没有启动。
poige

3

Dropbear(ssh服务器)应该在启动阶段非常早地启动-比init(rcN.d)序列和防火墙初始化脚本更早;甚至早于/挂载(它也已加密,对吗?)。因此initramfs,引导加载程序为内核加载了pre // userland。图像是由中update-initramfs -u的内容(重新)生成的/etc/initramfs-tools/,包括中的dropbear配置/etc/initramfs-tools/etc/dropbear/。要使用dropbear配置,请使用该配置。

因此,需要检查的几点:

  • dropbear无法启动:尚未很好地插入initramfs序列中;
  • 默认防火墙拒绝所有。

谢谢yarek:我认为您是对的-我已用debian错误(和无法解决的问题)更新了我的问题。我也尝试禁用防火墙。
jasonwryan'5
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.