В этой статье мы рассмотрим, как настроить высокодоступный SSH-сервер в Termux с использованием двухфакторной аутентификации (2FA) с поддержкой OTP (One-Time Password) и YubiKey, а также ограничением доступа на основе клиентских сертификатов. Это значительно повысит безопасность вашего сервера, защитив его от несанкционированного доступа.
Необходимые условия
- Установленная Termux
- Доступ к командной строке Termux
- Базовые знания Linux
Этап 1: Установка необходимых пакетов
Сначала необходимо установить необходимые пакеты для SSH-сервера, 2FA и работы с сертификатами.
pkg update && pkg upgrade
pkg install openssh libpam-google-authenticator stunnel
Этап 2: Настройка SSH-сервера
Настроим SSH-сервер, чтобы он использовал PAM для аутентификации.
mkdir -p /data/data/com.termux/files/usr/etc/ssh
nano /data/data/com.termux/files/usr/etc/ssh/sshd_config
В файле sshd_config выполните следующие изменения:
PermitRootLogin noPasswordAuthentication noPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysChallengeResponseAuthentication no(если используется PAM для 2FA)
Этап 3: Настройка двухфакторной аутентификации (Google Authenticator)
Настроим двухфакторную аутентификацию с использованием Google Authenticator.
google-authenticator
Следуйте инструкциям, которые будут выведены на экран. Вам будет предложено создать секретный ключ и ввести коды из Google Authenticator.
Этап 4: Настройка YubiKey (опционально)
Если вы используете YubiKey, необходимо настроить поддержку YubiKey в PAM.
nano /data/data/com.termux/files/usr/etc/pam.d/sshd
Добавьте следующую строку в конец файла:
auth required pam_yubikey.so
Этап 5: Настройка клиентских сертификатов
Создадим клиентские сертификаты и настроим SSH-сервер для проверки этих сертификатов.
openssl req -new -nodes -text -keyout /data/data/com.termux/files/usr/etc/ssh/id_rsa -out /data/data/com.termux/files/usr/etc/ssh/id_rsa.pub
ssh-keygen -f /data/data/com.termux/files/usr/etc/ssh/id_rsa.pub -C "your_email@example.com"
Затем скопируйте файл id_rsa.pub на клиентское устройство. Добавьте публичный ключ в файл ~/.ssh/authorized_keys на сервере.
Этап 6: Запуск SSH-сервера
sshd
Этап 7: Проверка работы SSH-сервера
Попробуйте подключиться к SSH-серверу с клиентского устройства, используя ваш публичный ключ и код из Google Authenticator (или YubiKey).
Дополнительные рекомендации
- Регулярно обновляйте Termux и установленные пакеты.
- Используйте брандмауэр для ограничения доступа к SSH-порту.
- Рассмотрите возможность использования VPN для дополнительной безопасности.
Заключение
Настройка высокодоступного SSH-сервера в Termux с двухфакторной аутентификацией и клиентскими сертификатами – это эффективный способ повысить безопасность вашего сервера. Если вам нужна помощь в настройке и обеспечении безопасности ваших систем, обратитесь к специалистам РыбинскЛАБ. Мы предлагаем широкий спектр услуг в области информационной безопасности, включая настройку и аудит систем защиты информации. Посетите наш сайт РыбинскЛАБ для получения дополнительной информации.