En esta entrada escribiré un poco sobre como securizar el puerto SSH (Secure Shell) de los servidores linux. SSH ya de por si es un puerto seguro, pero comentaré una par de cosas para hacerlo aún más seguro.
Primero de todo, para conectarnos a este puerto en remoto, usaremos un cliente terminal como por ejemplo Putty. Básicamente queremos securizar el puerto y el servidor, para evitar ataces que son muy comunes al puerto 22 y con ataques de diccionario pueden acceder a nuestro servidor. Empecemos.
Prioritario para securizar el puerto SSH es NUNCA usar protocolo version 1, siempre hay que usar versión 2.
Otro punto muy básico es cambiar el puerto por defecto del SSH ( por defecto es el 22 ) y evitar el acceso root por SSH de la siguiente manera:
Desde nuestro servidor linux editamos el archivo de configuración del Secure Shell port.
/etc/ssh/sshd_config
A continuación vemos que el puerto por defecto es el 22 y está permitido el acceso de root.
Por ejemplo cambiamos el puerto del 22 al 2522 y en permitrootlogin cambiamos el yes por no.
Guardamos la configuracón y reiniciamos el servicio SSH de la siguiente manera:
/etc/init.d/ssh restart o /etc/init.d/sshd restart
No nos desconectará la sesión y los cambios se aplicarán una vez desconectemos y volvamos a conectar. Antes de probarlo si tenemos habilitado el firewall o iptables, debemos aplicar una regla para permitir el acceso por ssh con el nuevo puerto.
( Si no creamos la regla, nunca podremos volver a conectarnos en remoto a nuestro servidor por el nuevo puerto configurado ni por el antiguo puerto 22. Con lo que si hemos salido del terminal remoto y no hacemos el siguiente paso, no habrá manera de volver a acceder en remoto. La única manera será ir a la consola del servidor fisicamente o si es una VM abrir la consola virtual y modificar las Iptables).
Lo hacemos de la siguiente manera. (CentOS) editamos el siguiente fichero de configuración.
/etc/sysconfig/iptables
y agregamos la siguiente linea:
-A INPUT -p tcp -m state –state NEW -m tcp –dport 25222 -j ACCEPT
En este caso pongo 25222 porque es el puerto que hemos usado como ejemplo, pero puede ser cualquier otro que no se use por otro servicio.
Simplemente quedará reiniciar el servicio de iptables o firewall y listo.
En otro post, explicaré como conectar via SSH si necesidad de usar password y usar claves públicas/privadas.
Norman trabaja como Administrador de Sistemas con más de 12 años de experiencia en entornos Windows, Linux, VMware, SAN, Redes. | MCSA | CCNA | VCP-DCV | vExpert