Termux предоставляет полноценную Linux‑подсистему на Android‑устройствах, что открывает возможности использования привычных средств защиты данных. В статье рассматривается гибридный подход к шифрованию: eCryptfs для прозрачного шифрования файловой системы и LUKS для надёжного блочного шифрования. Такое сочетание позволяет хранить зашифрованные данные в контейнере, а также получать доступ к отдельным файлам без необходимости монтировать весь контейнер.
Что потребуется
- Установленный Termux (Android ≥ 8.0).
- Доступ к хранилищу (storage permission).
- Базовые навыки работы в терминале Linux.
- Свободное место на устройстве (рекомендовано минимум 2 ГБ для тестового контейнера).
Установка необходимых пакетов
Для начала установим инструменты cryptsetup (LUKS) и ecryptfs-utils (eCryptfs). В Termux они доступны из репозитория root-repo и unstable-repo:
pkg install root-repo unstable-repo
pkg install cryptsetup ecryptfs-utils
Если требуется работа с «sudo», установим tsu:
pkg install tsu
Создание LUKS‑контейнера
Создадим файловый контейнер размером 1 ГБ и инициализируем его как LUKS‑том:
# Создаём пустой файл
dd if=/dev/zero of=$HOME/secure_container.img bs=1M count=1024
# Инициализируем LUKS (будет запрошен пароль)
cryptsetup luksFormat $HOME/secure_container.img
После создания откройте контейнер под именем secure_luks:
cryptsetup open $HOME/secure_container.img secure_luks
Создадим внутри LUKS‑тома файловую систему (например, ext4):
mkfs.ext4 /dev/mapper/secure_luks
Создаём точку монтирования и монтируем том:
mkdir -p $HOME/luks_mount
mount /dev/mapper/secure_luks $HOME/luks_mount
Настройка eCryptfs внутри LUKS‑тома
Внутри уже смонтированного LUKS‑тома создадим директорию для зашифрованных файлов и включим eCryptfs:
mkdir -p $HOME/luks_mount/secure_data
mkdir -p $HOME/luks_mount/secure_data_private
# Монтируем eCryptfs (будут запрошены пароль и параметры)
ecryptfs-setup-private --noautomount
В результате ~/Private будет ссылается на $HOME/luks_mount/secure_data_private. Чтобы использовать eCryptfs внутри LUKS‑тома, выполните:
ecryptfs-mount-private
Теперь любые файлы, помещённые в ~/Private, шифруются eCryptfs и сохраняются в LUKS‑томе.
Гибридное монтирование и автоматизация
Для удобства можно собрать скрипт, который будет последовательно открывать LUKS‑том, монтировать его и активировать eCryptfs. Пример скрипта ~/bin/secure_mount.sh:
#!/data/data/com.termux/files/usr/bin/bash
# Путь к контейнеру
CONTAINER="$HOME/secure_container.img"
MAPPER="secure_luks"
MOUNT_POINT="$HOME/luks_mount"
ECRYPTFS_PRIVATE="$HOME/Private"
# Открываем LUKS‑том (запрос пароля)
cryptsetup open "$CONTAINER" "$MAPPER"
# Монтируем блочный том
mount "/dev/mapper/$MAPPER" "$MOUNT_POINT"
# Активируем eCryptfs (если ещё не смонтировано)
if ! mountpoint -q "$ECRYPTFS_PRIVATE"; then
ecryptfs-mount-private
fi
echo "Secure storage is ready at $ECRYPTFS_PRIVATE"
Сделайте скрипт исполняемым и добавьте алиас в ~/.bashrc:
chmod +x ~/bin/secure_mount.sh
echo "alias secureup='~/bin/secure_mount.sh'" >> ~/.bashrc
Для закрытия используйте обратный скрипт:
#!/data/data/com.termux/files/usr/bin/bash
MOUNT_POINT="$HOME/luks_mount"
MAPPER="secure_luks"
ECRYPTFS_PRIVATE="$HOME/Private"
# Отмонтировать eCryptfs
ecryptfs-umount-private
# Отмонтировать LUKS‑том
umount "$MOUNT_POINT"
cryptsetup close "$MAPPER"
echo "Secure storage is safely closed."
Сохраните как ~/bin/secure_umount.sh и добавьте алиас securedown.
Безопасность и рекомендации
- Пароли: используйте надёжные, уникальные пароли для LUKS и eCryptfs. Храните их в менеджере паролей.
- Бэкапы: резервные копии контейнера следует хранить в зашифрованном виде, например, в облаке с отдельным шифрованием.
- Разрешения: убедитесь, что файлы контейнера имеют права
600, а директории –700. - Обновления: регулярно обновляйте Termux и пакеты (
pkg upgrade) для получения исправлений уязвимостей.
Заключение
Гибридное шифрование eCryptfs + LUKS в Termux предоставляет мощный уровень защиты данных на мобильных устройствах, совмещая прозрачное файловое шифрование и надёжное блочное шифрование. При правильной настройке и автоматизации процесс работы с конфиденциальной информацией становится удобным и безопасным.
Если вам требуется профессиональная настройка безопасных сред в Termux, аудит существующих решений или разработка кастомных скриптов – команда RybinskLab готова помочь. Мы предоставляем услуги по консалтингу, внедрению криптографических решений и поддержке Linux‑подсистем на Android. Свяжитесь с нами, чтобы обеспечить максимальную защиту ваших данных.