使用crypto可以對多數類unix系統中的塊裝置進行底層資料加密,即在檔案系統之下加密。對塊裝置加密完成後,再對該裝置進行檔案系統的格式化處理。對加密後的裝置進行使用,需通過打開裝置(這是需要輸入密碼)、挂載裝置兩步來實作。加密裝置的退卸,反之即可。
若需開機自動挂載(即在/etc/fstab裡指明),密碼讀取的方式可以通過兩種方法:手動輸入、使用/etc/crypttab指定裝置對應的密碼檔案。接下來首先看如何一步一步實作裝置加密。
一、 塊裝置加密
a) 建立新的塊裝置(磁盤、分區、塊裝置的檔案等);
# fdisk -cu /dev/sdb
n-p-1-+100M-w
# partprobe /dev/sdb
b) 使用cryptsetup luksFormat指令把塊裝置格式化為加密裝置,當需要輸入yes時記得是大寫;
cryptsetup luksFormat /dev/sdb1
YES \\确認加密
redhat \\輸入密碼
redhat \\重複密碼
c) 使用cryptsetup luksOpen打開裝置;
# cryptsetup luksOpen /dev/sdb1 newsdb1 \\與上述格式化輸入的密碼保持一緻
d) 格式化打開的裝置;
# ll /dev/mapper/
total 0
crw-rw----. 1 root root 10, 58 Sep 14 13:00 control
lrwxrwxrwx. 1 root root 7 Sep 14 13:11 newsdb1 -> ../dm-2
lrwxrwxrwx. 1 root root 7 Sep 14 13:00 VolGroup-lv_root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Sep 14 13:00 VolGroup-lv_swap -> ../dm-1
# mkfs.ext4 /dev/mapper/newsdb1
e) 修改/etc/fstab使其開機自動挂載;
# vim /etc/fstab
預設添加以下内容:
/dev/mapper/newsdb1 /home ext4 defaults 0 0
# vim /etc/crypttab
newsdb1 /dev/sdb1 none \\此時需要在開機過程中輸入密碼才可進入系統
f) 使用cryptsetup luksAddKey給加密裝置添加密碼檔案;
# touch sdb1passwd
# echo -n "redhat" >> sdb1passwd
# chmod 600 sdb1passwd
# cryptsetup luksAddKey /dev/sdb1 /root/sdb1passwd \\與上述格式化輸入的密碼保持一緻
g) 修改/etc/crypttab使其開機時使用密碼檔案,自動解密;
添加以下内容:
newsdb1 /dev/sdb1 /root/sdb1passwd
h) 開機測試(reboot)
# mount
/dev/mapper/newsdb1 on /home type ext4 (rw)
# cryptsetup status /dev/mapper/newsdb1
/dev/mapper/newsdb1 is active and is in use.
type: LUKS1
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/sdb1
offset: 4096 sectors
size: 220751 sectors
mode: read/write
I) 關閉加密盤
# umount /home/
# cryptsetup luksClose newsdb1 \\移除LUKS映射
Device newsdb1 is not active.
# cat /etc/crypttab \\清空檔案
# cat /etc/fstab \\删除挂載資訊
#/dev/mapper/newsdb1 /home ext4 defaults 0 0
# fdisk -cu /dev/sdb \\删除/dev/sdb1分區
結論:使用useradd建立的使用者是儲存在裝置/dev/mapper/newsdb1上。
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1852681,如需轉載請自行聯系原作者