ASEGURANDO SSH


SSH (Secure SHell), es tal vez la herramienta de conexión segura mas usada en el mundo Linux. Simplemente, no hay nada como ssh para conectarse entre servidores Linux.

Seguramente es por eso también que es normal que el servidor SSH sea atacado. Básicamente, los ataques a ssh están basados en técnicas desarrolladas para servidores mal configurados o que no esten actualizados. El atacante, trata de encontrar alguna vulnerabilidad descubierta, tal vez un puerto abierto o de ataques de login mediante fuerza bruta. (Con brutus o con otro mas fuerte)

Una mala configuración sería permitir que el usuario root tenga permiso de acceso al servidor ssh, un atacante puede lanzar un ataque de fuerza bruta con el objeto de adivinar la contraseña. El no tener un número máximo de intentos de conexión le permitiría al atacante lanzar cientos de sesiones simultaneas de solicitud de ingreso.

Otra mala configuración sería el no limitar el número de intentos fallidos por conexión y se pueden enumerar muchas otras. Si a todo esto agregamos una contraseña debil de root (por ejemplo menos de 8 caracteres y solo minúsculas) será cuestión de unos cuantos minutos o un par de horas para lograr el objetivo.

ssh mas seguro

Normalmente el archivo de configuración principal de ssh es:

/etc/ssh/sshd_config   (puede variar en algunas distros)

Las principales directivas de configuración son:

Port 432                           (o el que se quiera menor a 1024)
Protocol 2
LoginGraceTime 30
PermitRootLogin no
MaxAuthTries 2
MaxStartups 3
AllowUsers sergio                     o también:
AllowUsers sergio analuisa@10.0.1.100

Port: El puerto 22 es el puerto predeterminado para atender las solicitudes de conexión, es por eso que un atacante intentará acceder usando este puerto, el cambiar el puerto no garantiza que el servicio ya no será localizable.

Protocol 2: Hay dos versiones de ssh en cuanto a su protocolo de comunicación, la versión 1 y la versión 2. La 1 esta en desuso pero todavía se incluye por compatibilidad, tiene varias vulnerabilidades conocidas y su uso no es ya recomendable. Un error frecuente es dejar al demoinio ssh que permita el uso de las dos versiones (Protocol 2,1). Para evitar el uso del protocolo 1 y sus posibles ataques a este, basta con indicar en esta línea que solo admita comunicaciones de ssh basadas en el protocolo 2.

LoginGraceTime 30: El número indica la cantidad de segundos en que la pantalla de login estará disponible para que el usuario capture su nombre de usuario y contraseña, si no lo hace el login se cerrará, evitando así dejar por tiempo indeterminado pantallas de login sin que nadie las use.

PermitRootLogin no: Esta es quizás la más importante directiva de seguridad que podemos indicar para fortalecer nuestro servidor ssh. Prácticamente todos los sistemas Linux y Unix crean por default al usuario root, entonces sabemos que existe!!!. Muchos ataques de fuerza bruta se concentran en atacar al usuario root con la esperanza de que tenga una contraseña débil (¡que es mas común de lo que pensamos!).

MaxAuthTries 2: El número indica la cantidad de veces que podemos equivocarnos en ingresar el usuario y/o contraseña, en este caso después de dos intentos, se perderá o cerrará la conexión.

MaxStartups 3: El número indica la cantidad de pantallas de login, o cantidad de conexiones simultaneas de login que permitirá el sshd por ip que intente conectarse.

AllowUsers: En sistemas donde se tiene varios usuarios, quizás existan varios que solo pueden acceder desde la LAN por ejemplo, o quizás solo desde ciertos equipos. Si solo indicamos al usuario:

AllowUsers sergio

El usuario sergio podrá ingresar desde cualquier PC en cualquier lugar, no se está validando el host.
Si se quiere mas seguridad, es posible indicar también el host mediante el símbolo @

AllowUsers sergio@192.168.0.25     (solo desde la IP indicada)
AllowUsers sergio@192.168.0.*       (Toda la red indicada)
AllowUsers sergio@*.pato.com  analuisa@ventas.pato.com
  (sergio desde cualquier equipo del dominio indicado, analuisa solo desde el equipo indicado)

Como puede verse, bastan algunas cuantas directivas o variables bien configuradas en nuestro archivo /etc/ssh/sshd_config para incrementar enormemente la seguridad en este servicio.

Proxima entrega

Sistemas de llaves publicas y privadas con SSH

Entradas Relacionadas

  • No hay entradas relacionadas.
  1. No hay Comentarios
(No será publicado)