Мобильные устройства становятся полноценными рабочими станциями, а 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. Свяжитесь с нами для аудита безопасности, индивидуального конфигурирования и обучения ваших сотрудников.