Назад | Перейти на главную страницу

Двухфакторная аутентификация SSH только по внешнему адресу

У меня есть сервер Ubuntu с частным, внутренним IP и общедоступным IP. Я хочу настроить двухфакторную аутентификацию для SSH только на публичной стороне. Это возможно? Я планировал использовать Google Authenticator, но также открыт для альтернативных идей.

Да, вы можете сделать это с помощью pam_access.so. Этот рецепт был взят из вики для Google Authenticator:

Полезный рецепт PAM - разрешить пропуск двухфакторной аутентификации, когда соединение исходит из определенных источников. Это уже поддерживается PAM. Например, модуль pam_access можно использовать для проверки источника на соответствие локальным подсетям:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

В этом случае access-local.conf выглядит так:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

Таким образом, попытки входа в систему из 10.0.0.0/24 не потребуют двухфакторной аутентификации.