2018年7月28日 星期六

使用 cryptsetup 將磁碟分區加密(encrypt)

Linux 核心內建 LUKS( Linux Unified Key Setup),搭配工具 cryptsetup 就可以將磁碟資料加密,確保個人隱私.為了要可以實際運作, 可以利用 gparted 將分區(partition)多餘的空間切割出另一個分區(例如我切割出 /dev/sda8),用工具 cryptsetup 命令選項 luksFormat 規劃並存放加密資料:
   sudo   cryptsetup   luksFormat   /dev/sda8

接著必須輸入大寫  YES ,緊跟著輸入兩次相同的片語,就會將分區資料全部洗掉作為加密碟.顯示該硬碟,輸入命令 luksDump,確認硬碟是否已經被加密:
   sudo  cryptsetup    luksDump   /dev/sda8

使用加密碟時,必須開啟(luksOpen)並賦予裝置一個名稱, 接著輸入正確的片語後,系統才會在目錄 /dev/mapper 產生一個對應裝置(device map)的符號鏈(像是 ../dm-X)
   sudo  cryptsetup     luksOpen    /dev/sda8    cryptDISK    &&    ls     /dev/mapper

一旦在 /dev/mapper 底下產生了對應裝置的符號鏈, 就可以像一般磁碟的使用方式(例如作成 EXT4 檔案系統,再把它掛進檔案系統來使用)
    sudo  cryptsetup     luksOpen    /dev/sda8    cryptDISK
    sudo  mkfs.ext4   /dev/mapper/cryptDISK
    sudo  mount   /dev/mapper/cryptDISK    /mnt

之後所有對  /mnt 的讀寫,都是先經過核心加/解密過程,使用者看不到該過程,最後磁碟不用時記得先卸載,再下一個關閉指令(luksClose),處理 cache 的資料避免遺失,讓資料保持隱密(encrypt)
    sudo  umount   /mnt
    sudo  cryptsetup     luksClose   cryptDISK

若沒了密碼, 便無法開啟 /dev/sda8, 整個分區都是一片亂數.對人是毫無意義可言,卻達成了個人隱私的目的.

沒有留言: