Назад | Перейти на главную страницу

Защитите живой сервер

Меня попросили зашифровать файловую систему живого сервера, не влияя на операции или данные. Обычно я устанавливаю 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.