Mediante Latch, podemos añadir una capa extra de seguridad a nuestro servicio SSH, limitando la ventana de tiempo durante la cual permitimos iniciar sesión en el servidor.

Instalación

Descargamos los paquetes que vamos a necesitar:

bash $ sudo aptitude install gcc make $ sudo aptitude install libpam0g-dev libcurl4-gnutls-dev libssl-dev

(Si ya teníamos instalado el paquete libcurl4-openssl-dev, podemos usar éste en lugar de libcurl4-gnutls-dev.)

Descargamos el código de github y compilamos:

bash $ git clone https://github.com/ElevenPaths/latch-plugin-unix.git $ cd latch-plugin-unix $ ./configure prefix=/usr sysconfdir=/etc && make && sudo make install

Antes de continuar, vamos al área de desarrolladores y creamos una cuenta para este servicio. Ahí obtenemos el identificador de aplicación y la contraseña.

Configuración

La instalación se puede hacer bien con un módulo PAM o bien configurando SSH.

Módulo PAM

Si vamos a configurar un módulo PAM, en la configuración del servicio que hemos creado en el área de desarrolladores, añadiremos una nueva "operación", por ejemplo "sshd-login", con lo que obtendremos una contraseña para esta operación en particular.

Editamos el fichero /etc/latch/latch.conf para añadir nuestro identificador de aplicación, la contraseña. Especificamos la acción por defecto si el servicio de Latch no estuviera disponible (open o close) y añadirmos las diferentes contraseñas para las operaciones que hayamos definido en la cuenta.

Movemos el fichero .so a su destino:

bash $ sudo mv /usr/lib/pam_latch.so /lib/security/

Editamos el fichero /etc/pam.d/sshd, y añadimos al final:

bash auth required pam_latch.so config=/etc/latch/latch.conf accounts=/etc/latch/latch.accounts operation=sshd-login otp=yes

Igual que en el caso del servicio de SSH con sistema de verificación en dos pasos de Google, podemos añadir una regla justo antes de la que acabamos de definir para que las conexiones desde la misma red no sean examinadas:

bash auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf

El contenido del fichero /etc/security/access-local.conf:

bash + : ALL : 192.168.50.0/24 + : ALL : LOCAL - : ALL : ALL

Por último, sólo queda parear cada usuario que queramos utilizar. Desde la aplicación en el móvil, generamos un código de pareado. Utilizaremos el token proporcionado y ejecutaremos el siguiente comando:

bash $ latch -p Account successfully paired to the user myuser

Si queremos desparear un usuario:

bash $ latch -u

Configuración de SSH

Si en lugar de añadir el módulo PAM, queremos configurar el servidor de SSH, editamos el fichero de configuración /etc/ssh/sshd_config y nos aseguramos de que contenga:

bash UsePAM yes ChallengeResponseAuthentication yes PasswordAuthentication no

Para proteger las claves de autorización, editamos el fichero de configuración de los usuario ~/.ssh/authorized_keys:

bash command="latch-ssh-cmd -o sshd-keys" ssh-rsa AAA...HP5 someone@host

En este caso, hemos definido una nueva operación "sshd-keys" en la configuración de nuestra cuenta. También hay que tener en cuenta que si optamos por la opción de configurar el servicio SSH, mediante el comando latch-ssh-cmd no está disponible la opción de claves de un solo uso (OTP).

Desinstalación

Si queremos desinstalar Latch, basta que eliminemos los cambios que hemos hecho en /etc/pam.d/sshd, o /etc/ssh/sshd_config y ~/.ssh/authorized_keys, en caso de haber optado por la opción de configurar el servicio de SSH.

A continuación, desde el directorio donde habíamos descargado el código, ejecutamos:

bash $ ./configure prefix=/usr sysconfdir=/etc && make && sudo make uninstall


Entradas relacionadas


Published

Category

admin

Tags

Contacto