Securizando nuestro SSH
SSH es la herramienta utilizada normalmente para acceso remoto a servidores Linux, que nos permitirá conectar de manera segura ya que la conexión es encriptada.
Aunque es un protocolo muy seguro también es muy utilizado y atacado por eso mismo existen un par de medidas con las cuales podremos securizar bastante nuestra conexión.
Un atacante lo que busca es lograr hacerse con el control del servidor, ya sea explotando alguna vulneración de un demonio SSH mal configurado o desactualizado o lo más grave con datos de acceso «débiles» o por intento de corromper el acceso mediante ataques de fuerza bruta contra el loguin. Esto último es el intento infinito de acceso mediante script hacia el user «root».
En este post trataremos de explicar como securizar nuestro servidor SSH y poder así proteger y securizar nuestro server.
LO PRIMERO Es identificar las opciones o configuraciones que podemos realizar en SSH:
# vi /etc/ssh/sshd_config
En el archivo de configuración podemos editar:
– Port: Es el puerto que utilizará el demonio de SSH para conectarse, normalmente se utiliza el puerto 22 por default, lo cual debería ser cambiado por alguno de nuestro gusto. Ejemplo: Port 4025
– Protocol: Es el protocolo SSH que utilizará por default el SSH, normalmente esta colocado 2, 1 pero el protocolo 1 de conexión está en desuso y por consiguiente es más vulnerable, acá cambiaremos el valor a solamente 2.
– LoginGraceTime: Es el tiempo que posee cada usuario en colocar los datos de acceso o intentarlo en varias ocaciones si ingresa mal los datos. Este punto es muy importante porque por default, esta configurado en 2 minutos tiempo suficiente para que un script haga cientos de intentos de loguin. Para un usuario normal bastan 10 o 20 segundos para poder loguearse.
– PermitRootLogin: Este interesante punto es el que SIEMPRE tendremos que modificar para tener nuestro sistema seguro, todos los servers linux y unix usan al usuario root como administrador del sistema, es decir que el usuario default con más privilegios se llama «root» en consecuencia es el usuario más atacado y forzado. Por eso mismo es altamente recomendable usar cualquier usuario para ingresar al SSH, negando el loguin directo al Root y manejandose con la escala de privilegios que da el su o sudo.
– MaxAuthTries: Este valor es el que nos da la cantidad de loguins incorrectos que podemos tener antes de cerrar la pantalla de loguin, normalmente y por default este valor es 6 pero lo recomendable es dejarlo en 2 para así evitar el intento masivo de loguin.
– MaxStartups: Indica la cantidad de ssh que se pueden abrir por IP, este valor por default es de 100 lo cual permitirá abrir 100 conexiones hacia nuestro servidor desde una misma IP. Este valor es muy exagerado, pasándolo a 3 o 5 es más que suficiente.
– AllowUsers: Si solo usamos un par de usuarios el ssh lo mejor es limitar el acceso a dichos users y tener una tabla de accesos. Por ejemplo:
AllowUsers soyadmin
AllowUsers quemiras
AllowUsers otromas
Aquí estamos otorgando permisos de acceso a estos 3 usuarios.
¿NECESITAMOS SSH? En algunos casos no se usa, si es así lo mejor es desactivarlo
# vi /etc/hosts.deny
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd: all
SI TENEMOS IP FIJA podemos permitir el acceso mediante a SSH a las IP que deseamos:
# vi /etc/hosts.allow
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd: 32.32.22.12 128.111.69.244
Les dejo la configuración que poseo:
Port 1122
Protocol 2
LoginGraceTime 10
PermitRootLogin No
MaxAuthTries 2
MaxStartups 2
AllowUsers soyadmin
No es difícil y es muy recomendable «tocar» y mantener nuestro ssh configurado correctamente. Con un par de pasos y de valores lograremos tener fuera de nuestra puerta a visitantes deseados de poder ingresar.
Comentarios recientes