标签: cryptsetup

在无头服务器上使用 LUKS 进行完整系统加密 - 使用 dropbear 和 busybox 解锁。如何?

我使用 cryptsetup/LUKS 加密了无头服务器。
2 个 HDD,/dev/md0 上有 512 MB /boot,1.61 TB LUKS 加密 /dev/md1,LVM 包含 /、swap 等。
我安装了 dropbear(并且已经安装了 busybox)以在启动过程中解锁所有内容。我用GRUB2。

到目前为止一切正常。我可以在 dropbear 上使用私钥登录并侦听端口 22,并使用以下命令解锁 LUKS

echo -n "passphrase" > /lib/cryptsetup/passfifo
Run Code Online (Sandbox Code Playgroud)

一旦我这样做,服务器就会启动,就好像没有加密一样。这正是我想要的。

现在,虽然这工作得很好,但这不是我想要的。
首先,我在 /lib/cryptsetup/passfifo 上找不到任何文档。它是如何运作的?其次,我使用 GPG 生成了一个密钥文件(也是一个使用 cryptsetup 作为环回设备的密钥文件),我想用它来代替密码。但我找不到任何有关如何在 busybox 中执行此操作的纪录片。GPG 似乎没有安装,所以我无法使用该密钥(我可以以某种方式使 GPG 可供 busybox 使用吗?)

所以目前,我解锁系统的唯一方法是将我的密码传递给 /lib/我不想使用 cryptsetup/passfifo 。我尝试直接在它的 busybox 路径中使用 cryptsetup

cryptsetup luksOpen /dev/md1 cryptdisk
Run Code Online (Sandbox Code Playgroud)

我没有显示任何错误,但我的系统没有继续启动。

我能做什么,或者我的处理方法有问题吗?

坦率

encryption boot luks busybox cryptsetup

6
推荐指数
1
解决办法
1万
查看次数

从 14.04 升级到 16.06 后的交换问题

将 Ubuntu 从 14.04 升级到 16.04 后,启动开始变得非常缓慢。似乎是交换分区的问题。下面我附上一些细节。

cat /var/log/boot.log

[FAILED] Failed to activate swap /dev/mapper/ubuntu--vg-swap_1.
See 'systemctl status "dev-mapper-ubunt...\x2dvg\\x2dswap_1.swap"' for details.
[DEPEND] Dependency failed for Swap.
...
[ TIME ] Timed out waiting for device dev-di...\x2db1dc\x2dae7fb1c172e6.device.
[DEPEND] Dependency failed for Cryptography Setup for cryptswap1.
[DEPEND] Dependency failed for dev-mapper-cryptswap1.device.
[DEPEND] Dependency failed for /dev/mapper/cryptswap1.
[DEPEND] Dependency failed for Encrypted Volumes.
Run Code Online (Sandbox Code Playgroud)

猫 /etc/fstab

/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=d57910fd-a1ae-4721-8da0-af0677f5a869 /boot           ext2    defaults        0 …
Run Code Online (Sandbox Code Playgroud)

upgrade boot swap cryptsetup 16.04

6
推荐指数
1
解决办法
1717
查看次数

Ubuntu 18.04 - cryptsetup 无法识别密码,从 Live USB 解锁工作

我最近买了一个 Ubuntu 版 Dell XPS 13 9370。这台机器没有开箱即用的全盘加密,但提供创建一个恢复 USB 驱动器,当从该 Ubuntu 启动时可以安装 LUKS 加密。

但是,在安装我的密码后永远无法识别,我总是收到“cryptsetup failed, bad password or options?”

  • 罪魁祸首不能是键盘布局,密码abcd也不起作用。
  • 加密本身似乎配置正确 - 当我从实时 USB 系统启动并启动“磁盘”实用程序时,我可以使用我选择的密码成功解锁驱动器(我再次尝试abcd,所以它不会是布局问题)

有没有其他人看到这个问题?任何建议如何解决它?谢谢!

encryption xps luks cryptsetup 18.04

6
推荐指数
1
解决办法
1万
查看次数

缺少名为 vega20_ta.bin 的 amdgpu 固件文件 | 库本图 19.04

最近,每次升级后,我都会在过程结束时得到这些行:

Processing triggers for initramfs-tools (0.131ubuntu19) ...
update-initramfs: Generating /boot/initrd.img-5.0.0-17-generic
cryptsetup: ERROR: Couldn't resolve device 048c7724-eed7-4e49-979f-f77f3d4dbfdb
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries 
    nor crypto modules. If that's on purpose, you may want to uninstall the 
    'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs 
    integration and avoid this warning.
W: Possible missing firmware /lib/firmware/amdgpu/vega20_ta.bin for module amdgpu
Run Code Online (Sandbox Code Playgroud)

我在内核存储库中搜索了该文件,但找不到丢失的文件vega20_ta.bin

系统规格:

  • 库本图 19.04
  • 内核 5.0.0-17-通用

firmware kernel initramfs cryptsetup amdgpu

6
推荐指数
1
解决办法
4842
查看次数

LUKS 和循环装置

我阅读了很多关于 LUKS/dm-crypt/cryptsetup 的教程,特别是关于如何创建加密文件容器的教程。

第一步是使用dd.

然后一些教程将文件映射到/dev/loop0循环设备并对其进行格式化,其他教程直接格式化文件而不将其映射到循环设备中。

我的问题:是否需要循环设备步骤?有什么不同?

encryption luks cryptsetup

5
推荐指数
2
解决办法
5799
查看次数

为什么Ubuntu的全盘加密不需要时间?

据我了解,Ubuntu 安装程序中“加密新的 Ubuntu 安装以确保安全”选项旨在提供全盘加密。

但是,使用该选项时,似乎加密会立即完成,实际上似乎根本不需要任何时间。

在 Windows 上使用 BitLocker 加密整个磁盘时,即使在 SSD 上也可能需要数小时才能完全加密磁盘。例如,使用 BitLocker 和其他加密工具(如 DiskCryptor 或 TrueCrypt),还有一个进度指示器,显示已加密的磁盘数量。

为什么Ubuntu 安装程序中“加密新的 Ubuntu 安装以确保安全”选项不是这种情况?

即使在我的 1 TB SSD 上,加密似乎也可以立即设置,并且没有任何进度指示器。

这怎么可能?

论坛上有人说:

http://ubuntuforums.org/showthread.php?t=2330425&p=13516293#post13516293

数据在写入之前不会被加密

但如果这是真的,那么安装程序中“加密新的 Ubuntu 安装以确保安全”选项根本就不是全盘加密。

如果他是正确的,那么它不会加密整个磁盘。它只加密使用的磁盘空间。然后不加密空白空间。

至少使用 BitLocker,您可以选择仅加密已用磁盘空间或加密整个磁盘,例如,请参见以下屏幕截图:

https://i-technet.sec.s-msft.com/en-us/windows/jj983729.bitlocker-screen(en-us,MSDN.10).jpg

在同一个论坛帖子中还提到:

如果您想在写入任何内容之前随机初始化存储区域,则需要一些时间。我似乎记得它是安装的可选复选框。

而且,确实,在具有“加密新的 Ubuntu 安装以确保安全性”选项的屏幕之后的下一个屏幕上有一个“为了更安全:覆盖空磁盘空间(安装可能需要更长的时间。)选项。

现在,问题是:如果选中该选项,它是否只是覆盖空磁盘空间?或者它也加密它?

我假设它在加密之前只用零覆盖它。我假设无论如何都会使用“加密新的 Ubuntu 安装以确保安全”选项加密整个磁盘,而不管“为了更高的安全性:覆盖空磁盘空间(安装可能需要更长的时间。)”选项。

问候

encryption ubiquity luks cryptsetup dmcrypt

5
推荐指数
1
解决办法
3732
查看次数

如何修复使用加密根磁盘无法启动 Ubuntu 设置的问题?

Ubuntu 不启动但打印奇怪的东西

  • /run/lvm/lvmetad.socket: connect failed: No such file or directory
  • 或者/sbin/cryptsetup not found

然后几分钟后回落到 busybox(有时..)。

转移到新硬盘后出现该错误,我必须删除加密分区。chroot进入根分区并运行后,弹出询问 Ubuntu 问题中udpate-initramfs -u提到的错误:

cryptsetup: WARNING: could not determine root device from /etc/fstab
Run Code Online (Sandbox Code Playgroud)

我遵循了本文中建议的设置:Full Disk Encryption with Ubuntu。现在我/在 LUKS 中有一个 btrfs 卷,并且有一个未加密的/boot分区。所有这些都在禁用安全启动的 EFI 上运行。

boot btrfs luks cryptsetup

5
推荐指数
2
解决办法
2万
查看次数

警告升级 Ubuntu 后 crypttab 中缺少选项“hash”

我将 Ubuntu 从 18.04 升级到 18.10。我启用了全盘加密。当我启动时,我在全盘加密的密码提示上方显示以下错误消息:

\n\n
cryptsetup: WARNING: Option \'hash\' missing in crypttab for plain dm-crypt mapping cryptcherries. Please read /usr/share/doc/cryptsetup/README.initramfs and add the correct \'hash\' option to your crypttab(5).\n\nPlease unlock disk cryptcherries\n
Run Code Online (Sandbox Code Playgroud)\n\n

输入正确的密码后,系统会告诉我它已正确设置,但随后我只看到黑屏和闪烁的光标

\n\n

使用实时 USB 记忆棒,我设法在我的机器中读取内容/etc/crypttab,内容如下所示:

\n\n
cryptcherries UUID=1ae5c201-etc-etc none luks,retry=1,lvm=vgcherries\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是/etc/fstab我机器上的样子:

\n\n
/dev/mapper/vgcherries-vgcherriesroot / ext4 errors=remount-ro 0 1\nUUID=03daa82f-etc-etc /boot ext3 defaults 0 2\n/dev/mapper/vgcherries-vgcherriesswap none swap sw 0 0\n
Run Code Online (Sandbox Code Playgroud)\n\n

我一直在阅读README.initramfs。(尽管错误消息说了什么,但我实际上在 找到了它/usr/share/doc/cryptesetup-initramfs/README.initramfs.gz。)我尝试修改cryptsetup以包括hash=sha1

\n\n

在Live …

lvm cryptsetup

5
推荐指数
1
解决办法
2432
查看次数

如何使用 dm-crypt 在加密的纠错 RAID 1 设备上安装 Ubuntu?

我想在具有dm-integrity和 LUKS2-encryption的两磁盘 RAID 1 上安装 Ubuntu 。

不幸的是,Ubiquity 和替代的 textmode-installer 都没有提供这样的解决方案。

虽然这看起来很容易手动完成,但我还无法安装系统。

两个驱动器的布局如下:

  1. /dev/sdX1 [ext2] 用作未加密 /boot
  2. /dev/sdX2[未格式化] 要在 LVM 中配置为加密/root&swap

我在实时系统上格式化了两个驱动器gparted,然后cryptsetup luksFormat --type luks2 --integrity hmac-sha256 /<device>/<partition>作为基础对其中一个驱动器执行,以便在稍后的手动安装程序中创建 RAID 设备、LVM 和文件系统。

但是,手动分区程序无法识别加密分区,我无法继续使用它们。

我怎样才能“打开”加密分区来为系统安装设置它们,而无需先重新格式化它们?

这种方法还有什么需要考虑的吗?Ubuntu 是否需要某些 LUKS 参数,或者是否建议为此目的使用某些东西?

我是否必须在安装后手动将设备添加到文件中才能在启动时正确解密?该--integrity选项是否自动使用?

这是最好的方法还是有另一种方法来实现这一目标?(不包括 Btrfs/ZFS 文件系统的使用)

encryption partitioning raid cryptsetup system-installation

5
推荐指数
1
解决办法
413
查看次数

加密交换分区未显示在 /dev/mapper 中

我按照以下步骤将/dev/sda4(UUID 5da9c956-e544-47e3-bb8e-fe18d9531b2f)上的正常交换转换为 16.04 上的加密交换分区:

但是,这最后一步给了我以下错误消息:

swapon: stat of /dev/mapper/cryptswap failed: No such file or directory …
Run Code Online (Sandbox Code Playgroud)

encryption swap cryptsetup

4
推荐指数
1
解决办法
1652
查看次数

升级到 20.04 后:luks 在启动时不会打开我的磁盘;cryptroot/crypttab 为空,cryptsetup 无法识别 crypttab 条目

升级到 20.04 后,我的加密磁盘在启动时没有被解密。我没有被要求输入任何密码,所以它显然找不到任何分区并引导到 initrd 提示符。

可能是什么原因:/cryptroot/crypttab在 initrd 映像中是完全空的。

我可以手动打开 luks 并 chroot 进入系统。这是我/etc/crypttab在真正根目录中的内容:

nvme0n1p3_crypt UUID=<some uuid> none luks

(UUID 都是正确的,无处不在)

当我运行时update-initramfs -c -k all,输出是:

cryptsetup: WARNING: target 'nvme0n1p3_crypt' not found in /etc/crypttab

这有点奇怪,因为它正是该文件中唯一单个条目的目标名称。它也被列为/dev/mapper链接../dm-0,似乎也是正确的。

我尝试将设备重命名为crypt仅使用,dmsetup rename ...但这当然没有帮助。

我认为这是我问题的根本原因。

luks initramfs cryptroot cryptsetup initrd

4
推荐指数
2
解决办法
3618
查看次数

我无法在 Kubuntu Wily 15.10 上取消屏蔽服务

我正在使用 Kubuntu Wily 15.10(完全升级)。它已经安装了该cryptsetup软件包。

我正在尝试启动 cryptdisks 服务,但我得到了这个:

$ sudo service cryptdisks start
Failed to start cryptdisks.service: Unit cryptdisks.service is masked.
Run Code Online (Sandbox Code Playgroud)

是的,它被掩盖了。

$ sudo systemctl list-unit-files | grep cryptdisks
cryptdisks-early.service                   masked  
cryptdisks.service                         masked  
Run Code Online (Sandbox Code Playgroud)

如果我尝试取消屏蔽该服务,则什么也不会发生。

$ sudo systemctl unmask cryptdisks-early.service 
$ sudo systemctl unmask cryptdisks.service 
$ sudo systemctl list-unit-files | grep cryptdisks
cryptdisks-early.service                   masked  
cryptdisks.service                         masked  
Run Code Online (Sandbox Code Playgroud)

请注意,systemctl unmask不会返回任何内容。我能做什么?

kubuntu services cryptsetup systemd

3
推荐指数
1
解决办法
7371
查看次数