dm-crypts简介:
Device Mapper 不同于 AUFS、ext4、NFS 等,因为它并不是一个文件系统(File System),而是 Linux 内核映射块设备的一种技术框架。提供的一种从逻辑设备(虚拟设备)到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略。
dm-crypt即是Device Mapper层的嵌入式设施,用于对存储器块进行透明的区块加密。一个叫做LUKS(Linux Unified Key Setup)的实用程序可用于设置dm-crypt驱动器的加密。此外,LUKS还支持不同的加密算法,如AES-XTS、AES-CBC和Twofish-CBC等等,可以根据用户的需求进行选择。
- 创建(格式化) LUKS 加密盘
# cryptsetup -c aes-ecb luksFormat /dev/rbd0
WARNING! ======== This will overwrite data on /dev/rbd0 irrevocably.
Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/rbd0:Cstore@@1234 Verify passphrase:Cstore@@1234
|
参数名称 |
含义 |
推荐值 |
备注 |
||
--cipher |
加密方式 |
aes-xts-plain64 |
AES 加密算法搭配 XTS 模式 |
||
--key-size |
密钥长度 |
512 |
因为 XTS 模式需要两对密钥,每个的长度是256 |
||
--hash |
散列算法 |
sha512 |
N/A |
||
--iter-time |
迭代时间 |
最好大于10000 |
单位是毫秒。该值越大,暴力破解越难;但是你在打开加密盘时也要等待更久 |
- 打开加密盘
cryptsetup open --type luks /dev/rbd0 rbd_img0(该命令等同与cryptsetup luksOpen 物理设备或逻辑设备 映射名)
# cryptsetup open --type luks /dev/rbd0 rbd_img0(该命令等同与cryptsetup luksOpen 物理设备或逻辑设备 映射名) |
成功后看到/dev/rbd0映射到/dev/mapper/rbd_img0
[root@test-env-gz03-ceph-11e50e17e170 vdbench]# ls -alt /dev/mapper/ rbd_img0
lrwxrwxrwx 1 root root 7 Nov 26 09:28 /dev/mapper/rbd_img0 -> ../dm-0
- 对打开的加密盘进行xfs格式化,mount
# mkfs.xfs -f /dev/mapper/rbd_img0 meta-data=/dev/mapper/rbd_img0 isize=512 agcount=16, agsize=1638400 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=26213376, imaxpct=25 = sunit=1024 swidth=1024 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=12800, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # mount -o sync /dev/mapper/ rbd_img0 /mnt/rbd0 |
- 查看加密盘的状态
# cryptsetup status rbd_img0 /dev/mapper/ rbd_img0 is active. type: LUKS1 cipher: aes-xts-plain64 keysize: 512 bits key location: dm-crypt device: /dev/rbd0 sector size: 512 offset: 8192 sectors size: 209707008 sectors mode: read/write |
- 关闭加密盘
# cryptsetup close rbd_img0 # ls -alt /dev/mapper/ rbd_img0 ls: cannot access /dev/mapper/ rbd_img0: No such file or directory |
- 在另一台机器上打开并直接mount:
# rbd map rbd/rbd0 /dev/rbd0 # cryptsetup open --type luks /dev/rbd0 rbd_img0 Enter passphrase for /dev/rbd0:Cstore@@1234 # mount -o sync /dev/mapper/rbd_img0 /mnt/test
|