1. 程式人生 > >linux硬碟加密

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引數,則即使你要重灌系統或移動資料,也可以用同樣的命令對資料進行解密並掛載。

 

 

 

方案對比

方案一:

利用加密卷對映到硬碟上,硬碟放到其他電腦上讀取不到任何資訊

會提示格式化(格式化後更看不到了,沒資料)

可以開機自動掛載和手動掛載

開機自動掛載不安全,因為會把密碼寫入到硬盤裡面,並且讀書資料不需要驗證

 

方案二:

建立私人資料夾,掛載使用時會需要輸入密碼和各個引數選項,資料被拿到其他電腦上使用時,資料還在,也可以看,只不過是亂碼

無法自動掛載,只能以手動方式掛載