
OTP
Si hay algo que aumenta mucho la seguridad en el acceso a los sistemas de hoy en día es el OTP ( One Time Password ) o 2-step verification ( Explicación de Google ).
Existen grandes empresas que ofrecen soluciones de este tipo, como RSA, pero que pasa si queremos usar OTP para uso personal ? Bueno, Google nos da una “solución” que es utilizar Google Authenticator, vamos a ver como es:
Para el caso de sabores de Gnu/Linux basado en APT estos son los sencillos pasos:
- Instalar Google Authenticator en nuestro dispositivo mobil.
- Instalar Google Authenticator en el “servidor”:
apt-get install libpam-google-authenticator
- Generar nuestro “key” ( la vamos a generar con el usuario o los usuarios que vayamos a querar acceder por ssh ):
google-authenticator
- Do you want authentication tokens to be time-based ? (Y)
- Actualizar el archivo “~/.google_authenticator” ? (Y)
- ¿Deshabilitar múltiples usos del mismo token de autenticación? (Y)
- Por defecto, los tokens duran 30 segundos con el fin de compensar el tiempo posible entre el cliente y el servidor, si experimenta problemas con la sincronización del tiempo , puede aumentar su valor predeterminado de 1:30 minutos a aproximadamente 4 minutos . ¿Quieres hacerlo (Y)
- Minimizar los intentos de fuerza bruta , de forma predeterminada se limita a un máximo de 3 intentos cada 30 segundos. ¿ Deseas limitar la actividad ? (Y)
- Importante: Guarden los códigos de emergencia que nos va a dar, ya que los mismos nos servirán en caso que el Google Authenticator no funcione por algún motivo.
- En la App de Google Authenticator generamos la cuenta: ( en los 3 puntos, lado derecho del titulo ) Configurar cuenta -> Escanear código de barras ( lo pueden ver por pantalla cuando lo generan ) / Ingresar clave brindada ( también nos la da cuando ejecutamos el software en el “servidor” ).
- Editar configuración de PAM.D para ssh:
vi /etc/pam.d/sshd
- Agregar: auth required pam_google_authenticator.so
- Editar configuración de SSHD:
vi /etc/ssh/sshd_config
- Agregar: ChallengeResponseAuthentication yes
- Reiniciar servicio de SSHD:
service ssh restart
- Probar ( en caso de tener problemas, revisar el archivo /var/log/auth.log o /var/log/syslog )
Cualquier duda, comenten 😉