Afinando la conexión a Secure Shell (SSH)

Hay que tocarle un poco las tripas a la configuración del servidor SSH para que sea más segura, teniendo cuidado de no cagarla, ya que podríamos quedarnos sin poder acceder al servidor.

Primero hacemos una copia de seguridad del archivo de configuración del daemon de SSH (sshd):

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Editar el archivo de configuración:

# nano /etc/ssh/sshd_config

Sin discusión, buscar y cambiar la línea que dice ‘#Protocol 2, 1’ por ‘Protocol 2’. Esto aceptará solo el protocolo 2, ya que el otro está “obsoleto” y ofrece menos seguridad.

Si NO deseamos que se puede hacer login por SSH directamente a root, buscar y cambiar la línea que dice ‘#PermitRootLogin yes’ por ‘PermitRootLogin no’.

Si deseamos cambiar el puerto de escucha y evitarnos muchas pruebas y ataques automatizados en el puerto 22 (el defecto para SSH), entonces podemos cambiar el nº de puerto donde dice ‘Port 22’ por uno que nos guste y que no esté ocupado. Ojo con el firewall para este nuevo puerto.

Grabamos y salimos de la edición del archivo.

Si hemos desactivado el login directo via root (PermitRootLogin no) o hemos cambiado el puerto de escucha:

Este es un momento peligroso, ya que podemos quedarnos fuera del servidor. Si el usuario root *no* puede entrar directamente por SSH, ¿quién sí puede? Y si hemos cambiado el puerto de escucha, ¿hemos mapeado el nuevo puerto en el firewall?

Si no permitimos que el usuario root pueda hacer login por SSH directamente, la idea es que primero debemos hacer login con un usuario normal, y después elevar los privilegios a root. El tema es que sería una mala idea que cualquier usuario “normal” pueda convertirse root. Deberíamos crear un nuevo usuario con “useradd” (o usar “usermod” si ya está creado), y asignarle el grupo “wheel” (wheel es un grupo especial que limita el número de personas que tienen privilegio para ascender a root con el comando “su”).

# useradd -G wheel nombredeusuario

Es importante conocer el password de este nuevo usuario, así que tanto si lo has creado como si lo has modificado, elige un password con

# passwd nombredeusuario
Changing password for user nombredeusuario.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Finalmente nos aseguramos de que sólo los usuarios del grupo “wheel” tiene permitido usar el comando “su” para ascender a root.

# nano /etc/pam.d/su

Eliminar el # antes de ‘auth required /lib/security/pam_wheel.so use_uid’

Asegúrate de haber llevado a cabo estos pasos correctamente antes de reiniciar el servicio sshd usando:

# service sshd restart

o bien

# /etc/init.d/sshd restart

De este modo ahora para acceder por SSH será necesario hacer primero login con el ‘nombredeusuario’ del ejemplo, y una vez dentro podemos hacer:

# su -

Para convertirnos en root

Esta entrada fue publicada en Linux, Servidores. Guarda el enlace permanente.

Deja un comentario