Чем зашифровать папку линукс

Шифрование файлов и папок в Linux

В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации — шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.

В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов — GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.

Утилита GPG

Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:

$ gpg опции файл параметры

Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:

  • -h — вывести справку по утилите;
  • -s, —sign — создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
  • —clearsign — подписать незашифрованный текст;
  • -e, —encrypt — зашифровать данные, с помощью ключа;
  • -с, —symmetric — зашифровать данные, с помощью пароля;
  • -d, —decrypt — расшифровать данные, зашифрованные с помощью ключа или пароля;
  • —verify — проверить подпись;
  • -k, —list-keys — вывести доступные ключи;
  • —list-sigs — вывести доступные подписи;
  • —fingerprint — вывести все ключи вместе с их отпечатками;
  • —delete-key — удалить ключ;
  • —delete-secret-key — удалить секретный ключ;
  • —export — экспортировать все ключи;
  • —export-secret-keys — экспортировать все секретные ключи;
  • —import — импортировать ключи;
  • —send-keys — отправить ключи на сервер, должен быть указан сервер ключей;
  • —recv-keys — получить ключи от сервера ключей;
  • —keyserver — указать сервер ключей;
  • —fetch-keys — скачать ключи;
  • —gen-key — создать ключ;
  • —sign-key — подписать ключ;
  • —passwd — изменить пароль для ключа.

А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.

Шифрование файлов с помощью пароля

Симметричный шифр — самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:

Утилита создаст файл с расширением gpg. Для расшифровки используйте:

Шифрование с использованием ключей

Асимметричный шифр более надежный так как для шифрования используется два ключа — публичный, собственно для шифрования, которым может воспользоваться любой, и приватный — для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.

Читайте также:  Linux mint which desktop

Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:

Программа задаст ряд вопросов для настройки ключа:

Выберите требуемый тип ключа.

Выберите нужный размер для ключа, обычно 2048 будет достаточно.

Выберите строк действия для ключа.

Проверьте все ли правильно.

Введите имя нового ключа, фактически, это имя пользователя, но вы будете использовать его чтобы зашифровать файл linux, поэтому выбирайте обдумано.

Описание ключа, если нужно.

Финальная проверка, затем нажмите O для завершения.

Процесс генерации может занять некоторое время. Когда все будет готово в каталоге ~./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.

Также вы можете посмотреть список доступных ключей:

Если вы собираетесь шифровать файлы на другом компьютере необходимо экспортировать публичный ключ, для этого есть опция -а:

gpg -a -o gpgkey.asc —export имя_ключа

Затем передаем файл на целевое устройство и импортируем ключ:

После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:

Для выбора уровня доверия введите команду trust:

Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.

Теперь можно переходить к шифрованию. Для того чтобы зашифровать файл linux используйте команду:

gpg -e -r ид_пользователя имя_файла

Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:

Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:

tar -cf — каталог | gpg -e -r ид_пользователя

gpg -d каталог.gpg | tar -xvf

Подписи и шифрование

Для проверки подлинности файлов может использоваться не шифрование, а подпись. Тогда на основе файла и ключа создается отпечаток, который записывается в файл. Если файл будет изменен, то отпечаток уже не совпадет.

Вы можете подписать файл с помощью опции —sign:

Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:

Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:

gpg —verify textfile.sig textfile

Если файл был изменен, то вы увидите, что подпись не сходиться.

Выводы

В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!

Читайте также:  Удаление тем linux mint

На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Шифрование домашней папки на Linux с помощью fscrypt

Не так давно, по случаю, мне достался ноутбук. Скончался от болезни человек, с которым я был в хороших отношениях. Спустя какое то время родственники приятеля начали распродавать и раздавать имущество умершего. Мне отдали ноутбук. Ноут Acer, не особо новый и не дорогой, особой ценности не представляет, отдали бесплатно. Но попросили по возможности достать оттуда данные — старые фото и видео на память. На ноутбуке установлена десятка и учетка с паролем, которого никто не знал. Делаю загрузочную флешку, цепляю съемный диск. Готово. В процессе копирования посмотрел, что еще есть на диске. Текстовые файлы с паролями, профиль браузера, какая то рабочая документация, личные заметки и т.д. Ненужно и не интересно. Фото и видео отдал родственникам. Диск отформатировал. Ноут в кладовку.

Но в процессе ковыряния ноутбука, у меня появилась мысль. А хотелось бы мне, что бы в подобной ситуации кто то, так же лазил в моем ноутбуке. Нет, мне бы очень этого не хотелось. Несмотря на то, что там нет чего-то компрометирующего и критически важного для меня и моих близких. Все равно нет. Не приятно. А с учетом того, что мой ноутбук всегда и везде со мной. То я могу его где то забыть, потерять да и банальную кражу тоже никто не отменял. И если за свой телефон и планшет по этому поводу я не переживал, все таки там биометрия и шифрование, то ноутбук давал мне повод для беспокойства. Шифрования у меня там не было.

А так как последние лет десять я сидел под ubuntu то меня заинтересовало, а как там дела с шифрованием обстоят в linux.

Сразу оговорюсь. В первую очередь меня интересовала защита от случайных людей — сотрудников сервисных центров и мастерских, мамкиных хакеров и различных домашних аникейщиков. У меня нет задачи противостоять сотрудникам спецслужб, международным криминальным организациям и специалистам по криптографии. До этого, два раза, у меня был лайтовый опыт общения со следователями по уголовным делам и по этому, на свой счет, я иллюзий не испытываю.

У меня установлена ubuntu 22.04 и все манипуляции я проводил на ней. Но я думаю, что эта инструкция подойдет и к любым другим дистрибутивам. Каких то специфических, дистрибутив зависимых вещей там нет.

Итак, начал разбираться. Основной способ шифрования который сейчас предлагает при установке ubuntu и другие, это шифрование всего диска с помощью LUKS + LVM. Мне он не подошел. Во первых я не хотел переустанавливать ОС и во вторых я не хотел целиком шифровать весь диск. Для меня это слишком избыточный метод, я хотел шифровать только свою домашнюю папку. Хотя я знаю, что сейчас это наиболее правильный метод для защиты данных.

Читайте также:  Linux файл конфигурации wifi

Далее по популярности шло использование eCryptFS. Этот способ до 2018 года тоже предлагался в ubuntu при установке. Затем Canonical по различным причинам отказался от него. На данный момент проект то ли поддерживается, то ли не поддерживается. До конца я так и не понял.

Поэтому я решил использовать fscrypt. Нативный метод шифрования для ext4. Разрабатывается и поддерживается google, используется в chromeOS и Android для шифрования. Ну, что еще надо.

Поверхностное гугление выдало пару инструкций. Но судя по комментариям после одной из них компьютер уходил в цикличную перезагрузку, ну а вторая просто не работала. Пришлось идти на гитхаб проекта и читать документацию.

Итак, если вы хотите зашифровать свою домашнюю папку с помощью fscrypt на уже установленной операционке с файловой системой ext4:

tune2fs -O encrypt /dev/ваш диск
apt install fscrypt libpam-fscrypt
  1. Создаем нового пользователя (например user1) и включаем его в группу sudo. Так как мы далее будем проводить манипуляции с нашей домашней папкой, то делать это лучше всего из под другого пользователя. Завершаем сеанс нашего основного пользователя (например user0) и заходим нашим новым пользователем (user1). Дальше все действия выполняем под ним.
  2. Настраиваем fscrypt
user1@laptop:# sudo fscrypt setup

будет создан конфигурационный файл

Created global config file at "/etc/fscrypt.conf".
Metadata directories created at "/.fscrypt"

на запрос создания файла метаданных в корне ./ нажимаем Y

5. Создаем новую домашнюю папку user0-new

user1@laptop:# sudo mkdir /home/user0-new
user1@laptop:# sudo fscrypt encrypt /home/user0-new --user=user0(ваш основной пользователь)
  1. В появившемся диалоге выбираем 1. Т.е для дешифровки папки будет использоваться ваш пароль для логина в системе. И вводим пароль вашего основного пользователя(user0)
The following protector sources are available: 1 - Your login passphrase (pam_passphrase) 2 - A custom passphrase (custom_passphrase) 3 - A raw 256-bit key (raw_key) Enter the source number for the new protector [2 - custom_passphrase]: 1 IMPORTANT: Before continuing, ensure you have properly set up your system for login protectors. See https://github.com/google/fscrypt#setting-up-for-login-protectors Enter login passphrase for user0: "user0-new" is now encrypted, unlocked, and ready for use. 
user1@laptop:#sudo cp -a -T /home/user0 /home/user0-new 
user1@laptop:# sudo mv user0 user0.backup 
user1@laptop:# sudo mv user0-new user0 

Все готово. Перезагружаемся и заходим вашим основным пользователем (user0). Если все нормально, то удаляем нового пользователя и папку с бекапом (user0.backup).

Источник

Оцените статью
Adblock
detector