目標:
- すべてのネジは安全に暗号化する必要があります
- 新しい(または磨耗した)ねじであるかのように、ねじが完全に破損しないようにする必要があります。
- OSは暗号化されたパーティション上にある必要があります
- 新しいネジを追加することにより、ディスク容量を増やすことができるはずです
- 暗号化されたデータのキーを入力せずにシステムを起動します
理論
まず、これがどのように機能するかの理論を簡単に説明します。ブートローダーとパスキーはフラッシュドライブの小さな(<50Mb)セクションに保存され、オンにすると、ブートローダーは暗号化されたネジへのアクセスのロックを解除し、カーネルをロードし、仮想パーティション(LVM)を接続し、通常のブートを行いますシステム。
オペレーティングシステムとしてUbubtu Server 9.10が選択されましたが、このタスクはUNIXライクなシステムに実装できます。 すぐに予約すると、インストーラーでインストール段階でシステムを暗号化する可能性がありますが、上記のリストのポイント1と2を実装することは不可能であるため、手動で対処します。
必要なもの:
- Ubuntu Server 9.10イメージ
- LiveCDの配布。 暗号化されたパーティションをそのまま使用できるため、通常のUbuntuデスクトップCDを使用しました。
- システムの起動に使用されるフラッシュドライブ
- * nixシステムの基本的な知識
- ストレートアーム
ステップ1.フラッシュドライブとハードドライブの準備
A)フラッシュドライブをパーティションに分割し、キーを作成する
USBフラッシュドライブを、ネジが暗号化されるコンピューターに接続し、LiveCDから起動します。 私たちのタスクは、フラッシュドライブに2つのパーティションを作成することです。最初のパーティションはほぼすべてのスペースを占有し、FAT16、FAT32、NTFS(任意)でフォーマットされます。 このような故障は偶然ではありません-最初のセクションのおかげで、フラッシュドライブはどのOSでも完全に機能します。 また、Windowsでは、2番目のセクションは使用できません。これは、フラッシュドライブが間違った手に落ちた場合にプラスになります。 パーティションを作成するために、GPartedグラフィックユーティリティ(LiveCDにあります)を使用しましたが、fdiskに悩まされる人はいません。 パーティションを作成したら、それらをシステムにマウントします。sudo su mkdir /mnt/flash /mnt/boot mount /dev/sdb1 /mnt/flash mount /dev/sdb2 /mnt/boot
- ( ):
dd if=/dev/random of=/mnt/boot/mykey bs=1 count=256 cp /mnt/boot/mykey /mnt/flash/
)
. , HEX-, , . 2 , , .. 2MB. Core Quad Q6600 6Mb/, 80 4 .
sudo dd if=/dev/urandom of=/dev/sda bs=2M
. BAD-. «» .
sudo /sbin/badblocks -c 10240 -s -w -t random -v /dev/sda
, , . LUKS.
sudo cryptsetup -h=sha256 -c=aes-cbc-essiv:sha256 -s=256 luksFormat /dev/sda /mnt/boot/mykey
, YES( ). :
sudo cryptsetup -d=/mnt/boot/mykey luksOpen /dev/sda drivespace
/dev/mapper/drivespace. .
) (LVM)
, ( ) LVM. . LiveCD , .sudo su apt-get install lvm2 pvcreate /dev/mapper/drivespace vgcreate vg /dev/mapper/drivespace lvcreate -L1G -nswap vg lvcreate -L3G -nroot vg lvcreate -l 100%FREE -ndata vg
3 /dev/mapper/vg-swap /dev/mapper/vg-root /dev/mapper/vg-data. .
sudo su mkswap /dev/mapper/vg-swap mkfs.ext4 /dev/mapper/vg-root mkfs.xfs /dev/mapper/vg-data
! . UUID
ls -l /dev/disk/by-uuid >/mnt/flash/uuid.txt
2.
)
, (. ). . , . — /boot ( ) Grub .) ,
LVM . ( ):GRUB. Ubuntu GRUB2, /boot/grub/grub.cfg. menuentry «Ubuntu, Linux 2.6.31-14-server»sudo apt-get -y install cryptsetup lvm2
linux /vmlinuz-2.6.31-14-server root=UUID=9a651089-88fa-46d6-b547-38d3e10d4e67 ro quiet splash
linux /vmlinuz-2.6.31-14-server root=/dev/mapper/vg-root ro quiet splash
/etc/fstab
proc /proc proc defaults 0 0 UUID=eb7f5e37-b957-43dd-8af6-3c8983670df5 /boot ext2 defaults 0 2 /dev/mapper/vg-root / ext4 errors=remount-ro 0 1 /dev/mapper/vg-data /home xfs defaults 0 1 /dev/mapper/vg-swap none swap sw 0 0
/boot UUID ( ), /.
/etc/crypttab
drivespace UUID=090d14c1-e3c8-48e7-b123-6d9b8b2e502b /boot/mykey luks,cipher=aes-cbc-essiv:sha256
UUID ( )
) initrd
initrd LVM. /etc/initramfs-tools/modules :dm_mod dm_crypt sha256 aes_generic
/etc/initramfs-tools/hooks/cryptokeys :
PREREQ="" prereqs() { echo "$PREREQ" } case $1 in prereqs) prereqs exit 0 ;; esac if [ ! -x /sbin/cryptsetup ]; then exit 0 fi . /usr/share/initramfs-tools/hook-functions mkdir ${DESTDIR}/etc/console cp /boot/mykey ${DESTDIR}/etc/console copy_exec /sbin/cryptsetup /sbin
- initrd, . /etc/initramfs-tools/scripts/local-top/cryptokeys :
PREREQ="udev" prereqs() { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac modprobe -b dm_crypt modprobe -b aes_generic modprobe -b sha256 while ! /sbin/cryptsetup -d=/etc/console/mykey luksOpen /dev/disk/by-uuid/090d14c1-e3c8-48e7-b123-6d9b8b2e502b drivespace; do echo "Try again..." done
initrd, UUID=090d14c1-e3c8-48e7-b123-6d9b8b2e502b. ( ). UUID .
:
sudo chmod +x /etc/initramfs-tools/hooks/cryptokeys sudo chmod +x /etc/initramfs-tools/scripts/local-top/cryptokeys sudo update-initramfs -u -k all
)
:mkdir /mnt/root && mount /dev/sda1 /mnt/root && cd /mnt/root tar cfjv /mnt/flash/systembackup.tar.bz2 . #
.
3.
: , LiveCD, , LVM, ( vgscan vgmknodes ), .
sudo su mkdir /mnt/flash mount /dev/sdb1 /mnt/flash cryptsetup -d=/mnt/flash/mykey luksOpen /dev/disk/by-uuid/090d14c1-e3c8-48e7-b123-6d9b8b2e502b drivespace apt-get install lvm2 #vgscan && vgchange -a y && vgmknodes vg # mkdir /mnt/root mount /dev/mapper/vg-root /mnt/root mkdir /mnt/root/home mount /dev/mapper/vg-home /mnt/root/home cp /mnt/flash/systembackup.tar.bz2 /mnt/root && cd /mnt/root # , tar xfvj systembackup.tar.bz2
, . , Key slot 0 unlocked, , .
,
( ); , — reset / ; - , , ( — ).
, .
, . ( LUKS/cryptsetup). RAID1,5,6 .
, . ( ) , ( ), .
LUKS
LVM
EncryptedFilesystemHowto5 — , .
UPD . ITpower