RHEL 6 cryptsetupディスクパーティション暗号化実験


RHEL 6 cryptsetupディスクパーティション暗号化実験
LUKSはLinux HDDの暗号化規格です.標準的なディスク上のフォーマットを提供することで、互換性の分散が容易になるだけでなく、複数のユーザーパスワードのセキュリティ管理も可能になります.ファイルシステムをマウントするには、まず暗号化されたボリュームを復号する必要があります.
システム暗号化:【ツール:cryptsetup;共通パラメータ:luksFormat、luksOpen、luksClose、luksAddKey】【関連ファイル:/etc/crypttab;自分でパスワードファイルを作成する】
注意:上記のパラメータの大文字と小文字は乱用できません
さあ、この強力なツールを試してみましょう~
一、テストのためにパーティションを作成する(fdisk)
ここは私の机械を例にして、私が空间をすべてlvmにしたため、分区は异なって、私达は300 Mを取って実験をしましょう.

[root@desktop21 Desktop]# vgdisplay 

  --- Volume group ---

  VG Name               vol0

  System ID             

  Format                lvm2

  Metadata Areas        2

  Metadata Sequence No  27

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                4

  Open LV               3

  Max PV                0

  Cur PV                2

  Act PV                2

  VG Size               55.22 GiB

  PE Size               32.00 MiB

  Total PE              1767

  Alloc PE / Size       928 / 29.00 GiB

  Free  PE / Size       839 / 26.22 GiB ( 26G,   ,    300M   )

  VG UUID               ZAGsPK-tIBO-08bd-RoMp-fPeC-Ei5l-x3asx6

 

[root@desktop21 Desktop]# lvcreate -L 300M -n testlv /dev/vol0 

  Rounding up size to full physical extent 320.00 MiB

  Logical volume "testlv" created

 
----->ok、testlvパーティションを生成し、320 M(PEに関連)
 
二、パーティション暗号化(cryptsetup luksFormat、パーティションはフォーマットしないでください!)

[root@desktop21 Desktop]# cryptsetup luksFormat /dev/vol0/testlv 

 

WARNING!

========

This will overwrite data on /dev/vol0/testlv irrevocably.

 

Are you sure? (Type uppercase yes): YES (  ,       )

Enter LUKS passphrase:  (    )

Verify passphrase:  (    )

 
三、はい、パスワードが作成されました.解読してフォーマットしましょう.フォーマットしてからマウントできますよ.(解読しないと操作できない)

1、[root@desktop21 Desktop]# cryptsetup luksOpen /dev/vol0/testlv testlv

Enter passphrase for /dev/vol0/testlv:  (        !)

----->命令は最後にマッピングされたデバイス名「testlv」を書きますので、見てみましょう

[root@desktop21 Desktop]# ll /dev/mapper/testlv  /dev/vol0/testlv 

lrwxrwxrwx. 1 root root 7 Aug  4 15:17 /dev/mapper/testlv -> ../dm-7

lrwxrwxrwx. 1 root root 7 Aug  4 15:17 /dev/vol0/testlv -> ../dm-6

2つは実は同じです.コマンドにマッピングの名前を付けなければならないので、自分でcryptsetupをmanしてもいいです.

2、[root@desktop21 Desktop]# mkfs.ext4 /dev/mapper/testlv 

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

81600 inodes, 325632 blocks

16281 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=67633152

40 block groups

8192 blocks per group, 8192 fragments per group

2040 inodes per group

Superblock backups stored on blocks: 

 8193, 24577, 40961, 57345, 73729, 204801, 221185

 

Writing inode tables: done                            

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 37 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

----->ok、すぐにフォーマットされたので、新しいディレクトリを作成してマウントしましょう.

3、[root@desktop21 Desktop]# mkdir /testlv

[root@desktop21 Desktop]# mount /dev/mapper/testlv /testlv/

[root@desktop21 Desktop]# df -h /testlv/

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/testlv    308M   11M  283M   4% /testlv

--->        ?  fstable  

[root@desktop21 Desktop]# vim /etc/fstab  (     )

/dev/mapper/testlv      /testlv                 ext4    defaults        0 0

【このまま再起動してもマウントされません.なぜですか.暗号化されたパーティションがあることをプロファイルに書き込んでいません.はい、テストを続けます】
 
四、構成ファイルを書いて、システムに知らせる

[root@desktop21 Desktop]# vim /etc/crypttab (     ,       )

testlv          /dev/sda5

---保存して退出して、再起動して、どのようにあなたにパスワードを入力するように要求しました.何文字も叩いてみようか?いいえ、入ってはいけません.はい、正しいパスワードを入力して入りましょう.
---パスワードを忘れたらどうする?大丈夫【ctrl+c】3回見て、^^、入力は要求しないで、システムに入ります~
----->dfちょっと見て、載せてないでしょ?もちろん、あなたのパスワードは入力されていません.パーティションはどうしてあなたに見せますか?
【注意:このパーティションをバックアップチェックするようにマウントすると、1 2の場合、入力をキャンセルするとエラーが発生します.管理者パスワードを入力してメンテナンスするように指示されます.大丈夫です.新しく追加したコメントを1行落としてから変更してください.】
 
五、システムは検出したが、鍵はパスワードを入力しなければならない.誰かがパスワードを入力しなければならない.(これでデータが保護されていませんよ、安全ではありませんので、やめたほうがいいです)でもテストしてみましょう^^;
1、パスワードファイルを新規作成します.パスは自由です.ここでパスワードファイル/root/passlvを新規作成しました.

[root@desktop21 Desktop]# touch /root/passlv

2、プロファイルを修正し、パスワードファイルのパスを入れる

[root@desktop21 Desktop]# vim /etc/crypttab (     ,            )

testlv          /dev/sda5      /root/passlv
3、命令を実行して、パスワードを私のパスワードファイルに書き込んで、権限を修正して、所属がrootであることを保証して、しかもrootだけが読み書きすることができます

[root@desktop21 Desktop]# echo mypasswd >/root/passlv 

[root@desktop21 Desktop]# chown root /root/passlv 

[root@desktop21 Desktop]# chmod 600 /root/passlv 

[root@desktop21 Desktop]# cryptsetup luksAddKey /dev/vol0/testlv /root/passlv 

Enter any passphrase:  (      )

---このステップは、マッピングパス/dev/mapper/testlvではなく、元のパーティションに対してパスワード生成のみを行うことに注意してください./etc/crypttabの中でも元のパーティションでなければなりません.
---パスワードファイルを見てみましょう.

[root@desktop21 Desktop]# cat /root/passlv 

mypasswd

----->ok、再起動して、もうパスワードを入力しないで、ログインに成功して、dfは見てみましょう、ありますか?
 
六、問題があります.パスワードが明文なのに、何を秘密にしていますか.いっそのこと

[root@desktop21 Desktop]# echo >/root/passlv

[root@desktop21 Desktop]# cat /root/passlv 

 
问题ない、直した、もう一つ命令しよう

[root@desktop21 Desktop]# cryptsetup luksAddKey /dev/vol0/testlv /root/passlv 

Enter any passphrase:  (         )

----->パスワードファイルを見る?

[root@desktop21 Desktop]# cat /root/passlv 

 
--->それとも空ですか.気にしないで再起動してみろ
---なんとログインして、パスワードを入力していませんか?
ほほほ、あとは自分でテストしましょう.
【注意:パスワードの漏洩を防止するため、パスワードファイルに何でも書き込めますので、影響はありません.ただし、パスワードファイルを一度変更するだけで、コマンドcryptsetup luksAddKeyを一度実行しなければなりません.そうしないと問題が発生します~】
はい、QQ 345258361を残して、私はノートとして書いたので、むやみに書いて、問題があるところはまだ指摘してください.