ssh

Cómo proteger el servidor SSH en Ubuntu 20.04 de Básico a Avanzado

Cómo proteger el servidor SSH en Ubuntu 20.04 de Básico a Avanzado
Al igual que todos los demás servidores, el servidor SSH también es propenso a intentos de acceso no autorizados. Por lo tanto, siempre que desee utilizar un servidor SSH, debe haber considerado asegurarlo primero para salvarse de cualquier situación no deseada a largo plazo. Por lo general, el término "proteger un servidor" también se conoce como "fortalecer un servidor."Esto se puede hacer tomando múltiples medidas. Estas medidas dependen del nivel de seguridad que requiera.

Las medidas para proteger el servidor SSH van desde las básicas hasta las avanzadas y, como dijimos anteriormente, puede elegirlas según el nivel de seguridad que necesite. Puede omitir cualquiera de las medidas prescritas si tiene suficiente conocimiento sobre las consecuencias y si está en una buena posición para enfrentarlas. Además, nunca podemos decir que un solo paso garantizará el 100% de seguridad, o que un determinado paso es mejor que el otro.

Todo depende del tipo de seguridad que realmente necesitemos. Por lo tanto, hoy tenemos la intención de brindarle una visión muy profunda de los pasos básicos y avanzados para proteger un servidor SSH en Ubuntu 20.04. Aparte de estos métodos, también compartiremos con usted algunos consejos adicionales para proteger su servidor SSH como un bono. Así que comencemos con la interesante discusión de hoy.

Método para proteger el servidor SSH en Ubuntu 20.04:

Todas las configuraciones SSH se almacenan en su archivo / etc / ssh / sshd_config. Este archivo se considera muy importante para el funcionamiento normal de su servidor SSH. Por lo tanto, antes de realizar cambios en este archivo, se recomienda encarecidamente que cree una copia de seguridad de este archivo ejecutando el siguiente comando en su terminal:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.bak


Si este comando se ejecuta con éxito, no se le presentará ningún resultado, como se muestra en la siguiente imagen:

Después de crear una copia de seguridad de este archivo, este paso es opcional y se realiza si desea verificar todas las opciones que están actualmente habilitadas en este archivo de configuración. Puede comprobarlo ejecutando el siguiente comando en su terminal:

sudo sshd -T


Las opciones actualmente habilitadas del archivo de configuración SSH se muestran en la siguiente imagen. Puede desplazarse hacia abajo en esta lista para ver todas las opciones.

Ahora puede comenzar a proteger su servidor SSH mientras pasa de los pasos básicos a los pasos avanzados en Ubuntu 20.04.

Pasos básicos para proteger el servidor SSH en Ubuntu 20.04:

Los pasos básicos para proteger un servidor SSH en Ubuntu 20.04 son los siguientes:

Paso # 1: Abrir el archivo de configuración SSH:

Puede abrir el archivo de configuración SSH ejecutando el comando que se indica a continuación en su terminal:

sudo nano / etc / ssh / sshd_config


El archivo de configuración SSH se muestra en la siguiente imagen:

Paso 2: deshabilitar la autenticación basada en contraseña:

En lugar de utilizar contraseñas para la autenticación, las claves SSH se consideran más seguras. Por lo tanto, si ha generado las claves SSH para la autenticación, debe deshabilitar la autenticación basada en contraseña. Para eso, debe ubicar la variable "PasswordAuthentication", descomentarla y establecer su valor en "no", como se resalta en la imagen que se muestra a continuación:

Paso # 3: Rechazar / denegar contraseñas vacías:

A veces, los usuarios encuentran extremadamente conveniente crear contraseñas vacías para evitar memorizar contraseñas complejas. Esta práctica puede resultar perjudicial para la seguridad de su servidor SSH. Por lo tanto, debe rechazar todos los intentos de autenticación con contraseñas vacías. Para eso, debe ubicar la variable "PermitEmptyPasswords" y simplemente descomentarla, ya que su valor ya está configurado en "no" por defecto, como se resalta en la siguiente imagen:

Paso # 4: Prohibir el inicio de sesión de root:

Debe prohibir estrictamente los inicios de sesión de root para proteger a cualquier intruso de obtener acceso de nivel de root a su servidor. Puede hacer esto ubicando la variable "PermitRootLogin", descomentarla y establecer su valor en "no", como se resalta en la imagen que se muestra a continuación:

Paso # 5: Uso del protocolo SSH 2:

El servidor SSH puede operar en dos protocolos diferentes, i.mi., Protocolo 1 y Protocolo 2. El Protocolo 2 implementa características de seguridad más avanzadas, por lo que se prefiere al Protocolo 1. Sin embargo, el Protocolo 1 es el protocolo predeterminado de SSH y no se menciona explícitamente en el archivo de configuración de SSH. Por lo tanto, si desea trabajar con el Protocolo 2 en lugar del Protocolo 1, debe agregar explícitamente la línea "Protocolo 2" a su archivo de configuración SSH como se resalta en la siguiente imagen:

Paso # 6: Establecer un tiempo de espera de sesión:

A veces, los usuarios dejan sus computadoras desatendidas durante mucho tiempo. Mientras tanto, cualquier intruso puede acercarse y obtener acceso a su sistema mientras viola su seguridad. Aquí es donde entra en juego el concepto de tiempo de espera de la sesión. Esta función se utiliza para cerrar la sesión de un usuario si permanece inactivo durante mucho tiempo para que ningún otro usuario pueda acceder a su sistema.

Este tiempo de espera se puede establecer ubicando la variable "ClientAliveInterval", descomentarla y asignarle cualquier valor (en segundos) de su elección. En nuestro caso, le hemos asignado el valor de "300 segundos" o "5 minutos". Significa que si el usuario permanece alejado del servidor SSH durante "300 segundos", automáticamente se cerrará la sesión como se resalta en la imagen que se muestra a continuación:

Paso # 7: Permitir que usuarios específicos accedan al servidor SSH:

El servidor SSH no es un servidor cuyo acceso sea requerido por todos los demás usuarios. Por tanto, su acceso debe estar restringido únicamente a aquellos usuarios que realmente lo necesiten. Para permitir que usuarios específicos accedan al servidor SSH, debe agregar una variable llamada "AllowUsers" al archivo de configuración SSH y luego escribir los nombres de todos los usuarios a los que desea permitir el acceso al servidor SSH separados por un espacio. En nuestro caso, solo queríamos permitir que un usuario acceda al servidor SSH. Es por eso que solo hemos agregado su nombre como se resalta en la siguiente imagen:

Paso # 8: Limitación del número de intentos de autenticación:

Siempre que un usuario intenta acceder a un servidor y no puede autenticarse por primera vez, intenta hacerlo de nuevo. El usuario sigue haciendo estos intentos hasta que, a menos que sea capaz de autenticarse con éxito, obtenga acceso al servidor SSH. Esto se considera una práctica muy insegura, ya que un pirata informático puede lanzar un ataque de fuerza bruta (un ataque que intenta repetidamente adivinar una contraseña hasta que se encuentra la coincidencia correcta). Como resultado, podrá acceder a su servidor SSH.

Por eso es muy recomendable limitar el número de intentos de autenticación para evitar ataques de adivinación de contraseñas. El valor predeterminado de los intentos de autenticación en el servidor SSH se establece en "6". Sin embargo, puede cambiarlo según el nivel de seguridad que necesite. Para eso, debe ubicar las variables "MaxAuthTries", descomentarlas y establecer su valor en el número deseado. Queríamos limitar los intentos de autenticación a "3", como se destaca en la imagen que se muestra a continuación:

Paso # 9: Ejecutar el servidor SSH en modo de prueba:

Por ahora, hemos tomado todos los pasos básicos para asegurar nuestro servidor SSH en Ubuntu 20.04. Sin embargo, aún debemos asegurarnos de que las opciones que acabamos de configurar funcionen correctamente. Para eso, primero guardaremos y cerraremos nuestro archivo de configuración. Después de hacer eso, intentaremos ejecutar nuestro servidor SSH en el modo de prueba. Si se ejecuta correctamente en el modo de prueba, implicará que no hay errores en su archivo de configuración. Puede ejecutar su servidor SSH en el modo de prueba ejecutando el siguiente comando en su terminal:

sudo sshd -t


Cuando este comando se ejecuta con éxito, no mostrará ninguna salida en el terminal, como se muestra en la imagen a continuación. Sin embargo, si habrá algún error en su archivo de configuración, ejecutar este comando generará esos errores en la terminal. Entonces se supondrá que debe corregir esos errores. Solo entonces podrás continuar.

Paso # 10: Recarga del servidor SSH con nuevas configuraciones:

Ahora, cuando el servidor SSH se ejecutó correctamente en el modo de prueba, debemos volver a cargarlo para que pueda leer el nuevo archivo de configuración, yo.mi., los cambios que hemos realizado en el archivo de configuración SSH en los pasos que se muestran arriba. Para recargar el servidor SSH con nuevas configuraciones, debe ejecutar el siguiente comando en su terminal:

sudo service sshd reload


Si su servidor SSH se reinicia con éxito, el terminal no mostrará ningún resultado, como se muestra en la siguiente imagen:

Pasos avanzados para proteger el servidor SSH en Ubuntu 20.04:

Después de realizar todos los pasos básicos para proteger el servidor SSH en Ubuntu 20.04, finalmente puedes continuar con los pasos avanzados. Este es solo un paso adelante para proteger su servidor SSH. Sin embargo, si solo tiene la intención de lograr un nivel moderado de seguridad, los pasos descritos anteriormente serán suficientes. Pero si quieres ir un poco más lejos, puedes seguir los pasos que se explican a continuación:

Paso # 1: Abrir el ~ /.ssh / Authorized_keys Archivo:

Los pasos básicos para proteger el servidor SSH se implementan dentro del archivo de configuración SSH. Significa que estas políticas serán válidas para todos los usuarios que intentarán acceder al servidor SSH. También implica que los pasos básicos representan un método genérico para proteger el servidor SSH. Sin embargo, si tratamos de considerar el principio de "Defensa en profundidad", nos daremos cuenta de que debemos proteger cada clave SSH individual por separado. Esto se puede hacer definiendo parámetros de seguridad explícitos para cada clave individual. Las claves SSH se almacenan en ~ /.ssh / autorizado_keys, por lo que primero accederemos a este archivo para modificar los parámetros de seguridad. Ejecutaremos el siguiente comando en la terminal para acceder a ~ /.Archivo ssh / allowed_keys:

sudo nano ~ /.ssh / claves_autorizadas

Al ejecutar este comando, se abrirá el archivo especificado con el editor nano. Sin embargo, también puede utilizar cualquier otro editor de texto de su elección para abrir este archivo. Este archivo contendrá todas las claves SSH que ha generado hasta ahora.

Paso # 2: Definición de configuraciones específicas para claves particulares:

Para lograr un nivel avanzado de seguridad, están disponibles las siguientes cinco opciones:

Estas opciones se pueden escribir antes de cualquier clave SSH de su elección para que estén disponibles para esa clave en particular. Incluso más de una opción también se puede configurar para una sola clave SSH. Por ejemplo, desea deshabilitar el reenvío de puertos para una clave en particular o, en otras palabras, desea implementar el reenvío de puertos para una clave específica, entonces la sintaxis será la siguiente:

sin reenvío de puertos DesiredSSHKey

Aquí, en lugar de la DesiredSSHKey, tendrá una clave SSH real dentro de su ~ /.archivo ssh / allowed_keys. Después de aplicar estas opciones para sus claves SSH deseadas, deberá guardar el ~ /.ssh / allowed_keys y ciérrelo. Algo bueno de este método avanzado es que no requerirá que vuelva a cargar su servidor SSH después de realizar estas modificaciones. Más bien, estos cambios serán leídos por su servidor SSH automáticamente.

De esta forma, podrá asegurar cada clave SSH en profundidad aplicando los mecanismos de seguridad avanzados.

Algunos consejos adicionales para proteger el servidor SSH en Ubuntu 20.04:

Además de todos los pasos básicos y avanzados que hemos tomado anteriormente, también hay algunos consejos adicionales que pueden resultar muy buenos para proteger el servidor SSH en Ubuntu 20.04. Estos consejos adicionales se analizan a continuación:

Mantenga sus datos cifrados:

Los datos que residen en su servidor SSH, así como el que permanece en tránsito, deben estar encriptados y eso también, con un algoritmo de encriptación fuerte. Esto no solo protegerá la integridad y confidencialidad de sus datos, sino que también evitará que la seguridad de todo su servidor SSH se vea comprometida.

Mantenga su software actualizado:

El software que se ejecuta en su servidor SSH debe estar actualizado. Esto se hace para garantizar que ningún error de seguridad en su software quede desatendido. Más bien, deberían ser parcheados a tiempo. Esto lo salvará de posibles daños a largo plazo y también evitará que su servidor se caiga o no esté disponible debido a problemas de seguridad.

Asegúrese de que SELinux esté habilitado:

SELinux es el mecanismo que sienta las bases de la seguridad dentro de los sistemas basados ​​en Linux. Funciona implementando el control de acceso obligatorio (MAC). Implementa este modelo de control de acceso definiendo reglas de acceso en su política de seguridad. Este mecanismo está habilitado por defecto. Sin embargo, los usuarios pueden cambiar esta configuración en cualquier momento. Significa que pueden deshabilitar SELinux cuando lo deseen. Sin embargo, se recomienda encarecidamente que siempre mantenga SELinux habilitado para que pueda evitar que su servidor SSH sufra todos los daños potenciales.

Utilice políticas estrictas de contraseñas:

Si ha protegido su servidor SSH con contraseñas, debe crear políticas de contraseñas seguras. Idealmente, las contraseñas deben tener más de 8 caracteres. Deben cambiarse después de un tiempo específico, digamos, después de cada 2 meses. No deben contener ninguna palabra del diccionario; más bien, deben ser una combinación de alfabetos, números y caracteres especiales. De manera similar, puede definir algunas otras medidas extra estrictas para sus políticas de contraseñas para asegurarse de que sean lo suficientemente sólidas.

Supervise y mantenga los registros de auditoría de su servidor SSH:

Si algo sale mal con su servidor SSH, su primer ayudante pueden ser los registros de auditoría. Por lo tanto, debe seguir manteniendo esos registros para poder rastrear la causa raíz del problema. Además, si sigue supervisando el estado y el funcionamiento de su servidor SSH de forma continua, esto también evitará que se produzcan problemas importantes en primer lugar.

Mantenga copias de seguridad periódicas de sus datos:

Por último, pero no menos importante, siempre debe mantener una copia de seguridad de todo su servidor SSH. Hacer esto no solo evitará que sus datos se corrompan o se pierdan por completo; más bien, también puede usar este servidor de respaldo cada vez que su servidor principal se caiga. Esto también limitará el tiempo de inactividad del servidor y garantizará su disponibilidad.

Conclusión:

Si se ocupa de todas las medidas que se han prescrito en este artículo, puede proteger o reforzar fácilmente su servidor SSH en Ubuntu 20.04. Sin embargo, si tiene experiencia en seguridad de la información, debe ser consciente del hecho de que no hay nada como seguridad al 100%. Todo lo que podemos conseguir es la promesa de mejor esfuerzo, y ese mejor esfuerzo solo será seguro hasta el momento en que también se infrinja. Por eso, incluso después de tomar todas estas medidas, no puede decir que su servidor SSH sea 100% seguro; más bien, todavía puede tener tales vulnerabilidades que nunca podría haber pensado en. Tales vulnerabilidades solo se pueden solucionar si mantenemos un ojo atento a nuestro servidor SSH y seguimos actualizándolo siempre que sea necesario.

El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...