Меня попросили зашифровать файловую систему живого сервера, не влияя на операции или данные. Обычно я устанавливаю Redhat с зашифрованной файловой системой, поэтому проблема не в том, «как». Я хочу знать, можно ли вообще зашифровать файловую систему без сжатия раздела, создания нового раздела, его шифрования, копирования всего, удаления старого раздела и изменения размера нового раздела для заполнения дисков.
Вы можете быть быстрее, воссоздав новый раздел, соответствующий целевому устройству, и используя другое шифрование для передачи:
tar --one-file-system --numeric-owner -cpC / . |gzip |gpg -e -r username >file.tgz.gpg
Заботьтесь об открытых файлах, лучше делать это в однопользовательском режиме (init 1
). Или лучше: если /
это зашифрованный раздел на LVM2
parted системы, вы можете использовать снимок с lvcreate -s
, но вам нужно открыть другой сеанс luks
чтобы расшифровать их перед установкой в тихую точку монтирования.
lvcreate -s -L 1G -n BkVolName VolGroup/VolName
cryptsetup luksOpen /dev/mapper/VolGroup-BkVolName bk_crypted
mount -o ro /dev/mapper/bk_crypted /mnt
tar -zcpC /mnt . | gpg -e -r username >file.tgz.gpg
umount /mnt
cryptsetup luksClose bk_crypted
lvremove -f VolGroup/BkVolName
Затем после перемещения зашифрованного архива gpg на целевой хост, воссоздания зашифрованного раздела и его установки на /mnt
для образца:
cryptsetup --verbose --verify-passphrase luksFormat $DEVICE
cryptsetup luksOpen $DEVICE new_crypted
mount /dev/mapper/new_crypted /mnt
gpg -d <file.tgz.gpg | tar -zxvC /mnt
sync
umount /mnt
cryptsetup luksClose new_crypted
Это даст вам возможность создавать файлы быстрого доступа и напрямую использовать низкоуровневую сеть как:
на исходном хосте:
tar --one-file-system -zcpC / . | gpg -e -r uname | nc -q 0 -l -p 9900
чем когда впервые nc -l
выполняется на целевом хосте:
nc sourceHostIPorName 9900 | gpg -d | tar -zxC /mnt
Невозможно использовать собственные инструменты. Возможно, можно будет зашифровать на месте с помощью сторонних инструментов, но у меня нет опыта в этом на RHEL.