Underc0de

[In]Seguridad Informática => Seguridad web y en servidores => Mensaje iniciado por: ANTRAX en Diciembre 11, 2014, 08:06:34 AM

Título: Mas seguridad en SSH
Publicado por: ANTRAX en Diciembre 11, 2014, 08:06:34 AM
(http://proximatic.es/wp-content/uploads/2012/05/SSH1.jpg)

Según Wikipedia:

CitarSSH (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.

Con unas pequeñas y sencillas pautas, podemos asegurar un servidor SSH, con la finalidad de evitar accesos no deseados. Nos vamos a centrar primero en el fichero de configuración del servicio, normalmente ubicado en:

Código (text) [Seleccionar]
/etc/ssh/sshd_config

Cambiar el puerto de acceso (por defecto 22) por uno alternativo, por ejemplo el 1242 (debe ser superior a 1024:

Port 1242

Código (text) [Seleccionar]
PermitRootLogin no

Utilizar autenticación mediante llaves públicas/privadas (SSH Public-Key / Private-Key Authentication). De este modo, y si deshabilitamos el acceso mediante autenticación con clave de acceso, solamente podrá acceder al sistema aquel equipo que tenga una llave autorizada en el servidor. La forma más rápida de crear una llave, es ejecutar el siguiente comando en el equipo que va a conectarse al servidor ssh:

Código (text) [Seleccionar]
ssh-keygen -t rsa

Este comando generará una llave pública y una privada (no voy a detarllar ahora el uso del mismo, investigando encontraréis todas sus opciones), deberemos añadir el contenido de la llave pública en el servidor SSH, concretamente en el fichero authorized_keys del usuario con el que vayamos a conectar. Si fueramos a conectar como root, en el servidor destino añadiríamos el contenido al fichero:

Código (text) [Seleccionar]
/root/.ssh/authorized_keys

De este modo accederíamos sin clave al servidor, pues nuestra llave pública SSH está autorizada en el servidor. Si quisieramos entonces permitir solamente el acceso por llave, y no por passwords, lo configuraríamos de tal forma:

Código (text) [Seleccionar]
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication no
PasswordAuthentication no
UsePAM no
KerberosAuthentication no
GSSAPIAuthentication no


Por supuesto, si dejamos activa la autenticación a través de password, es encarecidamente necesario que no sea un password sencillo de averiguar.

En caso de permitir el acceso con password, es conveniente limitar el número de veces que un usuario puede introducir "incorrectamente" una clave, en este caso 5 veces:

Código (text) [Seleccionar]
MaxAuthTries 5

Otra parte extremadamente importante, independiente del fichero de configuración SSH, es permitir el acceso SSH solamente a redes o ips conocidas. Para ello, utilizaremos los siguientes ficheros:

Código (text) [Seleccionar]
/etc/hosts.deny
/etc/hosts.allow


Lo más recomendable es prohibir el acceso SSH a cualquier IP o rango a través del fichero hosts.deny, y posteriormente permitir acceso a determinadas IPs/Rangos en el fichero hosts.allow:

Hosts.deny
Código (text) [Seleccionar]
    $ cat /etc/hosts.deny
    #
    # hosts.denyThis 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.
    #
    # The portmap line is redundant, but it is left to remind you that
    # the new secure portmap uses hosts.deny and hosts.allow. In particular
    # you should know that NFS uses portmap!

    sshd: all


Hosts.allow
Código (text) [Seleccionar]
    $ cat /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: 93.42.132.43 86.34.22.122


Esto es básicamente lo principal a la hora de asegurar el servicio Espero les sirva en algún momento

Autor: NechuZ
Título: Re:Mas seguridad en SSH
Publicado por: po6xsecpo en Diciembre 12, 2014, 04:56:13 PM
Básico y puntual. Gracias.