1. 程式人生 > >Linux儲存管理之磁碟加密

Linux儲存管理之磁碟加密

《Linux_管理系統儲存》這篇文章講解了如何劃分分割槽,通過這篇文章可以瞭解到儲存裝置要能被使用必須掛載到目錄下。我們可以理解為U盤必須插在電腦上才能寫入內容。只要裝置可以被使用,任何人都可以將該裝置掛載後進行操作,所以為了安全起見,可以對磁碟進行加密,只有知道解密密碼的人才能解密,而裝置只有解密後才能掛載,這樣就增加了安全性。  本篇文章主要講述的是luks加密方式,是在檔案系統和物理裝置之間新增加密層。如果將加密層暴力破壞之後,資料就無法進行讀取,是一種比較可靠的加密方式。 我在我的主機上劃分了一塊分割槽vdb1,至於分割槽的劃分,可以參考《Linux_管理系統儲存》這篇文章。使用以下命令對磁碟進行加密:

[[email protected] ~]# cryptsetup luksFormat /dev/vdb1

在這裡插入圖片描述  加密時需要新增密碼,通過此密碼才能對磁碟解密。  解密時解密後的裝置名字就不再是vdb1,需要重新起名,但是實際使用的儲存裝置還是vdb1。以下命令將vdb1解密為虛擬裝置westos/dev/mapper/目錄下的裝置為虛擬裝置:

[[email protected] ~]# cryptsetup open /dev/vdb1 westos

在這裡插入圖片描述  物理裝置只有在新增檔案系統後才能被系統使用。常見的檔案系統的格式有ext3 ext4 vfat xfs,下圖是給westos裝置格式化xfs檔案系統,並將其掛載到/mnt/這個目錄下。給/mnt/下寫入資料,就是給westos中寫入資料:

[[email protected] ~]# mkfs.xfs  /dev/mapper/westos 	#格式化檔案系統為xfs
[[email protected] ~]# mount /dev/mapper/westos /mnt/	#掛載

在這裡插入圖片描述  解除安裝westos裝置之後,並將westos虛擬裝置關閉掉,可以理解為對裝置進行了加密,westos為vdb1解密後的裝置名。關閉westos之後即對vdb1進行了加密,此時/dev/vdb1因為被加密所以不能被掛載使用,如下圖:

[[email protected] ~]# umount /mnt/	#解除安裝
[[email protected]
~]# cryptsetup close westos #將westos虛擬裝置關閉

在這裡插入圖片描述  要想使用vdb1這個分割槽,必須通過密碼認證進行解密,才能夠被掛載使用。以下命令將/dev/vdb1解密為linux虛擬裝置,虛擬裝置的名字可以與之前的不同,但是實際的裝置就是vdb1就好像筆名一樣,一個作家可以有不同的筆名,但這些筆名都指向的是這個作者。解密之後將linux掛載後就可以寫入資料,test是將vdb1解密為westos虛擬裝置時所建立的檔案:

[[email protected] ~]# cryptsetup open /dev/vdb1 linux	#解密為linux虛擬裝置
[[email protected] ~]# mount /dev/mapper/linux /mnt/	#掛載

在這裡插入圖片描述  可以使用df命令檢視掛載資訊: 在這裡插入圖片描述  命令形式的掛載在系統重啟之後就會失效,加密的裝置要永久掛載需要考慮兩個問題,解密和掛載,可以編輯/dev/crypttab檔案,讓系統在啟動時對加密的/dev/vdb1解密:

[[email protected] ~]# vim /etc/crypttab #加密裝置解密
disk /dev/vdb1 /root/vdb1passwd

 disk為解密後的虛擬裝置,/dev/vdb1為解密裝置,/root/vdb1passwd為記錄/dev/vdb1解密密碼的檔案。該內容表示將/dev/vdb1解密為disk這個虛擬裝置,密碼記錄在/root/vdb1passwd這個檔案中。  vdb1passwd這個檔案系統中是麼有的,所以建立該檔案,將vdb1的解密密碼寫入,為了安全起見,給該檔案600的許可權,只有檔案所有人才能檢視:

[[email protected] ~]# vim /root/vdb1pass	#密碼檔案
2018westos
[[email protected] ~]# chmod 600 /root/vdb1pass

 除此以外還需要執行以下命令說明/root/vdb1passwd為/dev/vdb1的密碼檔案:

[[email protected] ~]# cryptsetup luksAddKey /dev/vdb1 /root/vdb1pass

 此時,開機時系統就會自動將加密分割槽/dev/vdb1解密為disk。要自動掛載disk這個虛擬裝置需要將掛載資訊寫入到/etc/fstab這個檔案中:

[[email protected] ~]# vim /etc/fstab
/dev/mapper/disk /mnt xfs defaults 0 0 

 /dev/mapper/disk為掛載的裝置 /mnt為掛載點 xfs為裝置的檔案系統 後面的兩個0表示不檢測不備份。  此時系統在啟動之後會將vdb1 自動解密為disk並掛載到/mnt下。  要將加密裝置恢復為原來沒有加密的裝置,首先要將/etc/fstab和/etc/crypttab 兩個檔案清空,刪除密碼檔案/root/vdb1pass,然後解除安裝虛擬裝置,解密裝置,再強制格式化/dev/vdb1為xfs檔案系統。

[[email protected] ~]# vim /etc/fstab 	
[[email protected] ~]# vim /etc/crypttab 
[[email protected] ~]# rm -fr /root/vdb1passwd 
[[email protected] ~]# umount /mnt/			#解除安裝
[[email protected] ~]# cryptsetup close /dev/mapper/disk 	#關閉虛擬裝置
[[email protected] ~]# mkfs.xfs /dev/vdb1 -f		#強制格式化vdb1為xfs檔案系統

在這裡插入圖片描述  此時vdb1不需要解密就可以掛載使用,如下圖: 在這裡插入圖片描述  luks的加密方式安全性相對較高,如果加密層被破壞資料也就無法讀取,不至於資料洩露。