Servidor SSH (sshd)

El servidor SSH es el demonio responsable de gestionar las conexiones remotas SSH al equipo. Instalando un servidor SSH, podemos acceder remotamente a nuestra máquina para realizar distintas tareas a través de la terminal.

Instalación

El proceso de instalación es sencillo:

#con privilegios de superusuario:
apt-get install openssh-server openssh-blacklist

Esta operación tomará un poco de tiempo ya que el servidor necesita crear las llaves de autenticación para nuestro servidor, las cuales proveen de autenticación de cifrado vía anillos de claves públicas. Aparte de esto será posible hacer login desde una estación remota simplemente usando el nombre de usuario y contraseña de una cuenta.

Configuración

La configuración del servidor se lleva a cabo en el archivo /etc/ssh/sshd_config. El archivo debe ser modificado por el usuario root.

Aquí se discutirá las opciones más interesantes de configuración.

:!: Más información puede encontrarse, por supuesto, con man sshd_config.
AllowGroups
DenyGroups
Forma: AllowGroups ¦ DenyGroups nombregrupo


Cuando esta opción está presente, SSH aceptará o denegará logins para los usuarios que pertenezcan a la lista de grupos nombregrupo…; los nombres estan separados por espacios. Por defecto, SSH acepta login para todos los grupos.

AllowUsers
DenyUsers
Forma: AllowUsers ¦ DenyUsers usuario1


Cuando esta opción está presente, SSH aceptará o denegará logins para los usuarios con nombre de usuario en la lista usuario1…; los nombres estan separados por espacios. Por defecto, SSH acepta login para todos los usuarios.

PermitRootLogin Forma: PermitRootLogin yes¦no¦without-password¦forced-commands-only


Esta opción determina si el usuario root puede hacer login remoto, y es una opcion clave para fortalecer un servidor. Los valores posibles son:

  • yes: el usuario root puede hacer login remoto.
  • no: el usuario root NO puede hacer login remoto. ¡Recomendado!
  • without-password: root puede hacer login solamente con autenticacion de clave privada.
  • forced-commands-only: root puede hacer login solamente si ejecuta un comando simple y no pasa al shell.

Port Forma: Port numero


Esta opción determina el puerto en el cual escucha SSH y es una opción clave para fortalecer un servidor. Por defecto es 22 que es el puerto anotado para SSH en /etc/services. Se recomienda cambiarlo.

LoginGraceTime Forma: LoginGraceTime segundos


Esta opción determina cuánto tiempo va a esperar SSH que una conexión haga login efectivo antes de botar la conexión, y es una opción clave para fortalecer el servidor. El valor por defecto es 120 segundos; el valor 0 deshabilita la característica haciendo que SSH espere un login por siempre, o hasta que la conexión caiga por otros motivos. Un buen valor es de 30 segundos, después de todo no debiera tomar tanto tiempo teclear una contraseña.

Ciphers Forma: Ciphers lista de ciphers


Esta opción determina qué cifrados va a permitir el servidor. Por defecto se aceptan algoritmos como AES-128 y Blowfish. Para cambiar esta opción se recomienda revisar la pagina del manual (via man) y ver que algoritmos están soportados.

Banner Forma: Banner archivo


Esta opción muestra el banner archivo al cliente remoto justo antes del login. Puede ser por ejemplo un mensaje de bienvenida. Igualmente en algunas legislaciones es necesario mostrar una advertencia de login para tener ciertos tipos de protección legal, pero que yo sepa no es necesario en Chile.

MaxStartups Forma: MaxStartups margen:ratio:maximo


FIXME

MaxAuthTries Forma: MaxAuthTries cantidad


Cuando esta opción está habilitada y una conexión ha fallado en más de cantidad/2 login sucesivos, todos los intentos subsiguientes son archivados en el historial de autenticación de categoría auth del sistema (ej.: /var/log/auth.log).

Inicio y Parada

[root@servidor] ~$ service sshd start¦stop

Ver También

indexmenu_n_61