Configuraciones SSH personalizadas más comunes del servidor OpenSSH

Configuraciones SSH personalizadas más comunes del servidor OpenSSH

El Abierro conjunto de servicios públicos Permítanos crear conexiones seguras y cifradas entre máquinas. En este tutorial veremos algunas de las opciones más útiles que podemos usar para cambiar el comportamiento de SSHD, el Abierro demonio para facilitar su trabajo de administración del sistema Linux.

En este artículo asumimos la existencia de un servidor ya en ejecución y accesible. Si desea saber más sobre la instalación de OpenSSH, puede echar un vistazo a este artículo sobre cómo instalar SSH Server en Ubuntu Linux.

En este tutorial aprenderás:

  • Cómo personalizar el comportamiento del demonio SSHD manipulando las opciones en el archivo de configuración SSH principal /etc/ssh/sshd_config
  • Cómo cambiar los puertos predeterminados utilizados por el servidor
  • Cómo cambiar la dirección que el servidor escucha a
  • Cómo cambiar el tiempo máximo de inicio de sesión de SSH
  • Cómo permitir o negar el inicio de sesión como root
  • Cómo cambiar los intentos de inicio de sesión máximo y el número máximo de sesión abierta
  • Cómo mostrar un mensaje cuando el usuario intenta autenticarse en el servidor
  • Cómo habilitar/deshabilitar la contraseña y la autenticación de PubKey
  • Cómo habilitar/deshabilitar hostBasedAuthentication
  • Habilitar/deshabilitar el reenvío X11


Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución
Software No se requiere un software adicional para seguir este tutorial aparte de OpenSsh
Otro Un servidor OpenSsh en ejecución
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

El archivo de configuración de Daemon SSHD

Por defecto SSHD, el Abierro demonio, lee su configuración desde el /etc/ssh/sshd_config archivo. Se puede especificar una ruta de archivo diferente utilizando el -F Opción Al lanzar el demonio. Hay muchas opciones que podemos cambiar para alterar el comportamiento del demonio. Si bien no es posible mencionarlos a todos aquí, veremos algunos de los más utilizados y lo que podemos obtener cambiando sus valores. Cada vez que se cambia una opción, para que los cambios sean efectivos se deben reiniciar el demonio. Al usar SystemD, el comando para ejecutar es:

$ sudo systemctl reiniciar sshd

Cambiar los puertos utilizados por el servidor

Esto es lo que se llama un seguridad a través de la oscuridad Medida: por defecto el SSHD Daemon escucha en el puerto 22. Cambiar el puerto en uso no mejora la seguridad per se, ya que es trivial hacer un escaneo de puertos y ver qué puertos están en uso por una máquina. Sin embargo, más que a menudo, los intentos de inicio de sesión de la fuerza bruta solo se dirigen al puerto predeterminado, por lo que modificar el puerto en uso puede ayudar. Para instruir al demonio que escuche un puerto específico, usamos el Puerto opción y proporcionar el número de puerto:

Puerto 1024


Se pueden proporcionar múltiples ocurrencias de la opción: el servidor escuchará en todos los puertos especificados. Antes de reiniciar el servidor SSH para que el cambio sea efectivo, es realmente importante modificar las reglas del firewall en consecuencia al cambio. En el lado del cliente, para conectarse con un puerto específico, debemos especificar el número de puerto utilizando el -pag Opción (abreviatura de -port). Por ejemplo, para iniciar sesión usando el puerto 1024, escribiríamos:

$ ssh -p 1024 egdoc@feanor

Para evitar tener que especificar el puerto cada vez que nos conectamos al servidor, podemos configurar una entrada en el ~/.ssh/config Archivo (es posible que tengamos que crearlo, ya que no existe de forma predeterminada y debemos hacerlo accesible solo por el usuario), como en el ejemplo a continuación:

Anfitrión Feanor Nombre de host 192.168.0.39 Puerto 1024

De esta manera, cada vez intentaremos ssh en una coincidencia Anfitrión (Feanor en este caso) Los parámetros especificados en la estrofa relacionada del archivo de configuración SSH se aplicarán automáticamente.

Cambiar la dirección que el servidor escucha a

Además del puerto del SSHD Daemon escucha, también podemos cambiar el Dirección de escucha. Por defecto, el servidor escucha en todas las direcciones locales. Los ejemplos de la sintaxis para usar con esta opción ya se pueden encontrar en el archivo de configuración de SSH:

#Listenaddress 0.0.0.0 #listenaddress ::

Podemos especificar la dirección de una de las siguientes maneras:

  • host | dirección IPv4 | dirección IPv6
  • Host | Dirección IPv4: puerto
  • Host | Dirección IPv6: puerto

Se llama a la opción de usar Escucha Se permiten múltiples ocurrencias de las opciones para especificar múltiples direcciones. Nosotros podemos usar IPv4 o IPv6 dirección, y opcionalmente especifique el puerto que se utilizará. Si no especificamos un puerto del SSHD Daemon escuchará en los puertos especificados con el Puerto Opción que vimos arriba.

Cambiar el tiempo máximo de inicio de sesión

Podemos configurar el Abierro Daemon para desconectar después de una cantidad de tiempo específica si el usuario no inicia sesión con éxito. En este caso, se llama a la opción que queremos cambiar Tiempos lógicos. Todo lo que tenemos que hacer es proporcionar el valor límite de tiempo, por ejemplo:

Loginguracetime 2metro

El valor predeterminado para esta opción es 120s (segundos)

Permitir o negar el inicio de sesión como root

Mediante el uso del Permitrootlogin opción que podemos establecer si el SSHD Daemon debe permitir que el usuario root inicie sesión directamente. La opción acepta uno de estos valores:

  • No
  • Prohibit-password
  • solo comandos forzados

Los dos primeros valores se explican bastante por sí mismos. Cuando usas El usuario raíz puede iniciar sesión a través de SSH, cuando use No Esta posibilidad se niega. El Prohibit-password y solo comandos forzados Los valores son más interesantes.

Cuando el primero
se usa como el valor del Permitrootlogin La opción, la contraseña y los inicios de sesión interactivos del teclado están deshabilitados, pero el usuario root puede iniciar sesión utilizando un Llave pública. Si solo comandos forzados se usa, en su lugar, se permite el inicio de sesión de la raíz a través de la autenticación de la clave pública, pero solo si un dominio La opción se especifica en la clave autorizada. Por ejemplo:

comando = "ls -a" ssh -rsa [...]


Arriba lo especificamos LS -A Como el comando para la tecla SSH que será utilizado por Root. De esta manera, al conectarse usando la clave, el comando se ejecutará y luego la conexión al servidor se cerrará. Verifiquemos (aquí supuse que la clave ya está en su lugar en el cliente y ha sido autorizada en el servidor):

$ ssh root@feanor Ingrese la frase de pases para la clave '/home/egdoc/.ssh/id_rsa ': ... bash_history .bashrc .perfil .ssh .empuje .Viminfo Connection a Feanor cerrado.

Cambio de los intentos de inicio de sesión máximos y el número máximo de sesión abierto

Otros dos parámetros que podemos querer cambiar es el número de intentos de inicio de sesión por conexión, y el número de shells, inicio de sesión o sesión de subsistema de apertura permitidas. Podemos cambiar el parámetro anterior usando el Maxauthtries opción, proporcionando el número de intentos permitidos (el valor predeterminado es 6). Este último, en cambio, puede modificarse utilizando el MaxSessions opción. Esta opción también toma un valor entero, el valor predeterminado es 10.

Muestra un mensaje cuando el usuario intenta autenticarse en el servidor

Podemos usar el Bandera Opción para especificar un archivo que contiene algún texto que queremos enviar al usuario antes de que se autentica al servidor. El valor predeterminado para la opción es ninguno, Entonces no se muestra ningún banner. Aquí hay un ejemplo. El archivo/etc/ssh/banner que creamos contiene algún texto que usamos como mensaje. Si establecemos la opción a continuación:

Banner/etc/ssh/banner.TXT

Cuando intentamos iniciar sesión, obtenemos el siguiente resultado:

$ ssh egdoc@feanor ##############################Banner de prueba########## ################### Egdoc@Feanor 

Habilitar/deshabilitar la contraseña y la autenticación de PubKey.

El SSHD Daemon proporciona múltiples formas de autenticar a los usuarios. Podemos elegir habilitar o deshabilitar la autenticación por contraseña o por clave pública utilizando respectivamente el Contraseña y PubKeyAuthentication opción. Por defecto, ambas opciones generalmente se establecen en : Esto significa que el usuario puede conectarse al servidor proporcionando su contraseña y también mediante el uso de una clave pública que posee (la clave también puede protegerse con una contraseña). Para deshabilitar una de las dos opciones que simplemente usamos No Como valor. Por ejemplo, si solo queremos permitir el inicio de sesión por claves públicas, podemos establecer:

Contraseña Autenticación no

De esta manera solo usuarios que tienen un Llave pública contenido en el archivo de claves autorizadas podrá iniciar sesión en el servidor. El archivo de claves autorizado es el archivo que contiene las claves públicas permitidas. Por defecto, el archivo es .ssh/autorized_keys En el directorio de inicio del usuario en el servidor, pero esto se puede cambiar utilizando el Autorizado Keeysfile opción y especificación de un archivo alternativo, proporcionando un absoluto o relativo camino. Cuando se usa una ruta relativa, se considera en relación con el directorio de inicio de los usuarios. La opción también se puede configurar en ninguno: de esta manera el servidor no buscará claves públicas en los archivos.

Habilitar/deshabilitar hostBasedAuthentication

El servidor OpenSSH se puede configurar para aceptar basado en huésped autenticación. Al usar este tipo de autenticación, un host se autentica en nombre de todos o algunos de sus usuarios. La opción está configurada en No por defecto. Configurar la opción a no es suficiente para hacer que la autenticación basada en el host funcione.

Habilitar/deshabilitar el reenvío X11

El X11 El sistema de ventanas tiene una arquitectura de cliente cliente: los clientes son las muchas aplicaciones gráficas que solicitan conexión al servidor que administra las pantallas. El servidor X11 y sus clientes a menudo se ejecutan en la misma máquina, pero esto no es necesario. Es posible acceder a un servidor X11 remoto a través de un protocolo dedicado pero no seguro. Abierro Ejecutemos la conexión de forma segura, creando un túnel encriptado. La opción que controla este comportamiento es X11. La función generalmente está deshabilitada de forma predeterminada, por lo que está configurado en No.

Debemos establecer la opción para Si queremos aprovecharlo. En el lado del cliente, habilitamos la función utilizando el -X opción desde la línea de comando o establecer VENTAX11 a En el archivo de configuración del cliente. Por ejemplo, digamos que tenemos X11 ejecutándose en la máquina remota; Queremos usar la conexión SSH para iniciar la aplicación "Pluma" (un editor de texto liviano) y controlarla usando x11forwarding. Corremos:

$ ssh egdoc@feanor -x pluma


El programa se lanzará. En la barra de título, claramente podemos ver que se está ejecutando en "Feanor", que es el nombre de la máquina remota.



Reenvío X11 en acción

Conclusión

En este tutorial vimos cuál es el valor predeterminado SSHD archivo de configuración de demonio y aprendimos cómo podemos usar una alternativa especificando su ruta con el -F opción Al comenzar el servicio. También echamos un vistazo a algunas de las opciones más útiles que podemos usar en dicho archivo para cambiar el comportamiento de SSHD. Vimos cómo permitir o negar las autenticaciones basadas en la contraseña y basadas en la clave pública; cómo habilitar o negar el inicio de sesión raíz; Cómo habilitar o deshabilitar la función de reenvío X11 y cómo hacer que el servidor muestre un mensaje cuando un usuario intenta autenticarse en ella.

También vimos cómo especificar los intentos de inicio de sesión máximos permitidos por conexión y cómo cambiar las direcciones y los puertos al que el servidor escucha. Para saber más sobre las posibles configuraciones del servidor, consulte la página Manual para SSHD y para el archivo de configuración SSHD_CONFIG.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo aprovechar al máximo OpenSsh
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Linux: Configuración SSH
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cosas para instalar en Ubuntu 22.04
  • Cómo monitorear la actividad de la red en un sistema Linux
  • Instale Arch Linux en VMware Workstation
  • Descarga de Linux