cjm*_*cjm 16 linux arch-linux encryption swap
2017 警告!接受的答案似乎有效,但使用最近的内核,我发现系统一开始交换就会挂起。如果您尝试使用加密的交换文件,请确保它实际交换正确。我花了很长时间才弄清楚为什么我的系统一直无缘无故地锁定。我已经回到使用加密交换分区,它确实工作正常。
如何在 Linux 中设置加密交换文件(不是分区)?甚至有可能吗?我找到的所有指南都讨论了加密交换分区,但我没有交换分区,我宁愿不必重新分区我的磁盘。
我不需要磁盘挂起支持,所以我想在每次启动时使用一个随机密钥。
我已经将TrueCrypt文件托管卷用于我的数据,但我不想将交换放在该卷中。如果有更好的解决方案,我不会将 TrueCrypt 用于交换文件。
如果重要的话,我正在使用带有默认内核的Arch Linux。
ott*_*t-- 15
实际上,该页面描述了设置分区,但它与交换文件类似:
dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile
Run Code Online (Sandbox Code Playgroud)
结果:
# swapon -s
Filename Type Size Used Priority
/dev/mapper/swap0 partition 4000176 0 -1
/dev/mapper/swap1 partition 2000084 0 -2
/dev/mapper/swapfile partition 65528 0 -3
Run Code Online (Sandbox Code Playgroud)
swap0 和 swap1 是真正的分区。
小智 6
此配置在启动时使用随机生成的密钥,并且不支持休眠到硬盘!您应该通过相应的 DE 电源管理实用程序禁用休眠,并将其设置为在严重时关闭以避免数据丢失!
确保运行sudo -s或su在运行以下之前。
禁用交换:
# swapoff -a
Run Code Online (Sandbox Code Playgroud)找到现有的交换分区
# lsblk
Run Code Online (Sandbox Code Playgroud)
你会得到这样的东西:
sda3 8:3 0 8G 0 part [SWAP]
Run Code Online (Sandbox Code Playgroud)覆盖旧交换
# dd if=/dev/zero bs=1024000 of=/dev/sda<#>
Run Code Online (Sandbox Code Playgroud)
例如:
# dd if=/dev/zero bs=1024000 of=/dev/sda3
Run Code Online (Sandbox Code Playgroud)fstab 设置
# vim /etc/fstab
Run Code Online (Sandbox Code Playgroud)
用 crypttab 映射器名称替换旧的 SWAP 设备: /dev/mapper/cswap
#<file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/cswap none swap pri=1,defaults 0 0
Run Code Online (Sandbox Code Playgroud)加密设置
# ls -lF /dev/disk/by-id
Run Code Online (Sandbox Code Playgroud)
例如:
ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
# vim /etc/crypttab
# <name> <device> <password> <options>
cswap /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256
Run Code Online (Sandbox Code Playgroud)主动加密交换
# reboot
Run Code Online (Sandbox Code Playgroud)验证加密交换操作
例如:
# dmsetup -C info
cswap 253 0 L--w 2 1 0 CRYPT-PLAIN-cswap
# lsblk
??sda3 8:3 0 8G 0 part
? ??cswap 253:0 0 8G 0 crypt [SWAP]
# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 8385532 0 -1
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
11986 次 |
| 最近记录: |