インフラエンジニアbacchiのわかったことまとめ

bacchi.me

LUKSを使ってみる

LUKS(Linux Unified Key Setup)というLinuxの暗号化ファイルシステムを使ってみたときのメモです。

RHEL 6, 7 で動作確認済みです。

パッケージのインストール

yum install cryptsetup-luks

デバイスの初期化と接続

デバイスの初期化と接続を行います。

# cryptsetup luksFormat -c aes-xts-plain64 -s 256 /dev/mapper/gvol0-lvol0
WARNING!
========
This will overwrite data on /dev/sdb irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase: 

# cryptsetup luksOpen /dev/mapper/gvol0-lvol0 luks
  Enter passphrase for /dev/mapper/gvol0-lvol0: (パスワードを入力)
  Key slot 0 unlocked.

これで暗号化デバイスの作成が完了しました。

ファイルシステムの作成、mount

暗号化デバイスの作成が終わったので、ファイルシステムを作って、マウントします。

# mkfs -t ext4 /dev/mapper/luks
# mkfs.ext4 /dev/gvol0/lvol1
# vim /etc/fstab
---
/dev/mapper/luks /mnt/luks ext4 rw,noatime,nobarrier 0 0
---
# mkdir -p /mnt/luks
# mount -a

自動マウントの設定を行う

このままでは、再起動した時に暗号化デバイスを自動的にマウントしてくれません。不便なので自動でマウントしてくれる設定を入れましょう。すでに /etc/fstab の設定はしているので、暗号化デバイスに自動で接続する設定を入れます。

下記の手順で keyfile を作成し、パスワードの入力なしに暗号化デバイスに接続できるように設定します。

### keyfileの作成
# dd bs=512 count=4 if=/dev/urandom of=/etc/luks_keyfile iflag=fullblock
# chmod 600 /etc/luks_keyfile

### 作成したkeyfileと暗号化デバイスを結びつける
# cryptsetup luksAddKey /dev/mapper/gvol0-lvol0 /etc/luks_keyfile
Enter any passphrase: 

# cryptsetup luksDump /dev/mapper/gvol0-lvol0
LUKS header information for /dev/mapper/gvol0-lvol0

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      c9 c2 21 8c c4 85 b6 d4 88 4a b3 a9 8c 3e f6 59 91 7f 83 50 
MK salt:        47 67 3e d4 a8 e9 56 19 4a 9a 60 c5 7d af 23 d2 
                33 87 96 e2 25 55 d2 be db fc 44 e6 c6 70 38 26 
MK iterations:  59875
UUID:           d68de59a-8661-4278-882f-afd23cc06e5d

Key Slot 0: ENABLED
        Iterations:             239859
        Salt:                   fb 7d 4a ab 8d e8 8c f4 3d 55 a3 bc ba 8b fd f0 
                                4f 20 66 cc 0d 28 7c dd 42 ce f0 4b 42 6c f2 c6 
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: ENABLED
        Iterations:             234588
        Salt:                   fc 76 dd 42 2c 88 32 30 60 e6 74 01 36 e5 be e3 
                                32 a3 f6 be df f7 e3 8c 37 37 17 20 32 bb b9 a2 
        Key material offset:    264
        AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

/etc/crypttab に下記のような設定を追加してやることで、OS起動時に keyfile を使って暗号化デバイスに接続してくれるようになります。

# vim /etc/crypttab
---
luks /dev/mapper/gvol0-lvol0 /etc/luks_keyfile luks,timeout=5
---
  • B!