We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Защита Termux от нежелательного доступа – SELinux, AppArmor и политики безопасности

Подробный обзор методов защиты Termux: работа SELinux, AppArmor и настройка политик безопасности. Практические рекомендации и примеры команд.

Termux – мощный эмулятор терминала для Android, позволяющий запускать полноценные Linux‑утилиты. Однако, как и любой инструмент, работающий в пользовательском пространстве, он может стать мишенью нежелательного доступа. В этой статье рассматриваются три уровня защиты, доступные в Android: SELinux, AppArmor и традиционные политики безопасности Linux.

Почему защита важна?

Устройства Android часто используют общедоступные сети, а Termux может запускать скрипты с правами обычного пользователя. Если вредоносный код получит доступ к Termux, он может:

  • Получить доступ к файлам пользователя и конфиденциальным данным.
  • Использовать ресурсы устройства для майнинга, спама или атак.
  • Эскалировать привилегии через уязвимости ядра.

Поэтому необходимо убедиться, что система контроля доступа (MAC) правильно настроена и что вы применяете лучшие практики Linux‑безопасности.

SELinux в Android

С Android 4.3 по умолчанию включён SELinux в режиме enforcing. Он использует политики, определяющие, какие операции может выполнять каждый процесс.

Проверка текущего режима

getenforce

Если вывод Enforcing, политика применяется строго.

Отладка и временное переключение

Для отладки иногда требуется переключить режим в Permissive. Делать это следует только на устройстве с рут‑доступом.

su -c "setenforce 0"

После завершения отладки верните режим обратно:

su -c "setenforce 1"

Контекст Termux

Процессы Termux работают в контексте u:r:untrusted_app:s0:c512,c768 (значения могут отличаться). Чтобы увидеть контекст конкретного процесса:

ps -Z | grep termux

Если необходимо изменить контекст (например, для доступа к определённым файлам), используйте chcon:

chcon -t sdcard_rw /sdcard/Downloads/secret.txt

Будьте осторожны: изменение контекстов может нарушить работу приложений.

AppArmor – дополнительный слой контроля

Некоторые кастомные прошивки (например, LineageOS) включают AppArmor. Он работает по принципу профилей, привязываемых к исполняемым файлам.

Проверка статуса

aa-status

Команда покажет, какие профили активны и находятся в режиме enforced или complain.

Создание простого профиля для Termux

Для демонстрации создадим профиль, ограничивающий доступ к сети.

# /etc/apparmor.d/usr.bin.termux
#include <abstractions/base>

/usr/bin/termux {
    # Разрешаем чтение файлов в домашней директории
    /data/data/com.termux/files/** r,
    # Запрещаем любые сетевые операции
    network inet deny,
}

После создания профиля загрузите его:

apparmor_parser -r /etc/apparmor.d/usr.bin.termux

Теперь Termux будет работать без сетевых соединений, пока профиль включён.

Традиционные политики безопасности Linux

Помимо MAC‑механизмов, в Termux доступны стандартные инструменты контроля доступа:

  • chmod и chown – управление правами доступа к файлам.
  • umask – задаёт маску прав по умолчанию для новых файлов.
  • setfacl / getfacl – расширенные списки контроля доступа.

Пример безопасных прав для скриптов

# Запретить исполнение скриптов другими пользователями
chmod 700 myscript.sh
# Установить umask так, чтобы новые файлы создавались с 600
umask 077

Ограничение доступа к внешним хранилищам

Android ограничивает прямой доступ к /sdcard. Чтобы обеспечить изоляцию, используйте termux-setup-storage, который создаёт привязку к /storage/emulated/0. После этого можно задать права доступа:

chmod 750 /data/data/com.termux/files/home/shared

Практические рекомендации по защите Termux

  1. Проверяйте статус SELinux – убедитесь, что он работает в режиме Enforcing.
  2. Не запускайте Termux от root – это снижает риск эскалации привилегий.
  3. Ограничьте сетевой доступ с помощью iptables внутри Termux или профилей AppArmor.
  4. Регулярно обновляйте пакеты – используйте pkg upgrade для получения последних патчей.
  5. Используйте виртуальные окружения (python -m venv, nodeenv) для изоляции зависимостей.
  6. Контролируйте права файлов – минимизируйте права 777, используйте chmod и umask.
  7. Включайте проверку целостности скриптов – подписи GPG или контрольные суммы.

Инструменты мониторинга и аудита

Для своевременного обнаружения попыток несанкционированного доступа можно использовать:

  • auditd – собирает события SELinux и системные вызовы.
  • logcat – выводит системные логи Android, где отображаются сообщения SELinux.
  • busybox syslogd – простой syslog‑демон для записи событий в файл.

Пример настройки аудита для доступа к домашней директории Termux:

# /etc/audit/rules.d/termux.rules
-w /data/data/com.termux/files/home -p rwxa -k termux_home

После добавления правила запустите:

service auditd restart

Просмотр событий:

ausearch -k termux_home

Заключение

Защита Termux – это сочетание нескольких уровней: системный контроль доступа SELinux, профили AppArmor (если поддерживается) и традиционные Linux‑политики. При правильной настройке вы получаете надёжный «песочницу», в которой можно безопасно запускать скрипты, развивать проекты и использовать сеть без риска компрометации устройства.

Если вам нужна профессиональная настройка безопасного окружения в Termux, аудит текущих политик или разработка кастомных профилей SELinux/AppArmor – специалисты RybinskLab готовы помочь. Мы предоставляем услуги по hardening Android‑устройств, настройке CI/CD в Termux и обучению безопасному использованию мобильных Linux‑инструментов.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект