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‑плейбука
Плейбук будет выполнять следующие задачи:
- Настройка базовых репозиториев.
- Установка ключевых пакетов (
kali-linux-default,net-tools,ssh). - Создание пользователя
termuxс паролем. - Настройка автозапуска скрипта
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. Мы предоставляем консалтинг, разработку кастомных скриптов и обучение команд, чтобы ваш бизнес был всегда на шаг впереди.