Precise-571JPでdm-crypt/LUKSによって暗号化されたpupsaveを利用する

5.X系に関する開発話題です

モデレータ: 暇人, YoN, nyu

返信する
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Precise-571JPでdm-crypt/LUKSによって暗号化されたpupsaveを利用する

投稿記事 by ssnys »

手前味噌で大変恐縮なのではございますが、Precise-571JPでdm-crypt/LUKSによって暗号化されたpupsaveに対応可能のinitrd.gzを作成致しました。以下のURLからダウンロードが可能です。ファイル名がinitrd-20180618.gzとなっていますが、initrd.gzに修正してご利用ください。またinitrd-20180618.gzはZopfliでガチガチに圧縮されているため、元のinitrd.gzよりファイルサイズが縮小しています :D

<https://box.yahoo.co.jp/guest/viewer?si ... ype=detail>

initrd.gzに含まれているcryptsetupのバージョンは1.7.5です。

pupsaveのファイル名はprecisesave_cryptl-XXXX.4fsである必要があります。XXXXは任意の英数字です。

暗号アルゴリズムはaes-cbc-essiv:sha256、ハッシュアルゴリズムはsha256、ファイルシステムはEXT4で動作を確認しています。これ以外の暗号アルゴリズムを利用するにはinitrd.gzにそれぞれのカーネルモジュールを追加する必要があると思われます。ファイルシステムはEXT3やEXT2でも動作可能なように設定していますが、テストはしていません。 :|

`PUPMODE=13`でブート、セッションの保存が動作することは確認していますが、pupsaveのサイズ変更などは恐らく機能しないと思われます。 :cry:

今回dm-crypt/LUKSに対応可能なinitrd.gzを作成するにあたっては、
<viewtopic.php?f=12&t=3352&sid=805d23ecc ... cc16fc5194>にてご回答いただきました、Zstepさんに改めて御礼申し上げます。PuppyLinuxでもdm-crypt/LUKSに対応したものがあると知り、Precise-571JPでdm-crypt/LUKSは利用できないかと、触発された次第です。

dm-crypt/LUKSで暗号化されたpupsaveの作成方法なども紹介したいのですが、まだ文書が書けていません。今暫くお待ち頂ければ幸いでございます。
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: Precise-571JPでdm-crypt/LUKSによって暗号化されたpupsaveを利用する

投稿記事 by ssnys »

dm-crypt/LUKSによって暗号化されたpupsaveを作成するにはcryptsetupが必要です。cryptsetupを自分でビルドする、パッケージマネージャーからインストールするなどの必要があります。または以下のURLから当方がビルドしたcryptsetup 1.7.5のsfsを入手できます。(veritysetupは含まれていません) :o

<https://box.yahoo.co.jp/guest/viewer?si ... ype=detail>

pupsaveの作成はターミナルでの作業となります。作成は以下のような流れとなります。

コード: 全て選択

~# sfs_load -c /mnt/home/puppy/cryptsetup_1.7.5_i386.sfs # cryptsetupをロード
sfs_load: --custom 'cryptsetup_1.7.5_i386.sfs' は無事ロードされました。
アンロードするまではこのファイルを削除したり移動したりしないでください。
~# modprobe dm-crypt # カーネルモジュールのロード
~# dd if=/dev/urandom of=/mnt/home/puppy/precisesave_cryptl-test.4fs bs=1024k count=64 # 64MBのイメージファイルを作成
64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 7.10689 s, 9.4 MB/s
~# cryptsetup -c aes-cbc-essiv:sha256 -s 256 -h sha256 -i 5000 --use-random luksFormat /mnt/home/puppy/precisesave_cryptl-test.4fs # イメージファイルの暗号化
 
WARNING!
========
This will overwrite data on /mnt/home/puppy/precisesave_cryptl-test.4fs irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase: 
~# cryptsetup luksOpen /mnt/home/puppy/precisesave_cryptl-test.4fs plain # LUKSイメージファイルを開く
Enter passphrase for /mnt/home/puppy/precisesave_cryptl-test.4fs: 
~# mkfs.ext4 -m 0 -F /dev/mapper/plain # イメージファイルをEXT4でフォーマット
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
15872 inodes, 63488 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=65011712
8 block groups
8192 blocks per group, 8192 fragments per group
1984 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
~# mkdir -p /mnt/plain
~# mount /dev/mapper/plain /mnt/plain # マウント
~# cp -afT /initrd/pup_ro1/ /mnt/plain # 現在のpupsaveの内容を新たなpupsaveにコピー
~# nano /mnt/plain/etc/rc.d/BOOTCONFIG # 現在のpupsave名からprecisesave_cryptl-test.4fsに書き換える
~# umount /dev/mapper/plain # アンマウント
~# cryptsetup luksClose plain # LUKSイメージファイルを閉じる
これでpupsaveは完成です。 :D

参考にしたページ
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: Precise-571JPでdm-crypt/LUKSによって暗号化されたpupsaveを利用する

投稿記事 by ssnys »

作成したdm-crypt/LUKS対応のinitrd.gzでは動的リンクが必要ないStaticなcryptsetupを使用していますが、それを作成するのにかなり手間取ったため、作成方法を載せておきたいと思います。同じ問題で悩まれている方々の一助になれば幸いでございます。 :D

基本的には<https://gist.github.com/packz/4077532>の手順通り、コンパイルすれば問題ありませんが、Precise-571JPですと注意が必要です。

まずlvm2をコンパイルする必要があります。<https://launchpad.net/ubuntu/precise/+source/lvm2>からソースをダウンロードしコンパイルを行いますが、Precise-571JPですと何故か失敗します。故に当方はDebianDog Jessieでコンパイルしました。

cryptsetupのコンパイルはPrecise-571JP+devx_precise_5.7.1.sfsでコンパイル可能です。<https://gitlab.com/cryptsetup/cryptsetup>からソースをダウンロード可能です。今回はVersion 1.7.5を使用しました。コンパイルにあたりlibudev-devが必要です。<https://launchpad.net/ubuntu/precise/i3 ... ubuntu9.10>からダウンロード可能です。当方は以下のようなconfigureオプションでコンパイルしました。

コード: 全て選択

./configure --disable-udev --disable-nls --disable-veritysetup --enable-static-cryptsetup --enable-static DEVMAPPER_CFLAGS="-I$ROOTDIR/system/usr/include/" DEVMAPPER_LIBS="-L$ROOTDIR/system/usr/lib/ -ldevmapper"
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
返信する