La guía completa del archivo Sshd_Config para Linux

El protocolo SSH o Secure Shell se utiliza para iniciar sesión de forma remota en una máquina y ejecutar comandos en la máquina remota. Los datos que se transfieren mediante el protocolo SSH se cifran con algoritmos especiales que hacen que SSH sea más seguro que Telnet. Básicamente, OpenSSH es una herramienta que implementa este protocolo.

¿Qué cubriremos?

En esta guía, exploraremos los diferentes aspectos del archivo de configuración del servidor OpenSSH. Comencemos ahora.

Archivos de configuración de OpenSSH

Hay algunos archivos principales tanto para el cliente como para el servidor de OpenSSH. Tiene dos tipos de archivos de configuración:

1. Archivos relacionados con el lado del cliente: uno de los archivos es ssh_config. Es un archivo de configuración de todo el sistema. Este archivo se encuentra en /etc/ssh/ssh_config.

El otro archivo es config, que es un archivo de configuración específico del usuario ubicado en $HOME/.ssh/config.

El programa SSH en un host toma la configuración de estos archivos oa través de la interfaz de línea de comandos. En el caso de los archivos mencionados anteriormente, el archivo de configuración de todo el sistema, que es ssh_config, tiene prioridad sobre el archivo de configuración específico del usuario.

2. sshd_config: está relacionado con el lado del servidor. El servidor OpenSSH lee este archivo cuando se inicia.

Explorando el archivo de configuración sshd

El archivo de configuración sshd contiene muchas directivas que también se pueden personalizar. Veamos el diseño predeterminado de este archivo:

$ gato / etc / ssh / sshd_config

 
# Este es el archivo de configuración de todo el sistema del servidor sshd. Ver

# sshd_config(5) para obtener más información.

Puerto 222
ListenDdress
0.0.0.0
Listenaddress
::
Keyking / etc / SSH / SSH_HOST_KEY
SERVERKEYBITS 768
LOGINGRACETIME 600

KeyRegeRerationIntersinterval 3600
PERMITROOTLOGIN Sí
IgnorRerHosts Sí
StrictModes Sí
X11

Foringing
No
– _
_ _
_ _
_

_
RSAAuthentication sí
PasswordAuthentication sí
PermitEmptyPasswords no
CheckMail no

 
Cualquier línea que comience con “#” se toma como comentario. Exploremos algunos de los parámetros dados:

1. La directiva Port especifica un número de puerto. Este es el número de puerto en el que sshd escucha las conexiones. El valor predeterminado para este puerto es 22, que es el estándar. Sin embargo, en nuestro caso, lo cambiamos a 222.

Además, podemos especificar más de una directiva de puerto. De esta forma, podemos usar múltiples puertos para escuchar en las conexiones sshd.

2. ListenAddress contiene la dirección IP para escuchar. La acción predeterminada es escuchar en todas las direcciones IP vinculadas al servidor. También tenga en cuenta que la directiva Port debe suceder a la directiva ListenAddress.

3. La ruta completa del archivo de clave de host RSA privada se especifica mediante la directiva HostKey. En el caso anterior, la ruta es /etc/ssh/ssh_host_key .

4. La directiva PermitRootLogin permite el inicio de sesión raíz para sshd cuando se establece en sí. Esto debe establecerse en no a menos que los archivos hosts.allow y hosts.deny se utilicen para restringir el acceso sshd.

5. La directiva X11Forwarding permite el reenvío del sistema X Window cuando se establece en sí.

6. La instalación de Syslog que debe usar sshd se especifica mediante la directiva SyslogFacility. Mantenga el valor predeterminado como está.

7. El nivel de registro de Syslog se especifica mediante la directiva LogLevel.

Cambiar el puerto sshd

De forma predeterminada, el demonio del servidor sshd o OpenSSH utiliza el puerto 22 del protocolo TCP. Se recomienda cambiar este número de puerto a algún otro valor en un entorno de prueba. Esto nos asegura que la conectividad del servidor está disponible todo el tiempo.

Además, es una buena práctica comprobar la sintaxis de la configuración de un nuevo archivo sshd_config antes de usarlo, independientemente del puerto en el que se ejecute. Para verificar la sintaxis, podemos usar el siguiente comando:

$ sshd- t

 
También es importante tener en cuenta que solo el usuario raíz debe poder leer y escribir en este archivo. Esto significa que si un archivo de configuración sshd_config está debidamente protegido, la ejecución del comando anterior necesita autorización de root.

Si no aparece ningún resultado al ejecutar el comando de verificación de sintaxis anterior, significa que el archivo está bien.

Modificación del archivo de configuración y el puerto predeterminados

En algunos casos, queremos ejecutar una nueva instancia de sshd en un puerto diferente. Esto puede deberse a que el puerto 22 ya está en uso o puede haber algunas áreas de riesgo al cambiar este puerto en un entorno de producción. En este tipo de situaciones, podemos crear un archivo de configuración alternativo para nuestro servidor.

Vamos a crear un nuevo archivo sshd_config como sshd_config_new. Este archivo se puede usar para algunos parámetros de servidor diferentes. Ahora, especifiquemos este archivo para que se considere como el nuevo archivo de configuración del servidor en el puerto número 100:

$ sudo / usr / sbin / sshd -f / etc / ssh / sshd_config_new -p 100

 
El demonio sshd ahora escucha en el puerto 100. Podemos usar cualquier valor de puerto pero no el que ya está en uso.

Ahora, verifiquemos si nuestro nuevo puerto funciona como se desea. Para esto, tenemos que usar un programa cliente ssh y ejecutar el siguiente comando:

$ / usr / bin / ssh -p 100 < ip del servidor >

 

La opción «-p» especifica el puerto 100 que se utilizará en el servidor remoto. En caso de que estemos probando localmente, podemos usar la IP del servidor para que sea la IP del host local:

$ / usr / bin / ssh -p 100 127.0.0.1

 

Solución de problemas de configuración de OpenSSH

A veces, nuestro servidor no funciona como se desea. En tales casos, podemos usar el indicador «-d» para solucionar problemas de configuración del servidor OpenSSH. Usando el indicador «-d», el servidor ingresa al modo de depuración y maneja solo una conexión.

La salida que se produce en el modo de depuración es detallada. Podemos usar más banderas «-d» para elevar el nivel de depuración. Ejecutemos el comando de depuración en nuestro servidor usando el nuevo archivo de configuración:

$ / usr / sbin / sshd -d -p 100 -f / etc / ssh / sshd_config_new

 
El resultado del comando anterior se registra en stderr en lugar de usar la función AUTH de syslogd.

Conclusión

OpenSSH daemon o sshd es una parte crucial de muchas infraestructuras de administración. Como tal, requiere experiencia para administrarlo para un funcionamiento óptimo. En este artículo, aprendimos sobre el archivo de configuración del servidor OpenSSH como sshd_config.