Не так давно я утверждал, что для большинства пользователей шифрование на уровне файлов является достаточно безопасным и намного более эффективным, чем шифрование всего диска. Я получил гораздо меньше возражений, чем ожидал, за выражение этой неортодоксальной точки зрения — я имею в виду, что на самом деле не получил ни одного. Напротив, некоторые читатели присылали сообщения и комментарии, выражающие любопытство и желание попробовать шифрование на уровне файлов.
Это стало неожиданностью. Я не был уверен, сколько людей захотят применить шифрование на уровне файлов на практике, и я представил, что те, кто это сделает, выберут менее трудный путь установки дистрибутива, такого как Linux Mint, который предлагает это как флажок в меню. ]
Вот почему я оставил свои аргументы почти полностью в области теории. Мне было больше интересно оспорить принятую модель с недостаточно представленной альтернативой. Теоретический подход подходил для этого упражнения, в то же время оставляя реализацию на усмотрение тех, кто достаточно смел, чтобы применить теорию на практике. В конце концов, Linux позволяет делать то, что вы хотите, и я не собирался никому рассказывать, что это может быть.
Но теперь, когда я заметил интерес к настройке шифрования на уровне файлов, я хотел внести эту часть в качестве демонстрации одного из способов, которые широко доступны для пользователей настольных компьютеров Linux. Я настроил шифрование на уровне файлов с помощью установщика графического интерфейса моего дистрибутива, но не у всех есть такая возможность. Итак, чтобы предложить подобную схему шифрования как можно большему количеству пользователей, я покажу вам, как использовать fscrypt для создания зашифрованной файловой системы.
Имейте в виду, что для этого потребуется переделать командную строку и выполнить частичную или полностью ручную установку операционной системы. Если вам это не нравится, вы, вероятно, захотите передать это. К счастью, есть графические решения, которые можно применить после установки системы.
Разблокировка мощи внутри
Итак, что такое fscrypt?
Fscrypt — это инструмент, который представляет собой простой интерфейс командной строки для настройки шифрования, встроенного в расширение 4 (чаще всего «ext4» ) файловая система. Это не сам по себе алгоритм шифрования, а посредник между пользователем и собственным шифрованием ext4. Цель fscrypt — расшифровать таинственные заклинания шифрования ext4 в нечто понятное для Linux среднего уровня.
Несмотря на свою простоту, fscrypt предлагает несколько режимов конфигурации. Во-первых, он может зашифровать любой каталог, защищая все файлы и подкаталоги внутри. Эта защита скрывает как имена файлов, так и данные всего его содержимого, когда оно заблокировано
Во-вторых, и наиболее привлекательным для тех, кто ищет ненавязчивую безопасность, является то, что пользователи могут настроить автоматическое дешифрование при вводе пароля пользователя. Вместо того, чтобы получать второе, отдельное приглашение для дешифрования вместе с приглашением для входа в систему, процесс регистрации выполняет дешифрование.
Запустите свои терминалы!
Основной план игры здесь довольно прост. Сначала вы включаете шифрование в желаемых файловых системах ext4. Во-вторых, вы устанавливаете fscrypt. В-третьих, вы редактируете файлы конфигурации PAM, чтобы связать процесс дешифрования с паролем вашей учетной записи.
Краткое замечание о PAM: это то, что обеспечивает соблюдение принципов доступа к учетной записи Unix в вашей системе Linux. В его обязанности входит отделение пользователей от учетных записей root и предоставление каждой учетной записи соответствующих разрешений. Наконец, вы включаете fscrypt в файловой системе.
Прежде чем продолжить, я должен сделать несколько оговорок.
Сначала следующие шаги были выполнены в Arch Linux по двум причинам. Во-первых, документация по fscrypt, к которой я обращался, была взята из Arch Wiki, поэтому они, естественно, будут работать наиболее плавно в Arch Linux. Информация, найденная в Arch Wiki, часто идеально подходит для других дистрибутивов, но не всегда идеально подходит. Во-вторых, установка Arch Linux выполняется по частям с нуля. Поскольку пользователь выполняет каждый шаг вручную, он может легко останавливаться и вставлять дополнительные команды между шагами, как того требует установка fscrypt.
Не все установщики Linux с графическим интерфейсом пользователя позволяют приостановить процесс для настройки новой ОС, но только возвращают управление, когда он полностью завершен. Например, fscrypt работает только с пустым каталогом пользователя, и установщики графического интерфейса большинства дистрибутивов автоматически заполняют их (например, каталогами типа «Documents») во время установки.
Кроме того, как следует из вышесказанного, я выполняю шифрование во время установки. Таким образом, это руководство не будет полностью применимо при включении fscrypt после установки. Есть способы сделать это, но они более громоздкие. Итак, если вы читаете это руководство, я рекомендую вам последовать его примеру и настроить fscrypt во время установки.
Независимо от того, какой дистрибутив я бы выбрал для демонстрации fscrypt, он всегда будет работать иначе, чем что-то другое, используемое кем-то другим. Учитывая, что установка Arch Linux будет более или менее похожа на установку дистрибутива, предпочитаемого каждым пользователем, вам придется выполнить перевод между ними.
Если вы используете дистрибутив DIY, такой как Arch Linux или Debian, вы сможете запускать все на нужном звене в цепочке. Я знаю, что графические установщики Ubuntu и Linux Mint позволяют выполнять некоторые действия вручную в определенных точках, но я не могу говорить о большинстве дистрибутивов. Просто убедитесь, что вы знаете свой дистрибутив и то, что он допускает во время установки.
Наконец, это пошаговое руководство покажет вам только, как зашифровать домашний каталог для одной непривилегированной учетной записи пользователя. Я выбрал это, потому что это согласуется с тем, что я отстаивал в своей работе с шифрованием на уровне файлов. Не нужно много времени, чтобы адаптировать процесс для шифрования другого каталога, просто помните о цели здесь.
Одно примечание о моей нотации: любая синяя курсивная часть команды означает, что выбранный текст не является буквальным, и вместо этого вы должны указать текст, соответствующий вашей ситуации.
Итак, перейдем к делу.
После того как вы разбили диск и создали файловую систему ext4, вам нужно будет включить собственное шифрование ext4. Однако перед этим дважды проверьте правильность установки размера блока файловой системы с помощью следующих команд.
# tune2fs -l раздел | grep «Размер блока»
# getconf PAGE_SIZE
Если выходные данные совпадают, все в порядке. Затем просто выполните команду ниже, чтобы активировать шифрование.
# tune2fs -O encrypt partition
С этого момента завершите установку базовой системы как обычно для создания загрузочной системы, но без оконного менеджера или среды рабочего стола, а только с учетной записью root (т.е. без учетных записей непривилегированных пользователей).
Когда это будет завершено, загрузитесь в систему и установите fscrypt. Это должен быть самый простой шаг, так как он просто устанавливается из диспетчера пакетов. Вы сможете найти его в репозитории по умолчанию вашего дистрибутива, но если нет, вы можете собрать его из исходного кода. К счастью, мне не пришлось этого делать.
Теперь мы начинаем настраивать fscrypt. Чтобы начать работу, выполните приведенную ниже команду.
# fscrypt setup
Это создает файл конфигурации /etc/fscrypt.conf и каталог /.fscrypt.
Если ваша файловая система не смонтирована в корневом каталоге, например, если у вас есть / home на отдельном разделе, вам также необходимо запустить это.
# fscrypt setup mount_point
В этой точке монтирования создается каталог .fscrypt.
Затем вам необходимо настроить PAM для работы с модулем fscrypt, чтобы ваш пароль для входа автоматически расшифровывал вашу зашифрованную файловую систему. Файлы PAM привередливы, поэтому будьте очень осторожны, чтобы точно следовать этим шагам. Вам нужно добавить правильные строки к нужным файлам и в правильном порядке.
В файле /etc/pam.d/system-login добавьте следующее в конец раздела «auth».
auth optional pam_fscrypt.so
Добавьте эту строку в том же файле в конце раздела «сеанс».
сеанс необязательный pam_fscrypt.so drop_caches lock_policies
Затем в файле /etc/pam.d/passwd добавьте следующее в конец файл.
пароль необязательно pam_fscrypt.so
Выполнив всю настоящую подготовительную работу, вы, наконец, можете создать свою целевую учетную запись пользователя и зашифровать ее домашний каталог (т. е. каталог в каталоге / home, названный в честь вашей учетной записи пользователя и принадлежащий ей).
Перейдите в каталог / home и создайте пустой каталог для целевого пользователя.
# mkdir имя пользователя
Это должно совпадать с именем, которое вы собираетесь дать своей учетной записи . Кстати, используйте команду ниже, чтобы создать пользователя, каталог которого вы только что создали.
# useradd имя пользователя -d / home / имя пользователя
Однако ваша учетная запись еще не готова. Вам нужно будет установить пароль этого пользователя, так как по умолчанию он пуст, и fscrypt предложит вам завершить связь между паролем для входа и паролем для дешифрования.
# passwd имя пользователя
Вам также необходимо предоставить вашей новой учетной записи право владения каталог, поскольку в настоящее время он принадлежит учетной записи root, которая его создала.
# chown имя пользователя : группа пользователей / home / имя пользователя
Пока вы здесь, вы можете также проверить, не были ли файлы или каталоги помещены в каталог нового пользователя — путь fscrypt должен быть ясен.
Теперь вы можете фактически зашифровать каталог вашего пользователя, что вы делаете с помощью этой команды.
# fscrypt encrypt / home / имя пользователя ‐‐user = имя пользователя
Откроется диалоговое окно конфигурации. При запросе типа предохранителя выберите вариант использования пароля для входа. Когда подсказки завершатся, проверьте статус вашего зашифрованного каталога, чтобы убедиться, что PAM правильно подключен, выполнив команду ниже.
# fscrypt status / home / имя пользователя
Если в статусе «Разблокировано» указано «Да» тогда вам все ясно. В противном случае что-то пошло не так.
После всего этого вы сможете без проблем выйти из учетной записи root и войти в своего нового пользователя. При следующей загрузке вы не получите запроса на расшифровку перед входом в учетную запись, потому что шифрование применяется не на уровне раздела, а на уровне файла. Ваш логин будет выглядеть и ощущаться так же, как если бы ваши файлы не были зашифрованы. Но они есть.
Поздравляем! Теперь вы наслаждаетесь высокопроизводительными вычислениями с бесшовной современной защитой шифрования.