Все, что связано с форексом


    Шифрование жесткого диска в Linux при помощи dm-crypt

    Поделиться
    avatar
    Admin
    Admin

    Сообщения : 2628
    Дата регистрации : 2011-03-09
    Откуда : МИР

    Шифрование жесткого диска в Linux при помощи dm-crypt

    Сообщение автор Admin в Пн Янв 30, 2017 11:05 pm

    После перехода на Arch Linux у меня возникла проблема выбора решения для шифрования домашнего каталога. Отсутствие шифрования — не вариант, потому что как минимум ноутбук могут украсть. Мне не хочется потом в панике бегать менять пароли и сбрасывать сессии на всех сайтах, от которых утекли куки. Сначала я попробовал encfs. Но это решение быстро потеряло все мои данные (не говоря уже про известную проблему с длинными именами файлов), поэтому от него пришлось отказаться. На Reddit многие посоветовали dm-crypt, на нем я в итоге и остановился.

    Примечание: Если вы читали более раннюю статью Шифрование жесткого диска во FreeBSD с помощью geli, вам может быть интересно узнать, что dm-crypt — решение полностью аналогичное, только команды называются по-другому. Еще из достойных альтернатив, пожалуй, стоит обратить внимание на VeraCrypt, актуальный нынче форк знаменитого TrueCrypt.

    Итак, создаем файл размером 200 Гб под зашифрованный диск:


    sudo truncate -s 200G /home/.eax
    sudo chown eax:eax /home/.eax


    Создаем loop-устройство:


    sudo losetup /dev/loop0 /home/.eax

    Инициализируем зашифрованный диск (потребуется дважды ввести пароль):


    sudo cryptsetup -h sha256 -c aes-xts-plain64 \
    -s 512 luksFormat /dev/loop0


    Открываем зашифрованный диск:


    sudo cryptsetup luksOpen /dev/loop0 eax_home

    В результате появится устройсто /dev/mapper/eax_home. Создаем на нем ФС:


    sudo mkfs.ext4 /dev/mapper/eax_home

    Монтируем зашифрованный диск:


    sudo mount /dev/mapper/eax_home /mnt

    Меняем права на файловой системе:


    sudo chown -R eax:eax /mnt

    Копируем содержимое нашего домашнего каталога. Затем отмонтируем зашифрованный диск:


    sudo umount /mnt

    Закрываем зашифрованный диск:


    sudo cryptsetup luksClose eax_home

    Отсоединяем loop-устройство:


    sudo losetup -d /dev/loop0

    Теперь архивируем и удаляем содержимое /home/eax, затем монтируем в него зашифрованный диск. Если все работает нормально — удаляем бэкап.

    Скрипт /home/mount.sh для автоматизации монтирования:


    #!/bin/sh

    set -e

    losetup /dev/loop0 /home/.eax
    cryptsetup luksOpen /dev/loop0 eax_home
    mount /dev/mapper/eax_home /home/eax


    Скрипт /home/umount.sh, выполняющие обратные действия:


    #!/bin/sh

    set -e

    umount /home/eax
    cryptsetup luksClose eax_home
    losetup -d /dev/loop0


    Когда оригинальных данных на диске не осталось, можно заполнить свободное место мусором:


    cd /home
    # наберитесь терпения, это надолго (особенно без rng-tools!)
    sudo dd if=/dev/urandom of=./random.tmp bs=10M count=6300
    sync
    sudo rm random.tmp


    Наконец, чтобы временные файлы (те же черновики электронных писем, создаваемые Mutt) писались на зашифрованный раздел, в ~/.bashrc следует дописать:


    export TMPDIR=/home/eax/temp
    mkdir -p $TMPDIR


    Также с помощью dm-crypt можно зашифровать вообще всю файловую систему целиком, но это уже тема для отдельной статьи.




    http://eax.me/dm-crypt/

      Текущее время Пн Дек 18, 2017 3:03 am