如何用dm-crypt加密Linux上的分區?
硬碟和SSD很容易從筆記本或台式機上拆下來。這種情況下,操作系統實施的所有安全措施都蕩然無存。如果你有數據要保護,可以創建加密容器,將敏感文件保存在那裡,而將非敏感文件保存在普通分區上。
安裝Linux發行版時,創建加密分區極為容易。安裝程序可以指導你完成此操作。但如果你錯過了這個機會,可按照本文中的步驟創建秘密保險庫。
先決條件
需要一個空白分區完成此過程,也就是上面沒有文件系統的未格式化分區。
如果格式化的分區目前佔據你存儲設備上的所有可用空間,需要使用GParted縮小其中一個分區。
警告:先備份數據是明智之舉。縮小分區及文件系統時,可能存在小小的風險。計算機在此過程中可能崩潰或斷電。這可能導致文件系統處於不一致的狀態,因而很難恢復。
遵照本文的頭幾步用GParted調整分區大小。或者如果有個分區再也用不著,可以刪除它。(釋放一些空間、它顯示為「未分配」後,跳過本文中的其餘步驟。)具體來說,別創建格式為ext4的分區,而是滑鼠右擊未分配的空間,如圖所示。在打開的對話窗口中,你會看到標有「文件系統」的欄位。通常,ext4在這裡被選擇為默認文件系統。點擊並更改成「cleared」。
圖1
選擇「Add」後,點擊綠色打勾符號,讓更改生效。
安裝cryptsetup
如果你啟動實時操作系統以便用GParted編輯分區,請重啟回到主Linux發行版。
打開終端模擬器。在基於Debian的系統上,比如Ubuntu或Linux Mint,輸入該命令:
sudo apt update && sudo apt install cryptsetup
圖2
在Fedora或CentOS等發行版和使用RPM軟體包而不是DEB的其他發行版上, cryptsetup可能早已安裝。如果還沒有安裝,可以使用該命令來安裝:
sudo yum install cryptsetup
在OpenSUSE上,如果cryptsetup之前沒有安裝,可以使用該命令來安裝:
sudo zypper refresh && sudo zypper install cryptsetup
在基於Arch的發行版上,可以使用該命令:
sudo pacman -S cryptsetup
查找分區的塊設備名稱
輸入下列命令:
lsblk
圖3
在圖中提供的示例中,存儲設備是「vda」。「vda1」到「vda3」是分區。
想找到你準備好的分區,記住為其保留的大小。你會在沒有掛載點(mountpoint)的分區中找到它。以你的情況為例,它可能是「/dev/sda2」,而不是「/dev/vda3」。
加密分區將覆蓋上面的數據(如果有的話),這意味著如果你搞錯了設備名稱,最終可能破壞有用的數據。想確保設備名稱無誤,可以安裝GParted,查看分區布局。設備名稱會在圖形用戶界面中列出來。從實時系統啟動時,別使用你在GParted中看到的名稱。實時系統中顯示的布局與你從安裝的發行版引導時看到的布局會不一樣。
還有另一種方法可以確保你不會寫錯到塊設備上。試著掛載塊設備。通常,它會拒絕掛載,因為它上面沒有文件系統。
重要提示:請記住始終將「vda3」換成你設備的名稱:
sudo mount /dev/vda3 /mnt
以你的情況為例,該命令可能是sudo mount /dev/sda2 /mnt或別的命令。
這是你應該看到的信息。
圖4
設置LUKS標頭
一旦你確信有了正確的設備名稱,可以為分區添加LUKS標頭。
sudo cryptsetup luksFormat /dev/vda3
鍵入「YES」,然後為加密分區選擇一個強密碼。要求驗證密碼時,請鍵入相同的密碼。
在分區上創建文件系統
你要將該物理設備映射到虛擬設備。寫入到虛擬設備上的內容先經過加密,之後存儲到物理設備上。
sudo cryptsetup luksOpen /dev/vda3 encrypted-partition
分區需要文件系統才有用。使用該命令創建一個ext4文件系統:
sudo mkfs.ext4 /dev/mapper/encrypted-partition
圖5
掛載加密分區
創建你將從分區掛載文件系統的目錄。
mkdir ~/encrypted-storage
掛載文件系統:
sudo mount /dev/mapper/encrypted-partition ~/encrypted-storage
更改到該目錄:
cd ~/encrypted-storage
眼下,只有root用戶可以在這裡寫入。為你的用戶授予寫入到該文件系統的許可權,因此讓它成為上層目錄的所有者。拷貝粘貼整個命令,包括末尾的「.」。
sudo chown $USER:$USER .
限制其他用戶讀取或寫到該目錄。
chmod o= .
這時,大多數文件管理器應該在界面中顯示新的加密設備。這顯示了它在Thunar文件管理器中的樣子,這是XFCE桌面環境中使用的默認文件管理器。
圖6
如果卷未掛載,你點擊它時會要求你輸入卷密碼和sudo密碼。卷會自動掛載,你就能夠瀏覽它。掛載點與「~/encrypted-storage」會不一樣,它可能類似「/media/user/f42f3025-755d-4a71-95e0-37eaeb761730/」。
這不重要;你之前設置的許可權仍然適用。重要的是記住完成卷的使用後滑鼠右擊並卸載。卸載和關閉虛擬設備可確保沒人可以從加密分區讀取數據,甚至從操作系統讀取數據。
如果由於某種原因,你的文件管理器不支持該功能,可以從終端掛載。
sudo cryptsetup luksOpen /dev/vda3 encrypted-partition
sudo mount /dev/mapper/encrypted-partition ~/encrypted-storage
現在你可以進入到文件管理器中的「/home/username/encrypted-storage」來訪問該卷。訪問完後,掛載文件系統並關閉虛擬設備:
cd && sudo umount /dev/mapper/encrypted-partition
sudo cryptsetup luksClose /dev/mapper/encrypted-partition
結論
現在你有了保存重要文件的保險箱。你大可放心,因為沒人能看到你保存在裡面的內容。
※flash與資料庫 讀取資料庫數據
※linux內核設計與實現筆記
TAG:程序員小新人學習 |