Servidor SSH

De CURE - Informática
Saltar a: navegación, buscar

Servidor SSH

Resumen SSH

El cliente ssh ya viene instalado por defecto en Ubuntu, no así el servidor ssh.


Instalación por línea de comandos:

Para instalarlo hay que ejecutar:

$ sudo apt-get install openssh-server

Nota: Es posible que el paquete no se encuentre en los repositorios, para agregarlo hay que actualizar la lista abriendo un terminal y ejecutando el comando:

$ sudo apt-get update

Modo gráfico:

1. Ir a: Sistema-> Administración-> Gestor de paquetes synaptic 2. Ingresar en el buscador: openssh-server 3. Seleccionar el paquete openssh-server y hacer click en "aplicar"

Nota: Es posible que el paquete no se encuentre en los repositorios, para agregarlo hay que actualizar la lista abriendo un terminal y ejecutando el comando:

$ sudo apt-get update

Después de instalado, para poder configurarlo hay que editar el archivo /etc/ssh/sshd_config Muy recomendado hacerle una copia de respaldo de este archivo antes de modificarlo: $ sudo cp /etc/ssh/sshd_config{,.original}

El demonio ssh atiende por defecto en el puerto 22, para cambiarlo hay que ir a la linea donde dice:

Port 22

y cambiar el 22 por el puerto que queramos usar.

Para no permitir que se puedan hacer login con el usuario root por ssh hay que cambiar:

PermitRootLogin yes
por:
PermitRootLogin no

Para elegir que usuarios podrán acceder por ssh, hay que agregar la siguiente linea: AllowUsers <usuario1> <usuario2> <usuario3>

Para que los cambios surtan efecto hay que reiniciar el servidor:

$ sudo /etc/init.d/ssh restart

Para solo recargar el cambio de configuración sin reiniciar el servicio:

$ sudo /etc/init.d/ssh reload


SSH con clave pública-privada

Para generar nuestra clave:

$ ssh-keygen -t rsa

Una vez generada, hay que copiarla al usuario del ordenador remoto con el que queremos mantener la relación de confianza usando el comando ssh-copy-id. Este es un ejemplo del uso con la salida del programa:

$ ssh-copy-id usuario_remoto@192.168.0.1

Now try logging into the machine, with "ssh 'usuario_remoto@192.168.0.1'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

En caso que nos de este error cuando queramos entrar por ssh: Agent admitted failure to sign using the key.

Debemos ejecutar el comando:

$ ssh-add

Nos pedirá el passphrase: Enter passphrase for /home/usuario/.ssh/id_rsa: Identity added: /home/pablo/.ssh/id_rsa (/home/pablo/.ssh/id_rsa)


Protejer nuestro servidor SSH

Con denyhosts podremos prevenir el ataque a el servicio o demonio SSH por métodos como fuerza bruta o diccionario. Este después de sucesivos intentos erroneos de logeo por SSH bloquea el acceso a la ip fuente.

Para instalarlo:

$ apt-get install denyhosts

Luego para configurarlo editamos el archivo:

/etc/denyhosts.conf

Tiene muchas opciones para configurar, pero las que nos interesan son:

* purgar las ip bloqueadas después de una hora: PURGE_DENY = 1h
* bloqueo a intentos de login para usuarios inválidos: DENY_THRESHOLD_INVALID = 3
* bloqueo a intentos de login para usuarios válidos: DENY_THRESHOLD_VALID = 5
* bloqueo a intentos de login con el usuario root: DENY_THRESHOLD_ROOT = 1
* bloqueo a intentos de login con usuarios restringidos: DENY_THRESHOLD_RESTRICTED = 1
* vuelve a 0 (cero) el contador de intentos fallidos desde una ip cuando el login es válido: RESET_ON_SUCCESS = yes

Luego de terminar de editar el archivo, hay que reinicar el servicio:

/etc/init.d/denyhosts restart

Referencias

Créditos

   * Pablo García. Resumen de instalación SSH Server, Foro de Ubuntu Desktop.