Шифрование файлов и папок в Ubuntu: GnuPG и Gnome Encfs Manager

TL;DR
Шифрование на Linux необходимо так же, как и на других платформах. В этой статье показаны два рабочих подхода для Ubuntu: шифрование отдельных файлов с помощью GnuPG (симметрично и асимметрично) и создание зашифрованных папок (stash) с помощью Gnome Encfs Manager. Также даются рекомендации по паролям, резервным копиям, альтернативам и процедурам восстановления.
Внимание: шифрование защищает данные от посторонних, но не заменяет резервное копирование и защиту от вредоносных программ.
Зачем шифровать файлы и папки на Linux
Шифрование гарантирует, что даже при физическом доступе к диску или при краже файлов никто не сможет прочитать ваши данные без ключа или пароля. Это важно для:
- личных документов и фотографий;
- рабочих конфиденциальных данных;
- переносных носителей (USB, внешние диски);
- облачного хранения (Dropbox, Google Drive и т.д.).
Краткое определение: шифрование — преобразование данных в вид, непригодный для чтения без ключа или пароля.
Что будет рассмотрено
- установка и базовое использование GnuPG для шифрования файлов;
- настройка алгоритма шифрования по умолчанию;
- шифрование и расшифровка отдельных файлов (симметрично и кратко — асимметрично);
- создание и управление зашифрованными папками с помощью Gnome Encfs Manager (GencfsM);
- советы по надёжным паролям, резервному копированию ключей и реагированию на потерю пароля;
- альтернативные инструменты и матрица выбора.
Часть 1 — Шифрование и расшифровка файлов с помощью GnuPG
GnuPG (GPG) — свободная реализация стандарта OpenPGP (Pretty Good Privacy). Она позволяет шифровать, расшифровывать и подписывать файлы. В большинстве дистрибутивов Ubuntu GnuPG уже установлен, но ниже приведены команды на случай, если его нет.
Установка GnuPG
Откройте Терминал (Ctrl + Alt + T) и выполните:
sudo apt install gnupg2Если GnuPG уже установлен, система сообщит об этом.
Как выбрать алгоритм шифрования по умолчанию
GnuPG поддерживает несколько блочных шифров. В версиях GnuPG 2.1+ по умолчанию стоит AES128, но многие предпочитают повысить уровень до AES256.
Посмотреть доступные алгоритмы и версию GnuPG можно командой:
gpg2 --versionЕсли вы хотите изменить алгоритм по умолчанию, откройте (или создайте) файл конфигурации:
gedit ~/.gnupg/gpg.confДобавьте строку:
cipher-algo AES256Сохраните файл и закройте редактор. Теперь при симметричном шифровании будет использован AES256 по умолчанию.
Симметричное шифрование файла (один пароль для шифрования и расшифровки)
Симметричное шифрование удобно, когда вы шифруете файлы для собственного использования или когда обмен ключами не нужен.
Пример: у нас есть файл
~/Documents/PrivateFiles/MyPrivateFile.txtШифрование (с указанием алгоритма явно):
gpg --symmetric --cipher-algo AES256 ~/Documents/PrivateFiles/MyPrivateFile.txtИли, если вы прописали cipher-algo в gpg.conf:
gpg --symmetric ~/Documents/PrivateFiles/MyPrivateFile.txtGnuPG создаст файл с расширением .gpg: MyPrivateFile.txt.gpg. Оригинал следует удалить или безопасно стереть после создания зашифрованной копии.
Чтобы указать имя результирующего файла, используйте опцию -o:
gpg -o MyPrivateFile.enc --symmetric ~/Documents/PrivateFiles/MyPrivateFile.txtВвод и рекомендации по паролю
При симметричном шифровании GnuPG попросит ввести passphrase (пароль) дважды. Правила хорошего пароля:
- длина не менее 12–16 символов;
- комбинируйте слова, цифры и символы, либо используйте фразу-пароль (passphrase) из нескольких слов;
- храните пароль в менеджере паролей (KeePassXC, Bitwarden и т.д.);
- не используйте тот же пароль, что и для почты или облачных сервисов.
Расшифровка файла
Чтобы расшифровать файл и записать результат в конкретный файл:
gpg -o ~/Documents/PrivateFiles/DecryptedFile.txt -d ~/Documents/PrivateFiles/MyPrivateFile.txt.gpgКоманда -d (или –decrypt) попросит ввести пароль и произведёт расшифровку. Если не указать -o, расшифрованный текст будет выведен в STDOUT (терминал).
Важно: если вы работаете в публичном месте, не выводите расшифрованный текст в терминал — лучше сразу перенаправляйте в файл с помощью -o.
Асимметричное шифрование (коротко)
Асимметричное шифрование использует пару ключей: публичный и приватный. Публичный ключ шлётся получателю, приватный остаётся у владельца.
Создание пары ключей:
gpg --full-generate-keyШифрование для конкретного получателя (по публичному ключу):
gpg --encrypt --recipient 'Имя Получателя' file.txtАсимметричное шифрование удобно при обмене данными с другими людьми. Однако для локальных задач часто достаточно симметричного шифрования.
Часть 2 — Шифрование папок с помощью Gnome Encfs Manager (GencfsM)
Если нужно зашифровать набор файлов и папок и легко монтировать/отмонтировать их как «контейнер», Gnome Encfs Manager предоставляет удобный графический интерфейс поверх EncFS.
EncFS создаёт «stash» — зашифрованную директорию, которую можно монтировать как виртуальный диск. GencfsM управляет несколькими stash’ами, автозагрузкой и настройками.
Установка Gnome Encfs Manager
Откройте Терминал и добавьте PPA:
sudo add-apt-repository ppa:gencfsm
sudo apt-get update
sudo apt-get install -y gnome-encfs-managerЕсли при установке появится предупреждение о безопасности EncFS (результат аудита 2014 года), прочитайте предупреждение и примите решение разумно: для множества задач EncFS остаётся практичным, но для максимальных требований безопасности рассмотрите альтернативы (см. раздел «Альтернативы»).
Создание зашифрованной директории
Возможно, потребуется выйти из учётной записи и войти снова, чтобы увидеть иконку приложения.
Запустите Gnome Encfs Manager из меню приложений (введите encfs в поиске). Нажмите плюсик, чтобы создать новый stash.
- Directory or drive to encrypt or import — укажите путь к каталогу, где будет храниться зашифрованная версия (обычно это папка с зашифрованными файлами «на диске»).
- Mount directory — укажите, куда будет монтироваться расшифрованный вид stash (эта папка будет видна в файловом менеджере как обычная папка).
Важно: Directorу to encrypt и Mount directory должны отличаться.
Введите надёжный пароль дважды и нажмите Create. После создания stash автоматически монтируется — скопируйте или создайте в нём файлы, чтобы они оказались зашифрованы на диске.
Если вы выбираете уже существующую директорию для шифрования, файлы внутри неё не будут автоматически зашифрованы — создайте новый stash и переместите файлы в него.
Монтирование и отмонтирование
Чтобы закрыть доступ к содержимому stash (и тем самым сделать данные нечитаемыми на диске), отмонтируйте stash — снимите флажок Mounted в окне приложения или используйте меню в трее. При отмонтированном stash файлы на физическом носителе останутся в зашифрованном виде.
Настройки и удаление stash
Каждый stash можно настроить отдельно (кнопка шестерёнки). Также можно удалить stash из менеджера или удалить сами зашифрованные данные с диска. Для окончательного удаления выберите Delete the stash from disk и подтвердите, что понимаете риск потери данных.
Практические рекомендации и сценарии использования
Безопасное удаление оригиналов
После создания зашифрованной копии оригинальные файлы следует удалить и перезаписать (secure wipe). В Linux можно использовать shred или специализированные утилиты, но для SSD перезапись не всегда гарантирует удаление по причине wear leveling. В случае SSD рассмотрите использование полного шифрования диска или аппаратного шифрования.
Пример безопасного удаления файла (shred):
shred -u -v -z ~/Documents/PrivateFiles/MyPrivateFile.txtГде:
- -u — удалить файл после перезаписи;
- -v — подробный режим;
- -z — добавить финальную запись нулями.
Резервные копии и ключи
- Для асимметричного шифрования экспортируйте приватный ключ и храните его в безопасном месте (аппаратный токен, зашифрованный резервный диск).
gpg --export-secret-keys --armor 'Ваше Имя' > private-key.asc- Для симметричного шифрования храните пароль в менеджере паролей или в физически безопасном месте.
- Регулярно делайте резервные копии зашифрованных данных и проверяйте, что резервные копии можно расшифровать.
Автоматизация для power users
Скрипт для шифрования каталога с созданием архива и удалением исходников (пример):
#!/bin/bash
SRC=~/Documents/PrivateFiles
TMP=/tmp/private_archive.tar.gz
gpg_out=~/Documents/PrivateFiles/private_archive.tar.gz.gpg
tar -czf "$TMP" -C "$SRC" .
if [ $? -ne 0 ]; then
echo "Ошибка архивации"
exit 1
fi
gpg --batch --yes --symmetric --cipher-algo AES256 -o "$gpg_out" "$TMP"
if [ $? -eq 0 ]; then
shred -u "$TMP"
echo "Готово: $gpg_out"
else
echo "Шифрование не удалось"
fiЭтот скрипт создаёт tar.gz, шифрует его и удаляет временный файл.
Когда EncFS нежелателен: контрпримеры и ограничения
- Аудит 2014 года показал потенциальные уязвимости EncFS. Эти уязвимости затрагивают в основном метаданные и специфические сценарии атаки, но могут иметь значение в высокосекретных окружениях.
- EncFS не даёт тот же уровень защиты, что LUKS — механизм блочного шифрования дисков. Для полной защиты данных на устройстве лучше использовать LUKS (полное шифрование раздела).
- Для облака: если нужен переносимый результат, рассмотрите использование rclone с опцией crypt или шифруйте файлы локально с помощью age или GnuPG перед загрузкой.
Альтернативные подходы и инструменты
Ниже приведён обзор популярных альтернатив с краткими рекомендациями.
- LUKS (dm-crypt) — блочное шифрование разделов и дисков. Лучший выбор для шифрования всего диска или раздела, включая swap. Требует перезагрузки и настройки при установке системы.
- VeraCrypt — контейнеры и шифрование разделов, кроссплатформенный (Windows, macOS, Linux). Полезен, если вам нужен совместимый контейнер между ОС.
- fscrypt — современный инструмент для файловой системы Ext4/XFS/F2FS; интегрируется с файловой системой и подходит для шифрования каталогов на уровне FS.
- eCryptfs — стек шифрования на уровне файловой системы (использовался раньше для домашнего каталога в Ubuntu), но имеет свои ограничения и считается устаревающим для новых проектов.
- age — современная и простая альтернатива GnuPG для симметричного и асимметричного шифрования файлов, с простым UX и безопасными практиками.
- rclone crypt — позволяет хранить зашифрованные файлы в облачных хранилищах и синхронизировать их.
Матрица выбора (условная):
- Нужно шифровать весь диск: LUKS;
- Нужен переносимый контейнер между ОС: VeraCrypt;
- Хотите простые зашифрованные файлы для локального использования: GnuPG / age;
- Нужно монтируемое зашифрованное хранилище с GUI: GencfsM (с пониманием рисков) или VeraCrypt;
- Нужна интеграция с файловой системой: fscrypt.
Руководство действий: ролевая чек-листа и SOP
Ниже краткие чек-листы для трёх ролей: домашний пользователь, системный администратор, журналист/правозащитник.
Роль: домашний пользователь
- Установить GnuPG (если нет).
- Настроить cipher-algo AES256 в ~/.gnupg/gpg.conf.
- Выбрать между шифрованием отдельных файлов (GPG) и контейнером (GencfsM/VeraCrypt).
- Создать надёжный пароль и сохранить в менеджере паролей.
- Сделать резервную копию зашифрованных файлов в другом физическом месте.
Роль: системный администратор
- Для ноутбуков сотрудников внедрить полный LUKS-шифрованный диск.
- Разработать политику управления ключами и восстановлением доступа.
- Обеспечить централизованное резервное копирование зашифрованных данных.
Роль: журналист/правозащитник
- Использовать асимметричное шифрование для обмена с источниками.
- Хранить приватные ключи на внешнем зашифрованном носителе или аппаратном токене.
- Проработать план экстренного уничтожения ключей и данных.
Процесс (SOP) для шифрования рабочей директории с GnuPG
- Проверить, установлен ли GnuPG.
- Настроить gpg.conf (cipher-algo AES256).
- Создать tar-архив директории.
- Зашифровать архив симметрично с сильной passphrase.
- Удалить исходные файлы и безопасно стереть временные файлы.
- Перенести .gpg на резервный носитель и проверить расшифровку.
Инцидентный план: потеря пароля или ключа
Если вы потеряли пароль для симметрично зашифрованного файла:
- Без пароля расшифровать файл невозможно — шифрование делает это непрактичным.
- Проверьте, есть ли резервная (незашифрованная) копия.
- Если резервной копии нет, попытки восстановления пароля возможны только методом перебора (brute-force). С сильной passphrase это практически невозможно.
Если потерян приватный ключ (асимметрия):
- Если ранее экспортировали приватный ключ в безопасное хранилище, импортируйте его.
- Если нет резервной копии приватного ключа, расшифровка данных, зашифрованных на этот ключ, будет невозможна.
Вывод: резервное копирование ключей и паролей — критически важный шаг.
Критерии приёмки (как проверить корректность шифрования)
- Создан зашифрованный файл (.gpg или .enc) и отсутствует в явном виде незашифрованный файл.
- Расшифровка выполняется успешно с использованием указанной пароли/ключа и результат соответствует оригиналу.
- Резервная копия зашифрованного файла доступна и проходит тест расшифровки.
- Для контейнеров: монтирование и отмонтирование stash корректно скрывает содержимое и имена файлов при отмонтированном состоянии.
Тестовые сценарии и кейсы приёмки
- Шифрование и расшифровка небольшого текстового файла.
- Шифрование большого файла (несколько GB) и проверка целостности после расшифровки.
- Монтирование stash, помещение файлов, отмонтирование и проверка, что на диске содержимое зашифровано.
- Перенос зашифрованного файла между машинами и успешная расшифровка на другой машине.
- Попытка расшифровки с неверным паролем — убедиться, что содержимое недоступно.
Безопасность и усиление защиты
- Используйте менеджеры паролей для хранения passphrase.
- Для критичных задач используйте аппаратные средства хранения ключей (YubiKey, аппаратный HSM).
- Настройте двухфакторную аутентификацию там, где это возможно, но помните: 2FA не защищает сами зашифрованные файлы — он защищает доступ к сервисам.
- Обновляйте пакеты безопасности и следите за advisories для используемых инструментов (EncFS, GnuPG).
Приватность и соответствие требованиям (GDPR и прочее)
Шифрование помогает выполнить требования защиты персональных данных: если данные зашифрованы и ключи хранятся отдельно, утечка зашифрованных файлов может не подпадать под обязательство о раскрытии инцидента в некоторых юрисдикциях. Однако это нужно проверять с юридическим отделом: шифрование — один из элементов защиты, но не заменяет соблюдение политик доступа и уведомлений.
Быстрый словарь терминов (1 строка каждая)
- Симметричное шифрование — один и тот же пароль используется для шифрования и расшифровки.
- Асимметричное шифрование — пара ключей (публичный/приватный) для шифрования и расшифровки.
- Stash — зашифрованный контейнер/директория в EncFS.
- LUKS — механизм блочного шифрования для Linux.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужно шифровать данные?] --> B{Что нужно защитить?}
B --> |Один файл или несколько файлов| C[GnuPG или age]
B --> |Много файлов, монтируемая папка| D{Контейнер или блочное шифрование}
D --> |Переносимость между ОС| E[VeraCrypt]
D --> |Только Linux, полный диск| F[LUKS]
D --> |Быстрый GUI для папки| G[Gnome Encfs Manager 'с оговорками']
C --> H[Резервное копирование и хранение пароля]
E --> H
F --> H
G --> HЧастые ошибки и как их избежать
- Хранить пароль рядом с зашифрованными файлами — недопустимо.
- Не иметь резервной копии ключа/пароля.
- Вывод расшифрованных данных в терминал в общественном месте.
- Использование устаревших алгоритмов или инструментов без обновлений.
Заключение
Шифрование файлов и папок в Ubuntu доступно как через консольные инструменты (GnuPG), так и через GUI-утилиты (Gnome Encfs Manager). Для большинства задач безопасное симметричное шифрование GnuPG и контроль над паролями дают надёжную защиту. Если требуется монтируемая зашифрованная папка с удобным управлением, GencfsM — удобный вариант, но помните об ограничениях EncFS и подумайте о LUKS или VeraCrypt для более строгих сценариев.
Важные шаги: используйте сильные пароли, храните резервные копии ключей и проверяйте процессы расшифровки заранее.
Что дальше
Подумайте, какой уровень защиты требуется вам: локальное шифрование файлов для личного пользования или корпоративная система с управлением ключами. Начните с малого — зашифруйте пару тестовых файлов, настройте резервные копии и опробуйте сценарий восстановления.
Спасибо за прочтение. Какие инструменты вы используете для шифрования на Linux? Поделитесь опытом и вопросами.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone