Plik jako partycja szyfrowana LUKS

Red Hat 6.x / CentOS 6.x
Jeśli nie mamy możliwości dodania do naszej maszyny dodatkowej partycji, którą zaszyfrujemy LUKS-em, a zależy nam na kawałku bezpiecznej przestrzeni, możemy poradzić sobie z tym problemem symulując partycję w oparciu o zwykły plik.

Procedura samego szyfrowania takiej partycji nie różni się do tworzenia partycji LUKS opisanej tutaj, ale zanim przejdziemy do procedury szyfrowania, musimy utworzyć plik i dowiązać go poprzez urządzenie loop jako partycję systemową.

Partycja, w przeciwieństwie do pliku nie rośnie wraz z dopisywaniem do niej danych, dlatego, jeśli chcemy symulować partycję, musimy utworzyć plik o zadeklarowanej wielkości.

[root@centos67 luksfile]# dd if=/dev/urandom of=/luksfile/partycja_luks bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 134.359 s, 7.6 MB/s

Utworzyliśmy w ten sposób 1GB plik, z którego powstanie nasza partycja.
Teraz zasymulujemy w systemie partycję odnoszącą się do naszego pliku:

[root@centos67 luksfile]# losetup /dev/loop0 /luksfile/partycja_luks

Polecenie to podwiąże do urządzenia /dev/loop0 nasz plik.
Od tej pory widoczny on będzie jako urządzenie blokowe, na którym możemy wykonywać operacje związane z szyfrowaniem.

[root@centos67 luksfile]# lsblk
NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                          7:0    0 976.6M  0 loop
sr0                           11:0    1  1024M  0 rom
sdb                            8:16   0     8G  0 disk
└─vg_luks-lv_luks (dm-2)     253:2    0     8G  0 lvm  /luksfile
sda                            8:0    0     8G  0 disk
├─sda1                         8:1    0   500M  0 part /boot
└─sda2                         8:2    0   7.5G  0 part
  ├─vg_centos-lv_root (dm-0) 253:0    0   6.7G  0 lvm  /
  └─vg_centos-lv_swap (dm-1) 253:1    0   816M  0 lvm  [SWAP]

Utworzyliśmy partycję, więc możemy przystąpić do samego kodowania, na podstawie wspomnianego wcześniej wpisu:

[root@centos67 ~]# cryptsetup luksFormat /dev/loop0

WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: [haslo]
Verify passphrase: [haslo]
[root@centos67 ~]# cryptsetup luksOpen /dev/loop0 luksLoop
Enter passphrase for /dev/loop0: [haslo]
[root@centos67 ~]# lsblk
NAME                         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                          7:0    0 976.6M  0 loop
└─luksLoop (dm-3)            253:3    0 974.6M  0 crypt
sr0                           11:0    1  1024M  0 rom
sda                            8:0    0     8G  0 disk
├─sda1                         8:1    0   500M  0 part  /boot
└─sda2                         8:2    0   7.5G  0 part
  ├─vg_centos-lv_root (dm-0) 253:0    0   6.7G  0 lvm   /
  └─vg_centos-lv_swap (dm-1) 253:1    0   816M  0 lvm   [SWAP]
sdb                            8:16   0     8G  0 disk
└─vg_luks-lv_luks (dm-2)     253:2    0     8G  0 lvm   /luksfile

Pozostaje utworzyć filesystem, zamountować partycję, i cieszyć się bezpieczną przestrzenią.

Odwiązanie urządzenia od pliku

Usunięcie utworzonej partycji, poza zwyczajną procedurą zamknięcia dostępu do zawartości filesystemu obejmie jeszcze jeden element - usunięcie dowiązania pliku do partycji loop:

[root@centos67 ~]# losetup -d /dev/loop0
[root@centos67 ~]# lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                           11:0    1 1024M  0 rom
sda                            8:0    0    8G  0 disk
├─sda1                         8:1    0  500M  0 part /boot
└─sda2                         8:2    0  7.5G  0 part
  ├─vg_centos-lv_root (dm-0) 253:0    0  6.7G  0 lvm  /
  └─vg_centos-lv_swap (dm-1) 253:1    0  816M  0 lvm  [SWAP]
sdb                            8:16   0    8G  0 disk
└─vg_luks-lv_luks (dm-2)     253:2    0    8G  0 lvm  /luksfile

Inicjalizacja partycji przy starcie systemu

Możemy oczywiście skonfigurować system, aby inicjalizował partycję przy starcie systemu. W tym celu musimy dodać odpowiednie wpisy w pliku wykonywanym podczas startu, np. w /etc/rc.local:

[root@centos67 ~]# vi /etc/rc.local
losetup /dev/loop0 /luksfile/partycja_luks
cryptsetup --key-file /root/lukspass luksOpen /dev/loop0 luksLoop
mount /dev/mapper/luksLoop /secret


Brak komentarzy:

Prześlij komentarz