Ir al contenido principal

Interesante tip para mejorar la seguridad de SSH

Esta vez veremos un corto y sencillo tip que nos ayudará a mejorar la seguridad de nuestras conexiones remotas con SSH.

OpenSSH, que es el paquete que proveen los sistemas GNU/Linux para manejar conexiones SSH, tiene una amplia variedad de opciones. Leyendo el libro SSH The Secure Shell y las páginas del manual encontré la opción -F, la cual le informa al cliente SSH que utilice un archivo de configuración distinto al que encontramos por defecto en el directorio /etc/ssh.

¿Cómo usamos esta opción?

De la siguiente manera:


ssh -F /ruta/a_tu/archivo/de_configuración usuario@ip/host

Por ejemplo si tenemos un archivo de configuración personalizado a nuestro gusto de nombre my_config en el Escritorio, y queremos conectarnos con el usuario carlos a la computadora con la ip 192.168.1.258, entonces usaríamos el comando como sigue:

ssh -F ~/Escritorio/my_config carlos@192.168.1.258

¿Cómo ayuda a la seguridad de la conexión?

Recordemos que un atacante al estar dentro de nuestro sistema intentará inmediatamente obtener privilegios de administrador si es que no los tuviera ya, entonces para él seria bastante fácil ejecutar ssh para conectarse al resto de las máquinas de la red. Para evitar esto, podemos configurar el archivo /etc/ssh/ssh_config con valores incorrectos, y cuando deseemos conectarnos vía SSH usaremos el archivo de configuración que tendremos guardado en una ubicación que sólo nosotros sabemos (incluso en un dispositivo de almacenamiento externo), es decir, tendríamos seguridad por oscuridad. De esta manera el atacante quedaría desconcertado al encontrar que no puede conectarse usando SSH y que intenta hacer las conexiones de acuerdo a lo especificado en el archivo de configuración predeterminado por lo que le resultará algo difícil darse cuenta de lo que pasa, y le complicaremos bastante el trabajo.

Esto añadido a cambiar el puerto de escucha del servidor SSH, deshabilitar SSH1, especificar qué usuarios se pueden conectar al servidor, permitir explicitamente qué IP o rango de IPs pueden conectarse al servidor y otros consejos más que podremos encontrar en http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux nos permitirán incrementar la seguridad de nuestras conexiones SSH.

Todo lo descrito anteriormente puede hacerse en una sola línea. Para mi gusto sería bastante tedioso tener que escribir una gran linea con múltiples opciones cada vez que intentemos logearnos vía SSH a un pc remoto, por ejemplo la siguiente sería una muestra de lo que les digo:

ssh -p 1056 -c blowfish -C -l carlos -q -i myself 192.168.1.258

-p Especifica el puerto para conectarse en el host remoto.
-c Especifica cómo se va a cifrar la sesión.
-C Indica que se deberá comprimir la sesión.
-l Indica el usuario con el que se logueará en el host remoto.
-q Indica que los mensajes de diagnostico sean suprimidos.
-i Indica el archivo con el que se identificará (llave privada)

También debemos recordar que podríamos usar el historial del terminal para no tener que teclear todo el comando cada vez que lo necesitemos, cosa que también un atacante podría aprovechar, por lo que no lo recomendaría, al menos en el uso de conexiones SSH.

Aunque la cuestión de seguridad no es la única ventaja de esta opción, se me ocurren otras, como por ejemplo tener un archivo de configuración para cada servidor al que deseemos conectarnos, así evitaremos escribir las opciones cada vez que deseemos hacer una conexión a un servidor SSH con una configuración especifica.

Usar la opción -F puede ser muy útil en caso de que se tengan varios servidores con diferente configuración. De lo contrario, habrá que recordar todas las configuraciones, lo que resulta prácticamente imposible. La solución sería tener un archivo de configuración perfectamente preparado según los requerimientos de cada servidor facilitando y asegurando los accesos a esos servidores.

En este enlace http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config podrán encontrar como editar el archivo de configuración del cliente SSH.

Recuerden este es solo un tip más de los cientos que podemos encontrar para asegurar SSH, así que si quieren tener conexiones remotas seguras deberán combinar entre las posibilidades que nos ofrece OpenSSH.

De momento es todo, espero les sirva de algo esta información y esperen la próxima semana otra publicación sobre seguridad en SSH.

Nota: si desean leer el libro "SSH The Secure Shell" no dejen de consultar las páginas del manual de la versión que tengan instalada, pues el libro está bastante atrasado en lo que respecta a las opciones soportadas por OpenSSH.

Entradas populares de este blog

Mensaje de bienvenida en la Consola

Es una pequeña utilidad para mostrar texto ASCII en la consola. Se llama Figlet y la podemos instalar en Ubuntu con “sudo apt-get install figlet”. Podemos hacer que aparezca un mensaje de bienvenida en la consola si añadimos estas lineas al archivo “$HOME/.bashrc”: #Mensaje figlet “Texto Que quieras $USER”

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...