使用网络绑定磁盘加密(NBDE)无需手动输入密码即可打开加密磁盘。从安全的角度来看,加密敏感数据以保护其免受窥探和黑客攻击非常重要。LinuxUnifiedKeySetupLinuxUnifiedKeySetup(LUKS)是一个很棒的工具,也是Linux磁盘加密的通用标准。因为它将所有相关的设置信息存储在分区头中,所以它使数据迁移变得容易。要使用LUKS配置加密磁盘或分区,您需要使用cryptsetup工具。不幸的是,加密磁盘的一个缺点是您必须在每次系统重新启动或磁盘重新安装时手动提供密码。但是,网络绑定磁盘加密(NBDE)可以自动安全地解锁加密磁盘,无需任何用户干预。它在某些Linux发行版中可用,从RedHatEnterpriseLinux7.4、CentOS7.4和Fedora24开始,以及之后的后续版本。NBDE使用以下技术实现:ClevisFramework:一种可插入的框架工具,可自动解密和解锁LUKS卷TangServer:用于将加密密钥绑定到网络状态的服务Tang为Clevis客户端提供加密密钥。据Tang的开发人员称,这为密钥托管服务提供了一种安全、无状态、匿名的替代方案。由于NBDE使用客户端-服务器架构,您必须同时配置客户端和服务器。您可以将虚拟机用作本地网络上的Tang服务器。服务器安装用sudo安装Tang:sudoyuminstalltang-y启用Tang服务器:sudosystemctlenabletangd.socket--nowTang服务器工作在80端口,需要加入firewalld防火墙。添加相应的firewalld规则:sudofirewall-cmd--add-port=tcp/80--permsudofirewall-cmd--reload服务器现已安装。客户端安装在此示例中,假设您已将名为/dev/vdc的新1GB磁盘添加到您的系统。使用fdisk或parted创建主分区:sudofdisk/dev/vdc完成以下步骤以安装客户端:欢迎使用fdisk(util-linux2.23.2)。更改将仅保留在内存中,直到您决定写入它们。在使用写入命令之前要小心。设备不包含可识别的分区表正在构建一个新的DOS磁盘标签,磁盘标识符为0x4a6812d4。命令(m寻求帮助):输入n以创建新分区:分区类型:pprimary(0primary,0extended,4free)eextendedSelect(defaultp):按回车键选择主分区:UsingdefaultresponsepPartitionnumber(1-4,default1):按回车键选择默认分区号:Firstsector(2048-2097151,default2048):Usingdefaultvalue2048Lastsector,+sectorsor+size{K,M,G}(2048-2097151,default2097151):PressEnter选择最后一个扇区:Usingdefaultvalue2097151Partition1of键入Linux,大小为1023MiB的是setCommand(m求助):wq输入wq保存changes并退出fdisk:分区表已被更改!调用ioctl()重新读取分区表。正在同步磁盘。运行partprobe以通知系统分区表变体:sudopartprobeinstallcryptsetuppackageusingsudo:sudoyuminstallcryptsetup-yUsecryptsetupluksFormatcommandtoencryptthedisk出现提示时,需要输入大写的YES,并输入加密磁盘的密码:sudocryptsetupluksFormat/dev/vdc1WARNING!========这会覆盖/dev/vdc1上的数据不可撤销。你确定吗?(Typeuppercaseyes):Enterpassphrasefor/dev/vdc1:Verifypassphrase:UsethecryptsetupluksOpencommandtomaptheencryptedpartitiontoalogicaldevice.例如,使用encryptedvdc1作为名称。您还需要再次输入密码:sudocryptsetupluksOpen/dev/vdc1encryptedvdc1Enterpassphrasefor/dev/vdc1:加密分区现在在/dev/mapper/encryptedvdc1中可用。在加密分区上创建XFS文件系统:sudomkfs.xfs/dev/mapper/encryptedvdc1创建挂载加密分区的目录:sudomkdir/encrypted使用cryptsetupluksClose命令锁定分区:cryptsetupluksCloseencryptedvdc1使用sudo安装Clevis包:sudoyuminstallclevisclevis-luksclevis-dracut-y修改/etc/crypttab,启动时打开加密卷:sudovim/etc/crypttab添加以下行:encryptedvdc1/dev/vdc1none_netdevmodify/etc/fstab,在Automaticallymountencryptedvolumesonrebootorstartup:sudovim/etc/fstab添加下面一行:/dev/mapper/encryptedvdc1/encryptedxfs_netdev12本例假设Tang服务器的IP地址为192.168.1.20。如果您愿意,也可以使用主机名或域名。运行以下clevis命令:sudoclevisbindluks-d/dev/vdc1tang'{"url":"http://192.168.1.20"}'该广告包含以下签名密钥:rwA2BAITfYLuyNiIeYUMBzkhk7M您是否希望信任这些密钥?[ynYN]YEnterexistingLUKSpassword:输入Y接受Tang服务器的密钥并提供现有的LUKS密码进行初始设置。通过systemctl启用clevis-luks-askpass.path以防止提示非根分区输入密码。sudosystemctlenableclevis-luks-askpass.path客户端已安装。现在,每当您重新启动服务器时,加密磁盘应该会自动解密,并通过Tang服务器检索密钥进行挂载。如果Tang服务器因任何原因不可用,您将需要手动提供密码以解密和挂载分区。
