miércoles, 13 de julio de 2011

6 consejos para mejorar la seguridad de SSH en tu server

Que tal gente!, ahora reportandome con otras cosillas que he estado haciendo en el trabajo. Como ya les había comentado estoy administrando un servidor con RedHat Enterprise 5.6 en el trabajo. Por seguridad (y practicidad) no tenemos mucho acceso físico a los servers así que casi todo es remoto, por lo cual habilite el SSH. Para los que no sepan SSH significa Secure Shell y es un protocolo que permite comunicación entre una computadora y otra por medio de un canal seguro. Con SSH me puedo conectar desde mi lugar al server por consola y hacer cuando desee, decídí configurarlo para que fuera un poco más seguro, les explico que cambios hice.


RedHat viene por default con OpenSSH que básicame es el software que nos permite hacer uso del protocolo SSH para comunicarnos. El problema es que su configuración por default no es la más segura, así que con un poco del poder de google y modificando unos archivos de configuración puedes mejorar la seguridad de tu server. Vamos pues a los consejos.


Archivos de configuración

Lo primero que tenemos que saber es que archivos usa OpenSSH y donde estan.

 /etc/ssh/sshd_config es el archivo de configuración para el server de OpenSSH
 /etc/ssh/ssh_config es el archivo de configuración para el cliente de OpenSSH


IMPORTANTE
En este momento nos interesa el server, que es el que proporciona el servicio y al que alguien podría ingresar. Así que los que modifiquemos será del archivo de configuración del server 
/etc/ssh/sshd_config


Consejo #1 Cambiar el puerto por defecto

El puerto por defecto que usa SSH es el 22, no es extraño que algún script kiddie se encuentre un programita para atacar servicios y lo corra, digamos contra ssh, estos van a ir a escanear el puerto 22, así que es básico cambiar el puerto, algunas personas suguieren que esta práctica es inútil por que es Security by Obscurity, no es realmente mas seguro solo lo estas escondiendo, pero es una primera capa de defensa aunque sea contra los intrusos mas inexpertos, de igual manera yo lo recomiendo.

Busca la línea que dice Port y cambia el número de puerto
Port 1234
ListenAddress 192.168.1.5
ListenAddress 202.54.1.5


Si lo deseas aquí mismo podemos poner cuales ips debe escuchar OpenSSH, por ejemplo mi server en el trabajo tiene 2 tarjetas de red, si ambas tiene IP pero solo quieres que se use SSH por solo una de ellas, escribe la IP en esa línea "ListenAddress" estos no es necesarío, en mi caso tengo las NICs en bonding por lo cual ambas tarjetas responden a la misma IP estática definida para el server. (Hablare de bonding en otro post =P )

Consejo #2 Limitar usuarios

Por default todos los usuarios del sistema tienen derecho a conectarse por SSH, aunque esto puede ser práctico, en la mayoría de los casos no es necesario y puede presentar un problema de seguridad, así que es mejor solo permitir que los usuarios que tu le digas se puedan conectar por SSH.

AllowUsers jorge luis jose

Separados por espacios


Consejo #3 Deshabilitar el login de root

Este es básico y super importante, en ningún momento te conectes directamente con tu cuenta de root a tu server, es mejor conectarte por medio de tu cuenta normal y luego escalar a root desde dentro del server, así que deshabilitemos el login de root. Recordemos que al usar SSH la información va encriptada pero aún así es mejor prevenir =P. Además si usamos sudo para escalar privilegios root recivira unos correos bien nice con información de quien corrio que comando bajo sudo esto es genial para el monitoreo de seguridad.

PermitRootLogin no


Consejo #4 No permitas passwords en blanco

Esta también es super importante, es común que algunos dejen passwords en blanco por flojera, comodidad, etc, pero esto es pésimo para la seguridad de un server, así que para estar seguros deshabilitamos el uso de passwords en blanco


PermitEmptyPasswords no

Consejo #5 Uso del protocolo 2 de SSH

El protocolo 1 tiene problemas seguridad, mas info aquí, este protocolo es viejo y obsoleto,esta permitido para ser compatible con clientes que aún lo usen. No es necesario es mejor permitir solo el protocolo 2 que da mayor seguridad y su uso esta muy extendido.

Protocol 2

Por último el consejo más simple de todos

Consejo #6 Usa passwords FUERTES!!

Aunque parece obvio para la mayoría de nosotros, no lo es así para todos, elimina la posibilidad de ataques por fuerza bruta usando passwords fuertes, no uses palabras comunes como password, carro, amor o similares para evitar ser victima de un ataque por diccionario, informate un poco al respecto usa un password fuerte pero que puedas recordar, pro ejemplo.

miABU3LITAmeDIJOqueSI3MPR3meLAVARAlosDI3NT3S0?#

Las frases mezcladas son más faciles de recordar que esto por ejmplo:

#$%TGHJU(nh98nyyas3U/&(Hioj90/UHB%$N4v


Para terminar, reiniciamos el server de ssh como root

# service sshd restart


Y listo, mejoramos la seguridad de nuestro server y solo nos tomo unos minutos, por supuesto que ahy más consejos de seguridad que puedes emplear como usar passwordless login con keys y ahy otros más, por lo pronto estos son los que yo uso en este momento, igual les dejo un link de referencia de alguién que sabe mas que yo =P nos vemos.

Sigue leyendo:

1 comentario:

  1. y yo creia que ssh era algo asi como cuando le dices a alguien que se calle! OMG WTF BBQ cuanto aprendizaje saludos surfer!

    ResponderEliminar

Deja tu comentario aquí, cuenta que te parecio el artículo o simplemente saluda!