Одной из примечательных особенностей релиза 1.0.7 Kali была представление Kali Live USB с зашифрованным LUKS разделом поддерживающим запись, о чём было рассказано в одной из предыдущих статей. Тем не менее, все функции persistent (раздела, поддерживающего запись и хранение) ещё нуждаются в исследовании. Сегодня мы поговорим о такой фишке как мульти разделы (профилы) USB хранилища, которые могут быть выбраны во время загрузки. Эти мульти persistent хранилища могут быть как зашифрованными, так и не зашифрованными, и они могут быть выбраны во время загрузки с использованием загрузочного параметра persistence-label.
Множественные профили USB разделов, поддерживающих запись
Эта функция persistent крайне полезна для нас, т. к. мы можем создать профиль, основанный на persistent хранилище. Например, мы можем выбрать обычный persistence раздел, где вся наша временная работа, или же выбрать отдельный раздел persistent, где мы производим анализ вирусов. Наконеы, мы можем иметь третий зашифрованный раздел persistent, где мы храним наши конфиденциальные документы.
Приступим к делу
Давайте посмотрим, как реализовать такое как это переключение Kali USB. Начнём с записи Kali ISO на ваш USB (наша размещена в /dev/sdb). Когда готово, вы можете проверить структуру USB раздела, используя parted /dev/sdb print.
dd if=kali-linux-1.0.9a-amd64.iso of=/dev/sdb bs=1M
Как мы делали для обычного persistence (раздела, поддерживающее сохранение данных после перезагрузки), мы создадим и отформатируем дополнительный раздел на USB устройстве. В нашем примере, мы создали раздел persistent размером примерно 7 ГБ:
root@kali:~# parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print devices /dev/sda (480GB) /dev/sdb (31.6GB) (parted) select /dev/sdb Using /dev/sdb (parted) print Model: SanDisk SanDisk Ultra (scsi) Disk /dev/sdb: 31.6GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.8kB 2988MB 2988MB primary boot, hidden 2 2988MB 3053MB 64.9MB primary fat16 (parted) mkpart primary 3053 10000 (parted) quit Information: You may need to update /etc/fstab.
Мы зашифруем созданный раздел с помощью LUKS, затем смонтируем, отформатируем и поставим метку на него.
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3 cryptsetup luksOpen /dev/sdb3 my_usb mkfs.ext3 /dev/mapper/my_usb e2label /dev/mapper/my_usb persistence
Затем на этом разделе мы создадим persistence.conf, чтобы изменения сохранялись при перезагрузках:
mkdir -p /mnt/my_usb mount /dev/mapper/my_usb /mnt/my_usb echo "/ union" > /mnt/my_usb/persistence.conf umount /dev/mapper/my_usb cryptsetup luksClose /dev/mapper/my_usb
На данный момент, мы завершили процедуры установки регулярного, зашифрованного раздела persistence. Теперь мы можем продолжить создание второго раздела persistence — мы назовём его “work” (работа) и выделим егму 5 ГБ места.
root@kali:~# parted /dev/sdb GNU Parted 2.3 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: SanDisk SanDisk Ultra (scsi) Disk /dev/sdb: 31.6GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.8kB 2988MB 2988MB primary boot, hidden 2 2988MB 3053MB 64.9MB primary fat16 3 3053MB 10.0GB 6947MB primary (parted) mkpart primary 10000 15000 (parted) quit Information: You may need to update /etc/fstab.
Следующим шагом мы отформатируем четвёртый раздел и назначим ему ярлык “work”.
mkfs.ext3 /dev/sdb4 e2label /dev/sdb4 work
mkdir -p /mnt/usb mount /dev/sdb4 /mnt/usb echo "/ union" > /mnt/usb/persistence.conf umount /mnt/usb
Вот и всё! Загрузите компьютер и установите загрузку с USB. Когда появится загрузочное меню, отредактируйте параметр persistence-label как показано внизу, чтобы переключиться на предпочитаемую persistence: