使用 LUKS 加密你的磁碟
來自專欄 Linux
數據的安全,保密性在現在的生活中顯得越來越重要。隨著數字化的時代的來臨,越來越多的數據被數字化,特別是更多有關於我們隱私的數據在不斷生成,甚至還有我們需要離線保存的密鑰等。而且通常我們使用磁碟,USB 快閃記憶體,SD 卡等存儲介質進行存儲,即便我們已經離線存儲,仍然不能保證該存儲介質不會丟失,如果丟失那麼對於我們來說有可能是災難性的事件。因此對這些離線存儲的重要數據,再次進行進行加密是非常有必要的,本文將告訴你如何加密你的移動存儲介質。
在此之前先介紹一下 LUKS:
LUKS (Linux Unified Key Setup)是 Linux 硬碟加密的標準。 通過提供標準的磁碟格式,它不僅可以促進發行版之間的兼容性,還可以提供對多個用戶密碼的安全管理。 與現有解決方案相比,LUKS 將所有必要的設置信息存儲在分區信息首部中,使用戶能夠無縫傳輸或遷移其數據。
1. 環境
- OS: Gentoo
- 內核:4.9.95
- 工具:cryptsetup
2. 內核配置(可選)
通常來說,大部分發行版的內核都已經配置了相關的加密部分,因此非 gentoo 用戶可以跳過此部分。
配置 device mapper 和 crypt target:
[*] Enable loadable module supportDevice Drivers ---> [*] Multiple devices driver support (RAID and LVM) ---> <*> Device mapper support <*> Crypt target support
配置加密 API:
[*] Cryptographic API ---> <*> XTS support <*> SHA224 and SHA256 digest algorithm <*> AES cipher algorithms <*> AES cipher algorithms (x86_64) <*> User-space interface for hash algorithms <*> User-space interface for symmetric key cipher algorithms
編譯新內核並配置應用,然後重啟:
# make -j9 && make modules_install && make install
3. 安裝軟體
通常的發行版已經預裝了該軟體包,可以直接使用,下面是 Gentoo 的安裝方法
# emerge --ask sys-fs/cryptsetup
4. 創建加密分區
注意,該操作會清空你選擇分區或設備上的所有數據,請謹慎操作,輸入大寫的 YES
確認
# cryptsetup -s 512 luksFormat /dev/sddWARNING!========This will overwrite data on /dev/sdd irrevocably.Are you sure? (Type uppercase yes): YESEnter passphrase: Verify passphrase:
5. 利用密鑰文件加密分區
除了密碼之外,還可以選擇使用密鑰文件解密你的硬碟,也就是相當於一個密鑰,當然可以也可以只使用密鑰文件或者同時使用密碼與密鑰文件。
5.1 生成隨機密鑰文件
# dd if=/dev/urandom of=/root/enc.key bs=1 count=4096
5.2 添加密鑰文件作為密碼之一
# cryptsetup luksAddKey /dev/sdd /root/enc.keyEnter any existing passphrase:
6 移除解密密碼
移除普通密碼:
# cryptsetup luksRemoveKey /dev/sddEnter LUKS passphrase to be deleted: ...
移除 key file 密碼:
# cryptsetup luksRemoveKey -d /root/enc.key /dev/sdd
注意:千萬不要將所有密碼移除,至少需要留有一個密碼訪問設備,移除操作不可撤銷
7. 解密與掛載
7.1 密碼解密
# cryptsetup luksOpen /dev/sdd myusbEnter passphrase for /dev/sdd:
7.2 key file 解密
# cryptsetup luksOpen -d /root/enc.key /dev/sdd myusb
7.3 創建文件系統
在掛載使用之前,我們仍然需要對設備創建文件系統才可以使用,可以選擇任何你喜歡的文件系統,例如 btrfs
,ext4
,vfat
,ntfs
等
# mkfs.ext4 /dev/mapper/myusbmke2fs 1.43.6 (29-Aug-2017)Creating filesystem with 488448 4k blocks and 122160 inodesFilesystem UUID: 995e172a-2bc6-432c-a60f-2d4d7093e748Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: doneWriting inode tables: doneCreating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done
7.4 掛載
現在可以像正常分區一樣掛載我們的加密分區設備了
# mount /dev/mapper/myusb /mnt/# df -h/dev/mapper/myusb 1.9G 5.7M 1.7G 1% /mnt
7.5 卸載掛載點並關閉加密分區
# umount /mnt# cryptsetup luksClose myusb
8. 總結
在完成整個步驟以後,您現在需要做的就是妥善保管您的加密存儲,可採用同樣的方式加密多個設備進行備份,因為誰也不能保證這移動設備會不會在什麼時候丟掉。
推薦閱讀:
※《自然》封面介紹中國學者全球首創的超鈉鎂合金;鞋帶為何老散開? | 每周科技播報
※他吃了8年牢飯,靠賣塑料袋發家,如今是馬雲和雷軍背後的男人
※有沒有好用的電腦桌面便簽軟體?
※日本的機器人水平是世界一流,為什麼在機器學習相關領域遠不如國內呢?
※華為的麒麟 950 真的有這麼厲害嗎?