功能
- 可使用 passphrase (password) 或 key (金鑰) 方式加解密
- 可加密一般的 partition, LVM physical volumes, LVM logical volumes, software RAID 及 SWAP
- 透過Anaconda安裝時,只能選擇用 passphrase 加密方式
- 可設定多組key或密碼 (key slot)
手動建立加密磁區
- 需求套件 cryptsetup-luks, device-mapper, util-linux
- 利用 fidsk 或 parted 建立磁碟分割,以/dev/sdb1為例
- 清除磁碟上原有的資料(Option)
shell># dd if=/dev/urandom of=/dev/sdb1 - 初始化加密磁區並設定加密方式,此步驟可選擇使用 passphrase 或 key 加密
注意此步驟會將硬碟資料清除!
shell># cryptsetup luksFormat /dev/sdb1 - 確認是否成功
shell># cryptsetup isLuks /dev/sdb1 && echo Success - Dump加密格式資料
shell># cryptsetup luksDump /dev/sdb1 - 建立 mapped device,名稱建議使用 luks-UUID較具意義,該指令執行後會建立 /dev/mapper/luks-UUID 的裝置 (UUID請自行帶入磁碟的UUID)
shell># cryptsetup luksOpen /dev/sdb1 luks-`cryptsetup luksUUID /dev/sdb1` - 確認 mapped device資訊
shell># dmsetup info luks-UUID - 格式化磁區
shell># mkfs.ext3 /dev/mapper/luks-UUID - 掛載。因為前面有輸入過密碼,掛載的時候並不會再提示一次
shell># mount /dev/mapper/luks-UUID /mnt - 設定/etc/crypttab
這個檔案用在開機時建立mapped device及加密相關設定,可以透過此設定檔自動載入密碼,詳細設定資訊參閱 man crypttab,下面為該檔的格式:
device-mapping-namedevice password options device 建議使用UUID,格式為 UUID=12345-123456-123122345,也可以用 /dev/sdb1
所以在 /etc/crypttab 裡新增如下一行,none代表開機時要輸入密碼
luks-UUID UUID=UUID none - 設定開機掛載(此步驟看需求)
shell># vim /etc/fstab
新增
/dev/mapper/luks-UUID /mount-point ext3 defaults 1 2 - 重開機測試
建立金鑰檔
基本上這個金鑰檔你可以自己建立,利用編輯器撰寫密碼或用亂數產生,甚至你可以自己建立SSL憑證的private key來使用
例如:
用亂數建立金鑰
shell># dd if=/dev/urandom of=/root/keyfile bs=32 count=1
shell># chmod 600 /root/keyfile
將金鑰新增到 key slot,新增過程你必須輸入 key slot 0 的密碼
shell># cryptsetup luksAddKey /dev/sdb1 /root/keyfile
設定開機讀取金鑰,可避免掉開機手動輸入密碼的程序
shell># vim /etc/crypttab
luks-UUID UUID=UUID /root/keyfile
刪除 key slot
先Dump luks header 的資料以取得 key slot 號碼
shell># cryptsetup luksDump /dev/sdb1
確認要刪除的 key slot 號碼後執行下面的指令即可刪除
shell># cryptsetup luksKillSlot /dev/sdb1 2
沒有留言:
張貼留言