Termux предоставляет полноценную Linux‑окружение на Android‑устройствах. Благодаря возможности установки пакетов из репозиториев, он становится идеальной площадкой для разработки и эксплуатации контейнеров непосредственно на мобильных устройствах.
Установка podman в Termux
Для начала установим необходимые пакеты:
pkg update && pkg upgrade
pkg install root-repo
pkg install podman
После установки проверьте версию:
podman --version
Базовые принципы изоляции в podman
Podman использует набор Linux‑технологий: пользовательские пространства имён, cgroup, seccomp, capabilities. В Termux всё работает в режиме rootless, что повышает безопасность.
- user namespace – изоляция идентификаторов UID/GID.
- cgroup – ограничение ресурсов процессора, памяти и I/O.
- seccomp – фильтрация системных вызовов.
- capabilities – набор привилегий, которые можно отключить.
Создание безопасного контейнера
Пример создания контейнера с минимальными привилегиями:
podman run -d \
--name secure-nginx \
--userns=keep-id \
--cap-drop=ALL \
--security-opt seccomp=unconfined \
-p 8080:80 \
nginx:alpine
Пояснения к параметрам:
--userns=keep-id– сохраняет текущий UID/GID в пространстве имён.--cap-drop=ALL– убирает все capabilities, оставляя только необходимые.--security-opt seccomp=unconfined– отключает фильтрацию, но в продакшене рекомендуется использовать профильdefaultили кастомный.
Настройка сетей в контейнерах
Podman поддерживает CNI‑плагины. В Termux можно использовать bridge‑сетевой режим.
# Создаём пользовательскую сеть
podman network create \
--subnet 10.88.0.0/16 \
--gateway 10.88.0.1 \
mynet
Запуск контейнера в этой сети:
podman run -d \
--name db \
--network mynet \
-e POSTGRES_PASSWORD=secret \
postgres:alpine
Для доступа к контейнеру из Android‑приложений можно пробросить порт через termux-wake-lock или использовать iptables правила.
Профили безопасности и seccomp
Podman поставляется с готовым профилем default. При необходимости можно создать кастомный.
# Сохраняем текущий профиль в файл
podman info --format '{{.Host.SecuritySeccompProfilePath}}' > /data/data/com.termux/files/home/seccomp.json
# Редактируем профиль (удаляем опасные вызовы)
vim seccomp.json
# Запускаем контейнер с кастомным профилем
podman run -d \
--security-opt seccomp=/data/data/com.termux/files/home/seccomp.json \
alpine sleep 3600
Мониторинг и аудит
Для контроля безопасного окружения используйте встроенные инструменты:
podman stats– наблюдение за ресурсами.podman logs– просмотр журналов.podman inspect– детальная информация о контейнере и его конфигурации.
Заключение
Создание изолированного и безопасного контейнерного окружения в Termux с podman позволяет использовать мощные Linux‑инструменты непосредственно на мобильных устройствах. Правильная настройка namespace, cgroup, сетей и профилей seccomp обеспечивает высокий уровень защиты от потенциальных угроз.
RybinskLab предлагает профессиональные услуги по настройке и аудиту контейнерных решений, внедрению CI/CD пайплайнов и обучению команд DevOps. Обращайтесь к нам для получения индивидуального решения под ваш бизнес.