安装和设置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 root@192.0.2.1:/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

留下評論

在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 機器變磚。閱讀這篇文章以了解更多信息