linux硬碟加密
硬碟加密方案一
通過分割槽加密啟用資料保密
LUKS ( Linux 統一金鑰設定)是標準的裝置加密格式。 LUKS 可以對分割槽或捲進行加密。必須首先對加密的捲進行解密,才能掛載其中的檔案系統。
首先你想加密分割槽,你應該分出一個分割槽吧,
建立分割槽
fdisk -cu /dev/sdb
輸入大寫的YES
進入之後按 n 鍵建立一個新分割槽。按w 儲存推出後,記得用partx -a /dev/sdb 載入新新增的模組,或者重啟也可以。
分割槽加密
cryptsetup luksFormat /dev/sdb1(假設你新建立的分割槽為/dev/sdb1)
這條命令的作用是對新分割槽進行加密,並設定解密密碼
cryptsetup luksOpen /dev/sdb1 wcl
您輸入此條命令之後,系統會提示你輸入你剛設定的密碼,輸入正確的解密密碼之後,cryptsetup luksOpen /dev/sdb1 wcl 會將加密的卷 /dev/sdb1 解鎖為 /dev/mapper/wcl
(這裡的/dev/sdb1 和 crypttest都是不確定的哦,這裡只是方便理解)
格式化分割槽
mkfs.ext4 /dev/mapper/wcl
格式化加密分割槽,注意此處的加密是在格式化之前進行的加密,屬於底層加密,安全性更好,而且此處寫的時候不要寫/dev/sdb1 應該寫成 /dev/mapper/wcl
建立掛載點,掛載檔案系統
mkdir /data
mount /dev/mapper/wcl /data
注意
完成之後不使用改分割槽的時候注意解除安裝和關閉哦!
umount /data
cryptsetup luksClose wcl(鎖定加密的卷)
開機自動掛載加密分割槽
假設你是新建立的分割槽沒有進行過其他操作,那麼你需要用:
fdisk /dev/sdb
cryptsetup luksFormat /dev/sdb1假設你新建立的分割槽為/dev/vda3)
cryptsetup luksOpen /dev/sdb1 wcl
mkfs.ext4 /dev/mapper/wcl
開機掛載
vi /etc/fstab
/dev/mapper/wcl /test ext4 defaults 0 0
修改crypttab配置檔案
vi /etc/crypttab
wcl /dev/sdb1 /root/passwd
設定卷的密碼
echo redhat > /root/passwd (假設密碼為redhat)
修改許可權
chown root.root /root/passwd
chmod 600 /root/passwd
新增LUKS的金鑰
cryptsetup luksAddKey /dev/sdb1 /root/passwd
(使用此命令新增LUKS的金鑰)
要是你做完第一個實驗之後在做開機自動掛載加密分割槽的情況下,那麼你只需要執行:
(1) vi /etc/fstab
/dev/mapper/wcl /test ext4 defaults 0 0
(2) vi /etc/crypttab
wcl /dev/sdb1 /root/passwd
(3)
echo redhat > /root/passwd (假設密碼為redhat)
chmod root /root/passwd
chmod 600 /root/passwd
(4) cryptsetup luksAddKey /dev/sdb1 /root/passwd
(使用此命令新增LUKS的金鑰)
倘若你要刪除加密分割槽,那麼你需要執行一系列操作如下:
umount /test
rm -rf /test
vi /etc/fstab 刪除加密分割槽的那一條
vi /etc/crypttab 刪除裡面的內容
cryptsetup luksClose /dev/mapper/wcl
fdisk -cu /dev/sdb 進入之後刪除該分割槽
硬碟加密方案2
安裝eCryptFS
yum -y install ecryptfs-utils
建立登陸密碼
ecryptfs-setup-private
會提示你輸入新密碼
掛載私人檔案
建立資料夾
mkdir/root/tPrivate
修改資料夾許可權,使其他人無法訪問這個資料夾
chmod 700 /root/tPrivate
c) 用ecrypt掛載資料夾(加密)
mount -tecryptfs /root/tPrivate /root/tPrivate
d) 在掛載過程中會遇到詢問提示
首先需要輸入掛載密碼(不同於登入密碼)
然後需要選擇金鑰計算方式(直接回車為預設)
接著需要輸入加密長度(直接回車為預設)
接著需要選擇是否允許將未加密檔案放入此資料夾中(預設為不允許)
此時提示掛載成功
測試
a)建立檔案,並輸入內容,例如:gedit/root/private/test 輸入內容“this is a test filecontent”。
b)檢視檔案,輸入 cat /root/private/test 會看到 this is a test file content 字樣
c)解除安裝檔案,輸入"umount /root/private"
d)再次檢視檔案內容,輸入cat /root/private/test,會看到亂碼。
快速掛載(非開機自動掛載)
以後每次開機後訪問加密資料前都需要重新掛載,你可以使用mount -t ecryptfs ~/company_secret ~/company命令來掛載,但每次都要手工輸入一堆選項也挺煩人的。為了以後方便掛載,在~/.bashrc中加入別名:
alias mount_company="sudomount -t ecryptfs $HOME/company_secret $HOME/company -oecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,ecryptfs_fnek_sig=cbd6dc63028e5602(需從前面記錄)"
以後每次使用前只需要執行mount_company即可
重灌系統或移動資料
你只需要記住加密密碼和ecryptfs_fnek_sig引數,則即使你要重灌系統或移動資料,也可以用同樣的命令對資料進行解密並掛載。
方案對比
方案一:
利用加密卷對映到硬碟上,硬碟放到其他電腦上讀取不到任何資訊
會提示格式化(格式化後更看不到了,沒資料)
可以開機自動掛載和手動掛載
開機自動掛載不安全,因為會把密碼寫入到硬盤裡面,並且讀書資料不需要驗證
方案二:
建立私人資料夾,掛載使用時會需要輸入密碼和各個引數選項,資料被拿到其他電腦上使用時,資料還在,也可以看,只不過是亂碼
無法自動掛載,只能以手動方式掛載