LUKS(Linux Unified Key Setup)為Linux硬碟加密提供了一種标準,它不僅能通用于不同的Linux發行版本,還支援多使用者/密碼。因為它的加密密鑰獨立于密碼,是以如果密碼失密,我們可以迅速改變密碼而無需重新加密真個硬碟。通過提供一個标準的磁盤上的格式,它不僅友善之間分布的相容性,而且還提供了多個使用者密碼的安全管理。必須首先對加密的卷進行解密,才能挂載其中的檔案系統。LUKS是Linux下塊裝置加密的标準元件, 不同于檔案系統級别的eCryptfs等, LUKS更底層, 也更友善.
用LUKS建立加密分區很簡單, 隻需安裝cryptsetup, 然後執行下面的指令按提示設定密碼就可以了, 建議不加額外參數, 選用預設的加密算法, 效率不會差太多, 但是更安全.
工具:cryptsetup(預設已經安裝)
常用參數:luksFormat、luksOpen、luksClose、luksAddKey
使用cryptsetup對分區進行了加密後,這個分區就不再允許直接挂載。LUKS也是一種基于device mapper 機制的加密方案。如果要使用這個分區,必須對這個分區做一個映射,映射到/dev/mapper這個目錄裡去,我們隻能挂載這個映射才能使用。然而做映射的時候是需要輸入解密密碼的。
Crypsetup工具加密的特點:
① 加密後不能直接挂載
② 加密後硬碟丢失也不用擔心資料被盜
③ 加密後必須做映射才能挂載
步驟:
1. 建立分區并加密分區
2. 映射分區
3. 格式化分區并挂載使用
4. 關閉映射分區
建立一個磁盤分區/dev/sdb1,不進行格式化
1、 加密分區
# cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
Are you sure? (Type uppercase yes): YES --> 注意這裡必須是大寫的YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
#
2、 映射分區
# cryptsetup luksOpen /dev/sdb1 sx_disk //把sdb1映射為sx_disk
Enter passphrase for /dev/sdb1:
# ll -d /dev/mapper/sx_disk
lrwxrwxrwx. 1 root root 7 6月 25 03:24 /dev/mapper/sx_disk -> ../dm-0
# cryptsetup status /dev/mapper/sx_disk //檢視映射分區狀态
/dev/mapper//dev/mapper/sx_disk is active.
type: LUKS1
cipher: aes-cbc-plain
keysize: 256 bits
device: /dev/sdb1
offset: 4096 sectors
size: 16767701 sectors
mode: read/write
3、挂載使用
# mkdir /mnt/sx_disk
# mkfs.ext3 /dev/mapper/sx_disk
# mount /dev/sdb1 /mnt/sx_disk/ //直接挂載是不可以的
mount: unknown filesystem type 'crypto_LUKS'
# mount /dev/mapper/sx_disk /mnt/sx_disk/ //挂載映射裝置,挂載成功
4、關閉映射,先解除安裝後關閉
# umount /mnt/sx_disk/
# cryptsetup luksClose sx_disk //關閉映射
# ll /dev/mapper/ //映射裝置已經不見了
總用量 0
crw-rw----. 1 root root 10, 58 6月 25 03:01 control
5、設定開機自動挂載
生成密鑰檔案,如果想開機時手動輸入密碼可以不生成
# touch /root/cryptpasswd
# cryptsetup luksAddKey /dev/sdb1 /root/cryptpasswd
Enter any passphrase:
# cat /root/cryptpasswd //直接檢視密鑰為空
設定開機啟動
# vim /etc/crypttab
# cat /etc/crypttab
sx_disk /dev/sdb1 /root/cryptpasswd
//sx_disk為映射名稱,/dev/sdb1是加密裝置裝置,/root/cryptpasswd為密碼檔案,如果想開機手動輸入密碼,密碼檔案處空着即可
# vim /etc/fstab
# tail -1 /etc/fstab
/dev/mapper/sx_disk /mnt/sx_disk ext4 defaults 0 0