Autenticación SSH de dos factores solo en direcciones externas

11

Tengo un servidor Ubuntu con una IP privada, interna, IP y pública. Quiero configurar la autenticación de dos factores para SSH solo en el lado público. es posible? Estaba planeando usar Google Authenticator, pero también estoy abierto a ideas alternativas.

Brett F.
fuente
Para obtener información, consulte también unix.stackexchange.com/questions/388384/…
FarO

Respuestas:

15

Sí, puedes hacer esto con pam_access.so. Esta receta fue tomada de la wiki para Google Authenticator :

Una receta útil de PAM es permitir omitir la autenticación de dos factores cuando la conexión se origina en ciertas fuentes. Esto ya es compatible con PAM. Por ejemplo, el módulo pam_access se puede usar para verificar la fuente en las subredes locales:

# 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

En este caso, access-local.conf se ve así:

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

Por lo tanto, los intentos de inicio de sesión desde 10.0.0.0/24 no requerirán autenticación de dos factores.

Michael Hampton
fuente
1
Eso es exactamente lo que estaba buscando. No estoy seguro de por qué no lo vi antes. ¡Gracias!
Brett F.
44
Michael Hampton Gracias por el ejemplo, pero eso no funcionó para mí porque seguía recibiendo el error Permiso denegado (teclado interactivo). Lo descubrí porque lo usé AuthenticationMethods publickey,keyboard-interactiveen mi /etc/ssh/sshd_config. Así que cambié lo siguiente para solucionarlo:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird
@JeremyLaird esas líneas están mezcladas ... ¿dónde están las nuevas líneas?
shadowbq