21.13.加密交换分区
与加密磁盘分区类似,加密交换空间用于保护敏感信息。考虑处理密码的应用程序,只要这些密码保留在物理内存中,就不会写入磁盘,并在重启后被清除。然而,如果 FreeBSD 开始将内存页面换出以释放空间,密码可能会以未加密的形式写入磁盘。加密交换空间可成为解决此问题的方案。
本节演示如何使用 gbde 或 geli 加密来配置加密交换分区。假设 /dev/ada0s1b 是交换分区。
21.13.1. 配置加密交换分区
交换分区默认不会加密,在继续之前,应清除其中的敏感数据。要用随机垃圾覆盖当前的交换分区,可执行以下命令:
# dd if=/dev/random of=/dev/ada0s1b bs=1m要使用 gbde(8) 加密交换分区,可为 /etc/fstab 中的交换行添加 .bde 后缀:
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1b.bde none swap sw 0 0如果要使用 geli(8) 加密交换分区,请使用一次性密钥初始化设备:
# geom eli onetime -d /dev/ada0s1b之后,在 /etc/fstab 中为该设备添加带有 .eli 后缀的行:
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1b.eli none swap sw 0 0默认情况下,geli(8) 使用 AES 算法,密钥长度为 128 位。通常默认设置即可满足需求。如果需要,可在 /etc/fstab 中的选项字段更改这些默认设置。可用的标志有:
aalgo:用于确保加密数据未被篡改的数据完整性验证算法。有关支持的算法列表,请参阅 geli(8)。
ealgo:用于保护数据的加密算法。有关支持的算法列表,请参阅 geli(8)。
keylen:用于加密算法的密钥长度。有关每种加密算法支持的密钥长度,请参阅 geli(8)。
sectorsize:数据加密前拆分的块大小。较大的扇区大小会提高性能,但会增加存储开销。推荐大小为 4096 字节。
以下示例配置了使用 AES-XTS 算法、128 位密钥长度和 4 千字节扇区大小的加密交换分区:
21.13.2. 验证加密交换分区
系统重启后,可使用 swapinfo 验证加密交换分区的正常运行。
如果使用的是 gbde(8):
如果使用的是 geli(8):
最后更新于