Как зашифровать файлы в Linux с помощью Tomb

TL;DR
Tomb — лёгкий shell‑скрипт для шифрования файлов и папок в Linux без необходимости шифровать весь диск. Установите зависимости, распакуйте архив Tomb, создайте контейнер командой dig, сгенерируйте ключ forge, привяжите его lock и откройте open. Используйте slam для экстренного закрытия, resize для увеличения размера, index/search для поиска внутри открытых томбов.
Это руководство объясняет, как установить и использовать Tomb в Ubuntu и сходных дистрибутивах. Оно подходит для пользователей, которым нужно зашифровать отдельные файлы и папки, а не весь диск. Включены практические советы, шпаргалки по командам, сценарии при сбоях и рекомендации по безопасности.
О чём статья (intent и варианты)
- Основной запрос: Как зашифровать файлы в Linux с помощью Tomb
- Варианты: установка Tomb в Ubuntu, создание и открытие tomb, ключи‑изображения, расширение tomb, индексирование и поиск
Почему использовать Tomb для шифрования файлов в Linux
Tomb — это набор утилит (запускаемых как shell‑скрипты), который опирается на стандартные инструменты Linux: GnuPG для обработки криптографии, cryptsetup для создания зашифрованных контейнеров, dd для работы с образами и т. п. Благодаря этому Tomb не создаёт собственной закрытой среды: он интегрируется с системой и использует надёжные, поддерживаемые инструменты.
Ключевые преимущества:
- Локальная работа без необходимости устанавливать тяжёлые зависимости или иметь доступ в интернет.
- Можно шифровать только нужные файлы и папки, не затрагивая разделы операционной системы.
- Поддержка ключей‑файлов и ключей‑изображений для гибкой передачи доступа.
- Совместимость с пользовательскими shell‑скриптами и резервными решениями.

Важно: Tomb сам по себе — оболочка; безопасность зависит от настроек cryptsetup/GnuPG и от надёжности используемых ключей и паролей.
Что нужно знать в двух словах
- Tomb создаёт зашифрованный файл‑контейнер (например, first.tomb).
- Ключ (файл или изображение) привязывается к контейнеру: lock/forge/ bury.
- Open монтирует контейнер как файловую систему; close/slam отмонтируют и шифруют содержимое.
Установка Tomb в Ubuntu
Предварительные требования: убедитесь, что у вас установлены зависимые пакеты. В исходном материале приведена команда установки; обратите внимание на возможные опечатки и проверьте названия пакетов в репозитории вашего дистрибутива.
Оригинальная команда из источника (сохранена как есть):
sudo apt installzshfile gnupg cryptsetup pinentry-curses wgetmake steghide mlocateПримечание: в большинстве случаев команда должна выглядеть примерно так (исправленный пример):
sudo apt install zsh gnupg cryptsetup pinentry-curses wget make steghide mlocateДальше скачиваем архив Tomb (пример с сайта разработчика):
wget https://files.dyne.org/tomb/releases/Tomb-2.9.tar.gzРаспаковываем и устанавливаем:
tar xvzf ./Tomb-2.9.tar.gz
cd Tomb-2.9
sudomakeinstallКоманда make install по умолчанию скопирует исполняемые скрипты в /usr/local/bin и установит права. Проверьте установку командой:
man tomb
Важно: при установке из исходников проверяйте контрольные суммы и источник архива. Если вы работаете в среде с повышенными требованиями безопасности, соберите пакет в изолированной среде.
Создание первого tomb: базовый рабочий цикл
- Создаём контейнер фиксированного размера с помощью dig. Пример создания 100МБ контейнера:
tomb dig-s100 first.tombЭтот контейнер представляет собой файл‑образ, в котором будет создана зашифрованная файловая система.
- Генерируем ключ‑файл с помощью forge. Пример:
tomb forge -k first.tomb.keyForge потребляет энтропию системы. На виртуальных машинах или при недостатке энтропии генерация может быть медленной. Чтобы ускорить процесс, используйте локальную активность: движение мышью, ввод с клавиатуры, создание сетевого трафика и т. п.
- Привязываем ключ к контейнеру:
tomb lock -k first.tomb.key first.tomb- Открываем (монтируем) контейнер:
tomb open -k first.tomb.key first.tombПосле открытия Tomb попросит пароль (если ключ защищён паролем) и затем смонтирует контейнер как обычный раздел в системе. Вы сможете копировать туда файлы, изменять и удалять их как обычно.

Практическая заметка по ключам
- Ключ‑файл (first.tomb.key) — это бинарный файл. Храните его отдельно от контейнера.
- Можно использовать GnuPG для дополнительного шифрования ключа и для подписи обменных ключей.
Создание ключа‑изображения (bury)
Tomb поддерживает «прятание» ключа внутри изображения — это удобно для передачи доступа без явной пересылки пароля.
Создание ключа‑изображения (привязывает ключ к файлу‑изображению):
tomb bury -k first.tomb.key image.jpgПосле выполнения image.jpg будет содержать встроенные данные, которые Tomb способен использовать как ключ. Открыть контейнер с помощью изображения можно так:
tomb open -k image.jpg first.tombЗамечание по безопасности: изображение с встроенным ключом следует считать секретным — его утечка даст доступ к контейнеру. Используйте стеганографию и дополнительные меры защиты (шифрование файла‑изображения при передаче).

Закрытие и экстренное закрытие tomb
Обычное корректное закрытие выполняется командой:
tomb closeЭта команда пере‑шифрует данные, выполняет аккуратный отмонт и освобождает ресурсы.
Если приложение зависло или отмонт не проходит корректно, доступен принудительный режим:
tomb slamSlam немедленно закрывает все открытые tomb’ы. Используйте эту команду только в экстренных случаях: принудительное закрытие может привести к потере данных или повреждению файловой системы внутри контейнера.

Совет: перед slam попытайтесь завершить проблемные процессы через lsof/fuser и корректно отмонтировать точку монтирования.
Расширение и индексирование tomb
Если контейнер заканчивает место, его можно увеличить без создания нового тома.
Пример увеличения first.tomb с 100МБ до 1ГБ (в исходном материале размер указывается в мегабайтах — в команде используется -s1000):
tomb resize -k first.tomb.key -s1000 first.tombПосле изменения образа обычно требуется расширить файловую систему внутри контейнера (resize2fs для ext4 и т. п.). Tomb совместно с cryptsetup/resize2fs обеспечивает механизм увеличения размера, но обратное уменьшение (shrink) не поддерживается — единственный способ «уменьшить» размер — создать новый контейнер меньшего размера и перенести данные.
Индексирование и поиск по открытым tomb’ам
Чтобы ускорить поиск внутри всех открытых tomb’ов, создайте индекс:
tomb indexПоиск по индексированным объектам:
tomb search testЭтот вызов найдёт файлы, содержащие слово «test».

## Шпаргалка: самые важные команды Tomb
| Действие | Команда |
|---|---|
| Создать файл‑контейнер 100МБ | tomb dig -s100 first.tomb (dig-s100 в исходном примере) |
| Сгенерировать ключ | tomb forge -k first.tomb.key |
| Привязать ключ к контейнеру | tomb lock -k first.tomb.key first.tomb |
| Открыть контейнер | tomb open -k first.tomb.key first.tomb |
| Закрыть корректно | tomb close |
| Принудительно закрыть | tomb slam |
| Увеличить размер | tomb resize -k first.tomb.key -s1000 first.tomb |
| Индексировать | tomb index |
| Поиск | tomb search <термин> |
Примечание: некоторые примеры в исходной статье используют сокращённую форму опций (dig-s100). Всегда проверяйте справку man tomb на вашем дистрибутиве.
## Критерии приёмки
Чтобы считать, что вы правильно настроили и используете Tomb, выполните следующие проверки:
- Контейнер создаётся и имеет ожидаемый размер: ls -lh first.tomb
- Ключ успешно сгенерирован и хранится в безопасном месте: file first.tomb.key
- Tomb открывается и монтирует файловую систему: tomb open …; mount | grep tomb
- После close точка монтирования отсутствует и файл‑контейнер остаётся доступен: mount не показывает монтирования, файл присутствует
- Индексирование и поиск работают корректно: tomb index; tomb search <существующая строка>
## Контрольный список для администратора (роль‑ориентированный)
Для системного администратора:
- [ ] Убедиться, что установлены cryptsetup и gnupg
- [ ] Проверить права доступа к ключам: chmod 600 first.tomb.key
- [ ] Настроить мониторинг состояния /var/log/syslog на ошибки cryptsetup
- [ ] Создать резервную копию ключей (без хранения рядом с контейнером)
- [ ] Тестировать процедуру восстановления на стенде
Для рядового пользователя:
- [ ] Понимать, где хранится ключ и как его резервировать
- [ ] Уметь корректно закрывать tomb перед выключением
- [ ] Не загружать контейнеры с подозрительных источников
## Отладка и распространённые проблемы
Проблема: "Не открывается, ошибка при проверке подписи/ключа" — проверьте, что вы используете именно тот файл‑ключ, который был сгенерирован для данного контейнера. Проверьте целостность файла: sha256sum.
Проблема: "Мало энтропии при forge" — сгенерируйте дополнительную активность, установите rng-tools или haveged для подкачки энтропии.
Проблема: "Принудительное закрытие повредило данные" — восстановление возможно через fsck на распакованном контейнере после его временного монтирования в безопасном режиме. Плановый бэкап важен.
## Когда Tomb не подходит (контрпример)
- Если вам нужно шифровать весь диск (например, LUKS для системных разделов), то Tomb не заменит full‑disk encryption.
- Если требуются аппаратные модули HSM/TPM для хранения ключей: Tomb хранит ключи как файлы и не предоставляет встроенную поддержку HSM (хотя можно интегрировать через скрипты).
- Если вы ожидаете динамического уменьшения файла‑контейнера — Tomb не умеет «сжимать» образ обратно.
## Альтернативные подходы
- LUKS/cryptsetup — шифрование раздела/диска; лучше для систем, которые требуют защиты всего диска.
- eCryptfs — шифрование на уровне файловой системы (user space) с другой моделью управления ключами.
- VeraCrypt — кроссплатформенный инструмент с GUI, подходит для переносимых контейнеров.
## Безопасность и жёсткая практика
Рекомендации:
- Храните ключи отдельно от контейнеров и используйте файловую систему с ограниченным доступом (chmod 600).
- Рассмотрите использование GnuPG для дополнительной защиты ключей.
- Регулярно делайте резервные копии зашифрованных контейнеров и ключей. Без ключа данные восстановить невозможно.
- Включайте журналирование операций и проверяйте логи на предмет неподтверждённого доступа.
## Конфиденциальность и соответствие (коротко)
Tomb оперирует локальными файлами и ключами; если вы используете Tomb в организациях, обговорите с отделом безопасности требования к хранению криптографических материалов и срокам хранения. Для персональных данных применяйте стандартные практики GDPR: минимизация хранения, ограничение доступа, документирование процессов удаления.
## Мини‑методология: быстрый план внедрения Tomb в рабочую среду
1. Создать тестовую виртуальную машину.
2. Установить Tomb и зависимости, проверить команды man.
3. Выполнить цикл: dig → forge → lock → open → close → slam на тестовых данных.
4. Разработать процедуру резервного копирования ключей (ключи хранятся отдельно, доступ через ACL).
5. Провести тест аварийного восстановления и документировать шаги.
6. Внедрить мониторинг и уведомления об ошибках.
## Decision flow: когда использовать Tomb
flowchart TD A[Нужно шифровать файлы?] –> B{Требуется шифровать весь диск?} B – Да –> C[LUKS / full‑disk encryption] B – Нет –> D{Нужно переносимое контейнерное хранилище?} D – Да –> E[Tomb или VeraCrypt] D – Нет –> F[eCryptfs или отдельные инструменты] E –> G[Выбрать Tomb, если важна интеграция с GNU/Linux и shell]
## Тестовые сценарии и критерии приёмки
Критерии приёмки:
- Установка проходит без ошибок и команды tomb доступны.
- Операции dig/forge/lock/open/close выполняются без потери данных при стандартных сценариях.
- Resize увеличивает доступный объём файловой системы внутри контейнера.
- Index/search возвращают ожидаемые результаты по тестовым файлам.
Тестовые сценарии:
- Создать контейнер 100МБ, смонтировать, записать файлы, закрыть, открыть — сравнить контрольные суммы.
- Сгенерировать ключ‑изображение, открыть контейнер с помощью изображения на другом хосте.
- Смоделировать нехватку места и выполнить resize.
- Смоделировать сбой приложения при открытом контейнере и протестировать slam и восстановление.
## Краткое резюме
Tomb — удобный инструмент для зашифрования отдельных файлов и папок в Linux. Он лёгкий, опирается на проверенные системные утилиты и удобен для случаев, когда полное шифрование диска не требуется. Соблюдайте простые правила безопасности: храните ключи отдельно, делайте бэкапы и тестируйте процедуры восстановления.

Изображения и примеры команд из оригинального материала. Все скриншоты служат иллюстрациями процесса установки и использования Tomb. Изображение обложки и скриншоты сохранены в качестве иллюстраций.
Image credit: Unsplash. All screenshots and alterations by Ramces Red.Похожие материалы
Удаление игр с PS5 M.2 SSD через приложение
Трансляция YouTube с телефона на ПК
Как использовать ADB и Fastboot на Linux
Как узнать, заблокировали ли вас на Android
Очистка кэша Dropbox на Android и iPhone