======建立Linux檔案系統加密Encrypt Disk======
Encrypt Disk是針對硬碟磁區做加密而非檔案加密,硬碟磁區的加密系統主要是以[[wp>LUKS|LUKS]]方式來加解密。LUKS 採用 kernel device mapper 下的 dm-crypt 子模組所完成。
因此可以先觀察看看此系統下是否以載入dm-crypt模組。
$ /sbin/lsmod|grep -i 'dm'
dm_crypt 17733 1
rdma_cm 35833 1 ib_iser
ib_cm 39853 1 rdma_cm
iw_cm 13125 1 rdma_cm
ib_sa 39349 2 rdma_cm,ib_cm
ib_core 63557 6 ib_iser,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad
ib_addr 11717 1 rdma_cm
dm_mirror 24649 0
dm_multipath 26957 0
scsi_dh 12481 1 dm_multipath
crypto_algapi 22721 6 cbc,cryptomgr,dm_crypt,testmgr,aead,crypto_blkcipher
crypto_api 12609 6 dm_crypt,xfrm_nalgo,testmgr,aead,crypto_blkcipher,crypto_algapi
dm_raid45 67401 0
dm_message 6977 1 dm_raid45
dm_region_hash 15809 1 dm_raid45
dm_log 14785 3 dm_mirror,dm_raid45,dm_region_hash
dm_mod 63737 7 dm_crypt,dm_mirror,dm_multipath,dm_raid45,dm_log
dm_mem_cache 9921 1 dm_raid45
======所需套件======
- cryptsetup
- device-mapper
- util-linux
觀察看看
$ rpm -qa|egrep -i '(cryptsetup|device-mapper|util-linux)'
util-linux-2.13-0.56.el5
device-mapper-1.02.63-4.el5
cryptsetup-luks-1.0.3-8.el5 --->主要工作指令
device-mapper-event-1.02.63-4.el5
device-mapper-multipath-0.4.7-46.el5_7.1
$ rpm -ql cryptsetup-luks
/sbin/cryptsetup
/usr/lib/libcryptsetup.so.0
/usr/lib/libcryptsetup.so.0.0.0
/usr/share/doc/cryptsetup-luks-1.0.3
/usr/share/doc/cryptsetup-luks-1.0.3/AUTHORS
/usr/share/doc/cryptsetup-luks-1.0.3/COPYING
/usr/share/doc/cryptsetup-luks-1.0.3/ChangeLog
/usr/share/doc/cryptsetup-luks-1.0.3/INSTALL
/usr/share/doc/cryptsetup-luks-1.0.3/NEWS
/usr/share/doc/cryptsetup-luks-1.0.3/README
/usr/share/locale/de/LC_MESSAGES/cryptsetup-luks.mo
/usr/share/man/man8/cryptsetup.8.gz
======建立硬碟磁區加密======
- 硬碟裝置格式化為LUKS
- 開啟/dev/mapper與裝置硬碟的連結
- 格式化一般檔案系統(ext3,ext4等等)
- 掛載
用**dd** 及 **losetup** 先模擬一個裝置
#dd if=/dev/zero of=DiskTest bs=200M count=1
#losetup /dev/loop1 DiskTest
格式化LUKS
# /sbin/cryptsetup luksFormat /dev/loop1
WARNING!
========
This will overwrite data on /dev/loop1 irrevocably.
Are you sure? (Type uppercase yes):YES (記得大寫)
Enter LUKS passphrase:ali1234
Verify passphrase:ali1234
Command successful.
開啟連結
#/sbin/cryptsetup luksOpen /dev/loop1 Encdisk (會在/dev/mapper/Encdisk建立)
Enter LUKS passphrase for /dev/loop1:ali1234 ( 鍵入剛建立的密碼)
key slot 0 unlocked.
Command successful.
格式化檔案系統
#mkfs -t ext3 /dev/mapper/Encdisk
掛載
#mount /dev/mapper/Encdisk /media/disk
#df -h
~略~
/dev/mapper/Encdisk 194M 165M 20M 90% /media/disk
======卸載======
-umount
-脫離LUKS連結(一般到此步驟即可)
-losetup 脫離
# umount /dev/mapper/Encdisk
#cryptsetup luksClose /dev/mapper/Encdisk
#losetup -d /dev/loop1
======再次掛載======
#losetup /dev/loop1 DiskTest
#mount /dev/loop1 /media/disk
mount: unknown filesystem type 'crypt_LUKS' (無法掛載,以變成LUKS格式)
#cryptsetup luksOpen /dev/loop1 Encdisk
Enter LUKS passphrase for /dev/loop1:ali1234 (是不是要鍵入密碼,表成功達到加密效果)
key slot 0 unlocked.
Command successful.
#mount /dev/mapper/Encdisk /media/disk
======參考資料======
- [[http://wiki.centos.org/zh-tw/HowTos/EncryptedFilesystem|EncryptedFilesystem(CentOS_wiki)]]
- [[http://benjr.tw/node/564|Encrypt Disk]]