安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

LUKS(Linux统一密钥设置)是与平台无关的Linux可用的各种磁盘加密格式之一。本教程将在加密的LUKS分区内包含的LVM(Linux卷管理器)卷内为您提供根分区和交换分区。本教程还允许您使用任何兼容的SSH客户端程序,使用简化的SSH服务器守护程序远程解锁LUKS分区。

先决条件

步骤1:环境设定

在“ 部署服务器”页面上,执行以下操作:

  • 在该Server Location部分中选择服务器位置。
  • CentOS7ISO LibraryServer Type部分的标签下选择。
  • 在该Server Size部分中选择所需的硬件规格。
  • 点击Deploy Now按钮。

使用该View Console选项通过noVNC控制台访问VPS实例。

步骤2:启动CentOS 7文本模式安装程序

选择Install CentOS Linux 7选项。

Tab键。

text之后输入vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20\86_64 quiet,使其看起来像这样vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20\86_64 quiet text,然后Enter按键。

VPS现在将启动到文本模式的CentOS安装程序。您将在noVNC控制台中看到一个屏幕,如下图所示。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

步骤3:在LUKS全盘加密上设置LVM

使用Alt + Right Arrow Key组合导航到TTY2控制台以在命令行上键入命令。

在下面键入以下命令,以创建一个包含GRUB2引导加载程序的/boot分区,一个未加密的分区以及一个将包含LUKS分区的主分区。

parted -a opt -s /dev/vda mklabel gpt
parted -s /dev/vda unit mb
parted -s /dev/vda mkpart primary 1 3
parted -s /dev/vda name 1 grub
parted -s /dev/vda set 1 bios_grub on
parted -s /dev/vda mkpart primary 3 259
parted -s /dev/vda name 2 boot
parted -s /dev/vda mkpart primary 259 100%
parted -s /dev/vda name 3 root

键入以下命令以显示分区布局。

parted -s /dev/vda print

接下来,rootfs用伪随机数据填充命名分区。这将需要半个多小时才能完成。

dd if=/dev/urandom of=/dev/vda3 bs=1M status=progress

在CentOS 7上,这些cryptsetup命令使用默认密码aes-xts-plain64,默认密钥大小256位和默认哈希值SHA1。相反,将使用更安全的Serpent密码,密钥大小为512位和Whirlpool哈希创建LUKS分区。

cryptsetup luksFormat /dev/vda3 -c serpent-xts-plain64 -h whirlpool -s 512

当出现以下查询提示时,输入答案,然后Enter按键:

  • 你确定吗?(输入大写的是):YES
  • 输入密码: strong-password
  • 验证密码: strong-password

可选:备份LUKS分区头

警告 这将允许root登录和复制而没有密码提示。检索/tmp/luks-header-backup.img文件后,终止该SSH服务器。

为了安全起见,请保存LUKS分区标头的副本。这样可以确保如果LUKS分区的标头因某种原因被损坏,则可以将其还原。如果在没有有效备份的情况下损坏了标题,则数据将永远丢失。

cryptsetup luksHeaderBackup /dev/vda3 --header-backup-file /tmp/luks-header-backup.img

要从/tmp/luks-header-backup.img服务器复制文件,必须使用scp客户端主机上的安全复制可执行文件临时启动SSH服务器以进行检索。

在下面键入以下命令以生成SSH主机密钥。

sshd-keygen

在下面键入以下命令来创建/etc/ssh/sshd_config文件。

cp /etc/ssh/sshd_config.anaconda /etc/ssh/sshd_config

在下面键入以下命令以编辑/etc/ssh/sshd_config文件。

vi /etc/ssh/sshd_config

要编辑文件,请Insert按键,然后使用箭头键导航到文件中需要编辑的部分。

在第一行中,将的值Port 22从默认值更改22为您在1025和之间选择的随机数65535。(例如:port 25782

向下滚动至第13行,End按键,然后Enter按键。

在下一行中,添加HostKey /etc/ssh/ssh_host_ed25519_keyEnter按键。

在下一行中,添加HostKey /etc/ssh/ssh_host_rsa_keyEnter按键。

Esc键,类型:wq和按Enter键保存文件。

默认网络接口eth0需要一个IP地址。在下面键入以下命令,将为您的实例列出的IP地址分配给eth0网络接口。

dhclient

键入以下命令以显示分配的IP地址。IP地址将立即之后上市inet之前netmask。(示例:inet 192.0.2.1网络掩码)

ifconfig eth0

键入以下命令以启动SSH服务器。

/usr/sbin/sshd

如果scp从客户端计算机上的命令行使用命令,请使用以下命令作为模板来检索/tmp/luks-header-backup.img文件。替换25782为中分配的实际端口号/etc/ssh/sshd_config。替换192.0.2.1为实际分配的IP地址。

scp -P 25782 [email protected]:/tmp/luks-header-backup.img .

检索luks-header-backup.img文件后,通过在noVNC控制台窗口中键入以下命令,立即终止SSH服务器。

killall sshd

打开LUKS分区以设置将驻留在其中的LVM物理卷。

cryptsetup luksOpen /dev/vda3 centos

在提示时输入先前创建的密码,以打开LUKS分区,然后Enter按键。

输入密码/dev/vda3strong-password

在下面键入以下命令:

ls /dev/mapper

它将包含一个名为下列文件centoscontrollive-baselive-rw。这centos是LUKS分区。

在下面键入以下命令以创建LVM物理卷。

pvcreate /dev/mapper/centos

成功后,您将收到以下消息:

Physical volume "/dev/mapper/centos" successfully created

在下面键入以下命令以创建LVM卷组。

vgcreate ssd /dev/mapper/centos

成功后,您将收到以下消息:

Volume group "ssd" successfully created

在下面键入以下命令来为交换分区创建LVM逻辑卷。根据VPS实例,使用合理的判断来创建必要大小(-L =卷的大小)的交换分区。

lvcreate -L 1G -n swap ssd

成功后,您将收到以下消息:

Logical volume "swap" created

在下面键入以下命令,为根分区创建LVM逻辑卷。如果您选择这样做,它将使用剩余的可用空间,同时保留5%(5%)的空间以包含逻辑卷的LVM快照。

lvcreate -l 95%FREE -n root ssd

成功后,您将收到以下消息:

Logical volume "root" created

显示LVM物理卷。

pvdisplay

您将在noVNC控制台中看到类似于下图所示的文本。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

显示LVM卷组。

vgdisplay

您将在noVNC控制台中看到类似于下图所示的文本。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

显示LVM逻辑卷。

lvdisplay

您将在noVNC控制台中看到类似于下图所示的文本。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

在下面键入以下命令以停用LVM卷组。必须完成此操作才能允许cryptsetup在下一步中关闭LUKS分区。

vgchange -a n

成功后,您将收到以下消息:

0 logical volume(s) in volume group "ssd" now active

关闭LUKS卷。

cryptsetup luksClose centos

在下面键入以下命令:

ls /dev/mapper

它将包含一个名为下列文件controllive-baselive-rwcentos包含LUKS分区的文件将丢失以确保已正确关闭。

输入rebootEnter按键重新启动。

步骤4:启动CentOS 7 GUI模式安装程序

选择Install CentOS Linux 7选项,然后Enter按键。

VPS现在将引导进入GUI模式的CentOS安装程序。您将在noVNC控制台中看到一个屏幕,如下图所示。选择Install CentOS 7(1),然后Enter按键。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

WELCOME TO CENTOS 7屏幕上,单击蓝色Continue按钮(1)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

注意如果您没有使用默认的英语和美国的语言环境,请在搜索栏中输入您的语言(1)。单击语言(2)和与其相关的适当的语言环境(3)。满意后,单击蓝色Continue按钮(4)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

INSTALLATION SUMMARY屏幕上,单击INSTALLATION DESTINATION (Automatic partitioning selected)(1)SYSTEM

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

INSTALLATION DESTINATION屏幕上,选择下面的I will configure partitioning(1)选项,Other Storage Options (Partitioning)然后单击Done屏幕左上方的蓝色按钮(2)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

MANUAL PARTITIONING屏幕上,单击Unknown可展开的手风琴(1)。它会显示一个名为三个分区BIOS Boot (vda1)Unknown (vda2)Encrypted (LUKS) (vda3)

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

BIOS Boot分区突出显示为蓝色(1)的情况下,选中手风琴Reformat旁边的(2)复选框选项,File System:然后单击Update Settings按钮(3)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击Unknown分区(1),使其以蓝色突出显示。选择手风琴Reformat旁边的(2)复选框选项File System:。选择ext2File System:手风琴(3),进入/boot下在文本字段中(4) Mount Point:,进入boot下在文本字段中(5) Label:,然后点击Update Settings按钮(6)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击Encrypted (LUKS)分区(1),使其以蓝色突出显示。Step 3: Setup LVM On LUKS Full Disk EncryptionPassphrase:文本字段(2)中输入为LUKS分区创建的密码,然后单击Unlock按钮(3)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

Unknown将会出现一个新的可扩展手风琴(1)。它将显示名为Unknown (ssd-root)和的两个分区Unknown (ssd-swap)

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

Unknown (ssd-root)分区(1)以蓝色突出显示,选择复选框选项Reformat(2)旁边的File System:手风琴。选择xfsFile System:手风琴(3),进入/下在文本字段中(4) Mount Point:,进入root下在文本字段中(5) Label:,然后点击Update Settings按钮(6)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击Unknown (ssd-swap)(1)分区,使其以蓝色突出显示。选择手风琴Reformat旁边的(2)复选框选项File System:。选择swapFile System:手风琴(3),输入swap在文本字段(4)下Label:,然后单击Update Settings按钮(5)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击Done屏幕左上方的蓝色按钮(1)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

SUMMARY OF CHANGES将弹出一个名为的框。单击Accept Changes按钮(1)。这将带您回到WELCOME TO CENTOS 7屏幕。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击NETWORK & HOST NAME (Not connected)下的(1)SYSTEM

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

NETWORK & HOST NAME屏幕上,将滑块(1)(位于Ethernet(eth0)字段右侧)从该OFF位置移到该ON位置。如果要在Host name:文本框(2)中使用自定义主机名而不是默认主机名(192.0.2.1.vultr.com ),请进行更改。单击Done屏幕左上方的蓝色按钮(3)。这将带您回到WELCOME TO CENTOS 7屏幕。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

当您对WELCOME TO CENTOS 7屏幕上的选项感到满意时,请单击蓝色Begin Installation按钮(1)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

CONFIGURATION屏幕上,单击ROOT PASSWORD (Root password is not set)(1)USER SETTINGS

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

ROOT PASSWORD屏幕上,在Root Password:(1)和Confirm:(2)文本字段中输入一个强密码。单击Done屏幕左上方的蓝色按钮(3)。这将带您回到CONFIGURATION屏幕。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

CONFIGURATION屏幕上,单击USER CREATION (No user will be created)(1)USER SETTINGS

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

CREATE USER屏幕上,在Full name文本字段(1)中输入您的全名,在文本字段(2)中输入用户名,User namePassword(3)和Confirm password(4)文本字段中均输入强密码。单击Advanced...按钮(5)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

ADVANCED USER CONFIGURATION将弹出一个名为的框。在Add user to the following groups:下方的文本字段(1)中Group Membership,输入wheel并单击Save Changes按钮(2)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

单击Done屏幕左上方的蓝色按钮(1)。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

现在将开始安装后过程。这将需要几分钟才能完成。完成后,单击蓝色Reboot按钮(1)重新启动VPS实例。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

浏览回到VULTR服务器管理屏幕。单击Settings顶部的链接。点击Custom ISO左侧菜单。在Custom ISO页面上,单击Remove ISO按钮以卸载ISO并重新启动到CentOS 7 VPS实例。OK在出现提示时单击按钮,VPS实例将重新启动。

浏览回到View Console窗口,以通过noVNC控制台访问VPS实例。如果noVNC已断开连接,请刷新窗口。

系统将提示您输入Please enter passphrase for disk primary (luks-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)!:在中为LUKS分区创建的密码(示例:)Step 3: Setup LVM On LUKS Full Disk Encryption。输入密码,然后Enter按键。

安装和设置CentOS 7以使用SSH远程解锁LUKS磁盘加密上的LVM

然后,将向您显示控制台登录提示。现在,您可以关闭noVNC控制台窗口。

步骤5:更新系统

以普通用户通过SSH登录并按如下所示更新系统。

sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y

步骤6:安装Dracut-Crypt-SSH

在仍以普通用户身份登录的同时,在下面输入以下命令进行安装dracut-crypt-ssh

sudo yum install wget -y
sudo wget -O /etc/yum.repos.d/rbu-dracut-crypt-ssh-epel-7.repo https://copr.fedorainfracloud.org/coprs/rbu/dracut-crypt-ssh/repo/epel-7/rbu-dracut-crypt-ssh-epel-7.repo
sudo yum install dracut-crypt-ssh -y

在下面键入以下命令以安装nano编辑器,以简化文件编辑。

sudo yum install nano -y

您将需要编辑位于中的默认grub文件/etc/default/grub

sudo nano /etc/default/grub

rd.neednet=1 ip=dhcpGRUB_CMDLINE_LINUX="crashkernel=auto和之间插入rd.luks.uuid=luks-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

通过输入以下键盘组合来保存文件。按Ctrl+ x键,y按键,然后Enter按键。

通过键入以下命令来重新生成GRUB配置文件。

sudo grub2-mkconfig -o /etc/grub2.cfg 

/etc/dracut.conf.d/crypt-ssh.conf通过在下面键入以下命令来备份原件。

sudo mv /etc/dracut.conf.d/crypt-ssh.conf /etc/dracut.conf.d/crypt-ssh.conf.orig

/etc/dracut.conf.d/crypt-ssh.conf通过在下面键入以下命令来创建一个新文件。

sudo nano /etc/dracut.conf.d/crypt-ssh.conf

将以下文本复制并粘贴到nano编辑器中。

dropbear_acl="/etc/dropbear/keys/authorized_keys"
dropbear_ecdsa_key="/etc/dropbear/keys/ssh_ecdsa_key"
dropbear_rsa_key="/etc/dropbear/keys/ssh_rsa_key"

创建目录keys/etc/dropbear/,有必要目录的权限,也将举行authorized_keysssh_ecdsa_keyssh_rsa_key文件。

sudo mkdir /etc/dropbear/keys/; sudo chmod /etc/dropbear/keys/

通过在下面键入以下命令,使用该程序生成ssh_ecdsa_keyssh_rsa_key文件ssh_keygenEnter提示输入密码短语时,对于每个命令按两次该键。

sudo ssh-keygen -t ecdsa -f /etc/dropbear/keys/ssh_ecdsa_key
sudo ssh-keygen -t rsa -f /etc/dropbear/keys/ssh_rsa_key

更改对ssh_ecdsa_key,的文件权限ssh_ecdsa_key.pubssh_rsa_keyssh_rsa_key.pub通过键入以下命令。

sudo chmod 400 /etc/dropbear/keys/*_key; sudo chmod 444 /etc/dropbear/keys/*.pub

使用How Do I Generate SSH Keys?教程Prerequisites为您的潜在客户操作系统在教程的开头找到该教程,以生成公共密钥。

/etc/dropbear/keys/authorized_keys使用该nano程序,通过键入以下命令,将公共密钥中的所有文本复制并粘贴到文件中。

sudo nano /etc/dropbear/keys/authorized_keys

您必须首先构建initramfs以及dracut-crypt-ssh配置的任何后续更新。在initramfs的初始版本中,键入以下命令。

sudo dracut -f

完成后,您的CentOS 7安装将设置为侦听SSH客户端连接,并允许您使用密码来解锁LUKS分区。您现在可以通过键入以下命令来重新启动CentOS 7实例。

sudo reboot

在您的客户端系统上,请参阅Dracut-Crypt-SSH GitHub页面的各个部分3.3. Unlocking the volumes interactively3.4. Unlocking using the解锁command,以强制输入密码提示或使用命令从SSH客户端打开LUKS分区。unlock



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息