[an error occurred while processing this directive]

Шифрование данных на существующем разделе ext4 без его переформатирования
Можно отметить два основных способа организации шифрования данных в уже
существующей файловой системе Ext4, не требующие пересоздания раздела с
переносом данных из резервной копии. Первый способ заключается в использовании
встроенных в Ext4 возможностей по шифрованию отдельных каталогов, а второй в
использовании команды "cryptsetup reencrypt" для прозрачного переноса ФС на
новый шифрованный раздел LUKS. В любом случае создание полной резервной копии
перед выполнением предложенных манипуляций обязательно.

Первый способ наиболее простой и безопасный, но он ограничен использованием
отдельных шифрованных каталогов, в которые можно перенести конфиденциальные
данные, требующие защиты. Шифрование в Ext4 поддерживается при использовании
как минимум ядра Linux 4.1 и утилит 2fsprogs 1.43.

Выставляем в суперблоке раздела  c ФС ext4 флаг поддержки шифрования (в нашем случае /dev/sda1):

    sudo tune2fs -O encrypt /dev/sda1

Создаём каталог, в котором будут храниться зашифрованные данные текущего пользователя:

    mkdir -p /secret/home/user
  
Генерируем случайную salt-последовательность для последующего шифрования и
сохраняем её в отдельный файл:

    echo 0x`head -c 16 /dev/urandom | xxd -p` > /home/user/.crypt_salt
 

Создаём на базе данной salt-последовательности ключ для шифрования, указав для него пароль:

    e4crypt add_key -S /home/user/.crypt_salt

    Enter passphrase (echo disabled):
    Added key with descriptor [f467134ca2c48c33]

Проверяем добавление ключа командой "keyctl show", которая поставляется в пакете keyutils.

  
Активируем шифрование для каталога /secret/home/user, указав выданный идентификатор ключа:

    e4crypt set_policy f467134ca2c48c33 /secret/home/user

Если после перезагрузки попытаться обратится к каталогу /secret/home/user без
добавления ключа командой "e4crypt add_key", его содержимое будет показано в
зашифрованном виде. Для расшифровки каталога при каждой загрузке необходимо
настроить повторный вызов команды add_key для привязки ключа.
   
   e4crypt add_key -S /home/user/.crypt_salt

   Enter passphrase (echo disabled):
   Added key with descriptor [f467134ca2c48c33]

Для просмотра привязанного к каталогу ключа можно использовать команду

   e4crypt get_policy /secret/home/user



В случае необходимости шифрования всего содержимого можно использовать LUKS
cryptsetup для шифрования имеющегося раздела без потери данных.

Отмонтируем шифруемый раздел (при изменении корневого раздела нужно загрузиться
с отдельного live-дистрибутива), проверяем целостность ФС и уменьшаем размер ФС
для того, чтобы разместить заголвки LUKS на диске (в ФС должно быть достаточно
свободного места):

   e2fsck -f /dev/sda4
   resize2fs /dev/sda4 размер_меньше_текущего_на_32МБ

Шифруем содержимое имеющегося раздела без потери информации:
   
   cryptsetup reencrypt --encrypt /dev/sda4 --reduce-device-size 32M
   
Открываем раздел:

   cryptsetup open /dev/sdXY home
  
Увеличиваем размер ФС до свободной границы

   resize2fs /dev/mapper/home

Монтируем раздел:
   
    mount /dev/mapper/home /mnt/home

Смотрим UUID:

   blkid /dev/mapper/home 

Добавляем информацию о разделе в /etc/crypttab

   home UUID=UUID_устройства_LUKS none
 
Ключи: luks, cryptsetup, reencrypt, ext4 / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Шифрование, PGP

[an error occurred while processing this directive]

[an error occurred while processing this directive]