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

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

Организация безопасного удалённого доступа к Linux‑серверу через Termux с применением WireGuard и 2FA

Мобильные устройства становятся полноценными рабочими станциями, а Termux позволяет превратить Android‑смартфон в терминал Linux. Для безопасного удалённого доступа к серверу необходимо использовать шифрование уровня сети и двухфакторную аутентификацию (2FA). В этой статье мы покажем, как собрать всё вместе: WireGuard в качестве VPN‑туннеля и Google Authenticator (или совместимый PAM‑модуль) для 2FA.

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

  • Android‑устройство с установленным Termux (версии 0.118+).
  • Linux‑сервер (Debian/Ubuntu, CentOS/AlmaLinux) с правами root или sudo.
  • Доступ к серверу по SSH (для первоначальной настройки).
  • Установленный WireGuard на сервере.
  • Установленный PAM‑модуль libpam-google-authenticator (или аналогичный).

Установка Termux и базовых пакетов

pkg update && pkg upgrade -y
pkg install git curl wget openssh -y

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

Установка WireGuard в Termux

pkg install wireguard-tools -y

После установки появятся команды wg и wg-quick, которые будем использовать для управления клиентом.

Генерация ключей WireGuard

# Создаём директорию для конфигурации
mkdir -p $HOME/wgclient && cd $HOME/wgclient
# Генерируем приватный и публичный ключи
wg genkey | tee privatekey | wg pubkey > publickey

Сохраните содержимое privatekey в надёжном месте – он будет использоваться только на клиенте.

Настройка сервера WireGuard

Подключитесь к серверу по SSH и выполните следующие шаги.

# Установка WireGuard (Debian/Ubuntu)
sudo apt update && sudo apt install wireguard -y
# Создаём директорию для конфигурации
sudo mkdir -p /etc/wireguard && sudo chmod 700 /etc/wireguard
# Генерируем ключи сервера
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
# Создаём конфигурацию /etc/wireguard/wg0.conf
cat <

Запомните SERVER_PUBLIC_KEY – он понадобится при настройке клиента.

Подготовка клиентского конфигурационного файла

Вернитесь в Termux и создайте файл wg0.conf:

cat > $HOME/wgclient/wg0.conf <

Замените SERVER_PUBLIC_KEY и YOUR_SERVER_IP на реальные значения.

Запуск WireGuard в Termux

sudo wg-quick up $HOME/wgclient/wg0.conf

После успешного подключения вы сможете проверять статус командой wg.

Настройка двухфакторной аутентификации (2FA) на сервере

Мы будем использовать PAM‑модуль google-authenticator. Он генерирует одноразовые коды по алгоритму TOTP.

# Установка PAM‑модуля (Debian/Ubuntu)
sudo apt install libpam-google-authenticator -y
# Для каждого пользователя запускаем генерацию токена
sudo -u USER google-authenticator
# Ответьте «yes» на все вопросы, чтобы включить резервные коды и ограничить попытки.

# Настройка PAM для SSH
sudo sed -i '/@include common-auth/a auth required pam_google_authenticator.so nullok' /etc/pam.d/sshd
# Включаем ChallengeResponseAuthentication в sshd_config
sudo sed -i 's/^#ChallengeResponseAuthentication./ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
# Перезапускаем SSH
sudo systemctl restart sshd

Теперь при подключении по SSH будет запрашиваться пароль и код из приложения Google Authenticator.

Комбинирование WireGuard и 2FA

WireGuard обеспечивает шифрование канала, а 2FA защищает сам SSH‑доступ. После установки VPN‑туннеля вы подключаетесь к серверу по обычному ssh‑команду, но без VPN доступ будет невозможен.

ssh USER@10.10.0.1
# После ввода пароля появится запрос на ввод кода из Google Authenticator

Тестирование и отладка

  • Проверьте, что интерфейс wg0 поднят на клиенте: wg.
  • Убедитесь, что сервер видит клиента: sudo wg show на сервере.
  • Попробуйте подключиться по SSH без VPN – соединение должно быть отклонено.
  • При подключении через VPN проверьте запрос 2FA.

Рекомендации по повышению безопасности

  • Ограничьте доступ к UDP‑порту 51820 в firewall, разрешив только IP вашего мобильного устройства.
  • Используйте PersistentKeepalive = 25 только при необходимости (мобильные сети).
  • Регулярно обновляйте пакеты в Termux: pkg upgrade -y.
  • Храните приватный ключ WireGuard в зашифрованном контейнере (например, gnupg).
  • Включайте журналирование попыток входа в SSH (auth.log) и мониторьте их.

Заключение

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

RybinskLab предлагает профессиональные услуги по развертыванию VPN‑решений, настройке 2FA и поддержке мобильных рабочих станций на базе Termux. Свяжитесь с нами для аудита безопасности, индивидуального конфигурирования и обучения ваших сотрудников.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом РыбинскЛАБ.

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

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

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

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