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

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

Автоматизированное развертывание Kali Linux в Termux через скрипты Ansible

Termux – это мощный терминал для Android, позволяющий запускать полноценную Linux‑среду прямо на смартфоне. Одной из самых востребованных задач является установка Kali Linux для проведения тестов безопасности «на ходу». Ручная установка требует множества команд, а любое отклонение от порядка может привести к ошибкам. Чтобы избавиться от рутины, мы предлагаем полностью автоматизированный процесс развертывания Kali Linux в Termux с помощью Ansible.

Термин start в контексте автоматизации означает «начать выполнение», что подчёркивается определениями из известных словарей: cambridge.org, merriam-webster.com, dictionary.com.

Что понадобится

  • Android‑устройство с установленным Termux (рекомендовано Android 8+).
  • Подключение к интернету (для загрузки пакетов и образов).
  • Минимум 2 ГБ свободного места в памяти устройства.
  • Базовые навыки работы с командной строкой.

Шаг 1. Установка базовых пакетов в Termux

pkg update && pkg upgrade -y
pkg install -y wget proot-distro python python-pip git curl tar

Эти пакеты обеспечивают возможность загрузки образов, работы с Python (необходимого для Ansible) и управления chroot‑окружением.

Шаг 2. Установка Ansible

В Termux Ansible устанавливается через pip:

pip install --upgrade pip
pip install ansible

После установки проверьте версию:

ansible --version

Шаг 3. Подготовка образа Kali Linux

Мы будем использовать готовый образ kali-arm64, совместимый с архитектурой большинства современных смартфонов.

# Создаём директорию для образа
mkdir -p $HOME/kali && cd $HOME/kali

# Скачиваем образ (пример URL – актуальный на момент написания)
wget -O kali-arm64.tar.xz https://kali.download/base-images/kali-linux-2024.1-arm64.tar.xz

# Распаковываем
tar -xf kali-arm64.tar.xz --strip-components=1

После распаковки у вас будет полноценный файловый корень Kali.

Шаг 4. Создание Ansible‑плейбука

Плейбук будет выполнять следующие задачи:

  1. Настройка базовых репозиториев.
  2. Установка ключевых пакетов (kali-linux-default, net-tools, ssh).
  3. Создание пользователя termux с паролем.
  4. Настройка автозапуска скрипта start-kali.sh.

Сохраните файл kali-setup.yml в любой удобной директории (например, $HOME/ansible).

# $HOME/ansible/kali-setup.yml
---
- name: Deploy Kali Linux inside Termux
  hosts: localhost
  become: true
  vars:
    kali_root: "$HOME/kali"
  tasks:
    - name: Ensure apt sources are up‑to‑date
      ansible.builtin.command: apt update
      args:
        chdir: "{{ kali_root }}"

    - name: Install core Kali metapackage
      ansible.builtin.command: apt install -y kali-linux-default
      args:
        chdir: "{{ kali_root }}"

    - name: Install additional utilities
      ansible.builtin.command: apt install -y net-tools openssh-server
      args:
        chdir: "{{ kali_root }}"

    - name: Create non‑root user
      ansible.builtin.command: useradd -m -s /bin/bash termux
      args:
        chdir: "{{ kali_root }}"

    - name: Set password for termux user
      ansible.builtin.command: echo "termux:termux" | chpasswd
      args:
        chdir: "{{ kali_root }}"

    - name: Enable SSH service on boot
      ansible.builtin.command: systemctl enable ssh
      args:
        chdir: "{{ kali_root }}"

    - name: Create start‑script
      ansible.builtin.copy:
        dest: "{{ kali_root }}/start-kali.sh"
        mode: "0755"
        content: |
          #!/data/data/com.termux/files/usr/bin/bash
          proot --link2symlink -0 -r "{{ kali_root }}" -b /dev -b /proc -b /sys -b $HOME:/root /usr/bin/env -i HOME=/root TERM=linux-256color PS1='\u@kali:\w\$ ' /bin/bash --login

    - name: Make script executable
      ansible.builtin.file:
        path: "{{ kali_root }}/start-kali.sh"
        mode: "0755"
        state: file

Обратите внимание, что в ansible.builtin.command мы указываем chdir в корень Kali, чтобы команды запускались внутри образа.

Шаг 5. Запуск плейбука

Перейдите в директорию с плейбуком и выполните:

cd $HOME/ansible
ansible-playbook kali-setup.yml

Если всё прошло успешно, в каталоге $HOME/kali появятся все необходимые пакеты, а скрипт start-kali.sh будет готов к использованию.

Шаг 6. Автоматический запуск Kali при старте Termux

Добавьте следующую строку в файл $HOME/.bashrc (или .zshrc):

# Запуск Kali Linux автоматически при открытии Termux
if [ -f "$HOME/kali/start-kali.sh" ]; then
  $HOME/kali/start-kali.sh
fi

Теперь каждый раз, когда вы открываете Termux, сразу будет подниматься сессия Kali.

Отладка и типичные проблемы

  • Ошибка «permission denied» при запуске скрипта. Убедитесь, что скрипт имеет права 0755 и что вы вызываете его через bash, а не через sh.
  • Не работает systemctl в Proot. В Proot нет полноценного init‑сервиса; вместо этого используйте прямой запуск демонов, например service ssh start в начале скрипта.
  • Недостаточно места. Образ Kali занимает ~1,5 ГБ. Очистите кеш pkg clean и удалите ненужные файлы.

Почему стоит использовать Ansible

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

  • Повторяемость – один и тот же плейбук можно запускать на разных устройствах без изменений.
  • Контроль версии – храните плейбуки в Git и откатывайте изменения.
  • Масштабируемость – при необходимости можно добавить новые задачи (установка Metasploit, настройка VPN и т.д.).

Заключение

Мы продемонстрировали, как за несколько шагов превратить Android‑устройство в полноценную платформу для тестирования безопасности, используя Termux, образ Kali Linux и автоматизацию через Ansible. Такой подход экономит время, минимизирует человеческие ошибки и позволяет быстро развёртывать одинаковые окружения на множестве устройств.

Если вам нужна помощь в настройке сложных инфраструктур, интеграции Ansible в CI/CD, а также профессиональная поддержка мобильных и облачных проектов – обратитесь к специалистам RybinskLab. Мы предоставляем консалтинг, разработку кастомных скриптов и обучение команд, чтобы ваш бизнес был всегда на шаг впереди.

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

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

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

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

Связаться со мной