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

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

Автоматизация задач безопасности в Termux с помощью Ansible

Termux — мощная Linux‑среда для Android, позволяющая запускать привычные инструменты командной строки. Одним из самых эффективных способов упорядочить и автоматизировать задачи безопасности является Ansible. В этой статье мы рассмотрим, как установить Ansible в Termux, создать инвентарь, написать простые playbook‑и и интегрировать их в планировщик cron.

Подготовка окружения

Для начала необходимо установить базовые пакеты Termux:

pkg update && pkg upgrade -y
pkg install python git curl -y

Установим pip и сам Ansible:

pip install --upgrade pip
pip install ansible

Проверим корректность установки:

ansible --version

Создание инвентаря устройств

В Ansible инвентарь описывает хосты, с которыми будет работать система. В Termux мы будем управлять самим устройством, поэтому в качестве хоста укажем localhost:

mkdir -p ~/ansible && cd ~/ansible
cat > hosts.ini <<'EOF'
[android]
localhost ansible_connection=local
EOF

Для удобства можно добавить переменные, например путь к домашней директории:

cat > group_vars/android.yml <<'EOF'
home_dir: "$HOME"
EOF

Пример playbook‑а для базовой безопасности

Ниже представлен минимальный playbook, который выполняет три ключевых действия:

  1. Обновление пакетов Termux.
  2. Установку и настройку ufw (firewall) для Android.
  3. Запуск сканирования открытых портов с помощью nmap.
cat > security.yml <<'EOF'
- name: Базовая автоматизация безопасности в Termux
  hosts: android
  become: false
  vars:
    ufw_rules:
      - { rule: "allow", port: "22", proto: "tcp" }
  tasks:
    - name: Обновить все пакеты Termux
      pkg:
        name: ""
        state: latest

    - name: Установить ufw и nmap
      pkg:
        name: ["ufw", "nmap"]
        state: present

    - name: Включить ufw
      command: ufw enable
      args:
        creates: /data/data/com.termux/files/usr/etc/ufw/ufw.conf

    - name: Применить правила firewall
      loop: "{{ ufw_rules }}"
      command: ufw {{ item.rule }} {{ item.port }}/{{ item.proto }}

    - name: Сканировать открытые порты
      command: nmap -sS -Pn -p- 127.0.0.1
      register: nmap_result

    - name: Вывести результат сканирования
      debug:
        var: nmap_result.stdout_lines
EOF

Запуск playbook:

ansible-playbook -i hosts.ini security.yml

Интеграция с cron в Termux

Для периодического выполнения задач создадим cron‑задачу. Сначала установим пакет cronie:

pkg install cronie -y
sv enable crond
sv start crond

Добавим запись в crontab для ежедневного запуска playbook в 03:00:

crontab -e

В открывшемся редакторе вставьте строку:

0 3    $HOME/ansible/ansible-playbook -i $HOME/ansible/hosts.ini $HOME/ansible/security.yml >> $HOME/ansible/cron.log 2>&1

Сохраните файл. Теперь Ansible будет автоматически поддерживать безопасность вашего Android‑устройства.

Лучшие практики

  • Храните playbook‑и в репозитории git для версионирования и совместной работы.
  • Разделяйте задачи на роли: updates, firewall, scanners. Это упрощает масштабирование.
  • Не храните пароли в открытом виде. Используйте ansible-vault для шифрования чувствительных данных.
  • Регулярно проверяйте журнал cron.log и корректируйте правила firewall под новые требования.

Заключение

Комбинация Termux и Ansible открывает широкие возможности для автоматизации задач безопасности непосредственно на Android‑устройстве. Вы получаете гибкость Linux‑инструментов, при этом оставаясь в мобильной среде. Если вам требуется более глубокий аудит, настройка CI/CD для мобильных инфраструктур или профессиональная поддержка в области DevSecOps, обращайтесь в RybinskLab. Мы предоставляем услуги по консалтингу, разработке кастомных Ansible‑ролей и обучению команд, чтобы ваш мобильный арсенал был защищён на уровне лучших практик индустрии.

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

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