Portada del sitio > Sistemas > Administración > Linux > Como securizar SSH
Como securizar SSH
Sábado 15 de junio de 2013, por
Según la wikipedia:
SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado..
Asegurar SSH
SSH ya de por si es un protocolo seguro , pero podemos afinar mas los parametros para que sea aun mas seguro
Pasos que seguiremos
- Deshabilitar SSH 1
- Autenticación basada en clave
- No permitir autenticación por Password
- Cambiar el puerto por Defecto
- No Permitir logeo como root
- Banear ips tras 5 logins erroneos
Deshabilitar SSH 1
Puesto que la versión del protocolo ssh 1 hay algunas inseguridades , que mejor manera que usar el protocolo 2 que es mucho mas seguro. Para esto editaremos el fichero de configuración de ssh en /etc/ssh/sshd_config
dejaremos la opción protocolo así
Protocolo 2
Eso significa - aceptar la versión 2 del protocolo, y nada más. Guardar el fichero de configuración y reiniciar sshd.
# /etc/init.d/sshd restart
Autenticación basada en clave
Entrar con usuario y password está bien , pero podemos tener mas seguridad usando un par de claves publica y privada
Creando nuestra clave publica (En nuestra maquina Cliente)
ssh-keygen -t rsa
Al ejecutar este comando nos pide una clave le asignamos una y luego deberemos colocar en esa maquina remota la clave RSA publica que acabamos de generar ( /.ssh/id_rsa.pub ) en el directorio /.ssh/authorized_keys de el servidor ssh.
Habilitamos Autenticación por Clave (En el Servidor)
Ahora es momento de volver a configurar /etc/ssh/sshd_config para habilitar la autenticación con las claves anteriormente añadidas /.ssh/authorized_keys del servidor ssh.
En /etc/ssh/sshd_config :
Deshabilitar la autenticación por password
Para poder hacer util lo anteriormente mencionado dejaremos solo la autenticación por clave eliminando la autenticación por password para esto editaremos de nuevo /etc/ssh/sshd_config
PasswordAuthentication no
De está forma se elimina el impacto de ataques por fuerza bruta.
Cambiar el puerto por defecto
Para asegurar aun mas nuestro sistema cambiaremos el puerto por defecto de este modo evitaremos exploits tipicos de Script Kidies
/etc/ssh/sshd_config remplazamos la linea
Port 22
Port 22
por
Port 25142
Donde 25142 puede ser otro puerto.
No permitir logeo como root
Puesto que root es el usuario con mas privilegios y el que se suele intentar explotar pues no permitiremos el logeo como root añadiendo en /etc/ssh/sshd_config
PermitRootLogin no
Banear a las ips que hacen mas de 5 logeos erroneos
Para esto usaremos una herramienta llamada fail2ban
instalamos fail2ban
# apt-get install fail2ban
una vez instalado crearemos una directiva para ssh
# vi /etc/fail2ban/jail.local
añadiendo la siguiente directiva
reiniciamos fail2ban
# /etc/init.d/fail2ban restart
Nota: Cada vez que se hace un cambio en /etc/ssh/sshd_config tenemos de reiniciar sshd para ser aplicado/etc/init.d/sshd restart
Espero que os guste :D