1. 程式人生 > >Linux下磁碟加密——luks

Linux下磁碟加密——luks

Linux下磁碟加密

         LUKS(Linux Unified Key Setup)為Linux硬碟加密提供了一種標準,它不僅能通用於不同的Linux發行版本,還支援多使用者/口令。因為它的加密金鑰獨立於口令,所以如果口令失密,我們可以迅速改變口令而無需重新加密真個硬碟。通過提供一個標準的磁碟上的格式,它不僅方便之間分佈的相容性,而且還提供了多個使用者密碼的安全管理。必須首先對加密的捲進行解密,才能掛載其中的檔案系統。

工具: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

#