У меня есть сервер 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 не потребуют двухфакторной аутентификации.