Linux的磁盤加密

Linux下磁盤加密

         LUKS(Linux Unified Key Setup)爲Linux硬盤加密提供了一種標準,它不僅能通用於不同的Linux發行版本,還支持多用戶/口令。因爲它的加密密鑰獨立於口令,所以如果口令失密,我們可以迅速改變口令而無需重新加密真個硬盤。通過提供一個標準的磁盤上的格式,它不僅方便之間分佈的兼容性,而且還提供了多個用戶密碼的安全管理。必須首先對加密的捲進行解密,才能掛載其中的文件系統。LUKS是Linux下塊設備加密的標準組件, 不同於文件系統級別的eCryptfs等, LUKS更底層, 也更方便.

  用LUKS建立加密分區很簡單, 只需安裝cryptsetup, 然後執行下面的命令按提示設置密碼就可以了, 建議不加額外參數, 選用默認的加密算法, 效率不會差太多, 但是更安全.

   

 工具:cryptsetup(默認已經安裝)

    常用參數:luksFormat、luksOpen、luksClose、luksAddKey

 

    使用cryptsetup對分區進行了加密後,這個分區就不再允許直接掛載。LUKS也是一種基於device mapper 機制的加密方案。如果要使用這個分區,必須對這個分區做一個映射,映射到/dev/mapper這個目錄裏去,我們只能掛載這個映射才能使用。然而做映射的時候是需要輸入解密密碼的。

 

Crypsetup工具加密的特點:

①  加密後不能直接掛載

② 加密後硬盤丟失也不用擔心數據被盜

③  加密後必須做映射才能掛載

 

步驟:

1.   創建分區並加密分區

2.   映射分區

3.   格式化分區並掛載使用

4.  關閉映射分區

 

創建一個磁盤分區/dev/sdb1,不進行格式化


1、  加密分區

cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/sdb1

 

WARNING!

========

This will overwrite data on /dev/sdb1 irrevocably.

 

Are you sure? (Type uppercase yes): YES  --> 注意這裏必須是大寫的YES

Enter LUKS passphrase:

Verify passphrase:

Command successful.

#

 

2、  映射分區

cryptsetup luksOpen /dev/sdb1 sx_disk  //把sdb1映射爲sx_disk

Enter passphrase for /dev/sdb1:

# ll -d /dev/mapper/sx_disk

lrwxrwxrwx. 1 root root 7  6月 25 03:24 /dev/mapper/sx_disk -> ../dm-0

# cryptsetup status /dev/mapper/sx_disk //查看映射分區狀態

/dev/mapper//dev/mapper/sx_disk is active.

  type:  LUKS1

  cipher:  aes-cbc-plain

  keysize: 256 bits

  device:  /dev/sdb1

  offset:  4096 sectors

  size:    16767701 sectors

  mode:    read/write

#

 

3、掛載使用

# mkdir /mnt/sx_disk

mkfs.ext3 /dev/mapper/sx_disk

mount /dev/sdb1 /mnt/sx_disk/   //直接掛載是不可以的

mount: unknown filesystem type 'crypto_LUKS'

mount /dev/mapper/sx_disk /mnt/sx_disk/ //掛載映射設備,掛載成功

 

4、關閉映射,先卸載後關閉

umount /mnt/sx_disk/

# cryptsetup luksClose sx_disk  //關閉映射

ll /dev/mapper/  //映射設備已經不見了

總用量 0

crw-rw----. 1 root root 10, 58  6月 25 03:01 control

#

 

5、設置開機自動掛載

生成密鑰文件,如果想開機時手動輸入密碼可以不生成

touch /root/cryptpasswd

# cryptsetup luksAddKey /dev/sdb1 /root/cryptpasswd

Enter any passphrase:

# cat /root/cryptpasswd  //直接查看密鑰爲空 

#

 

設置開機啓動

# vim /etc/crypttab

cat /etc/crypttab

sx_disk /dev/sdb1 /root/cryptpasswd

//sx_disk爲映射名稱,/dev/sdb1是加密設備設備,/root/cryptpasswd爲密碼文件,如果想開機手動輸入密碼,密碼文件處空着即可

vim /etc/fstab

tail -1 /etc/fstab

/dev/mapper/sx_disk       /mnt/sx_disk             ext4 defaults   0 0

#


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章