Cómo asegurar el servidor SSH en Ubuntu Top 10.Top 10 de básico a avanzado

Cómo asegurar el servidor SSH en Ubuntu Top 10.Top 10 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 usar un servidor SSH, debe haber considerado asegurarlo primero para ahorrarle a cualquier situación no deseada en la ejecución más larga. En general, el término "asegurar un servidor" también se conoce como "endurecer un servidor."Esto se puede hacer tomando múltiples medidas. Estas medidas dependen del nivel de seguridad que necesita.

Las medidas de asegurar el rango del servidor SSH de básico a avanzado, y como dijimos anteriormente, puede recogerlas de acuerdo con el nivel de seguridad que necesita. 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 asegurará el 100% de seguridad, o un cierto paso es mejor que el otro.

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

Método para asegurar 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 crucial para el funcionamiento normal de su servidor SSH. Por lo tanto, antes de realizar cualquier cambio 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 correctamente, no se le presentará ningún resultado, como se muestra en la imagen a continuación:

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 habilitadas actualmente en este archivo de configuración. Puede consultarlo ejecutando el siguiente comando en su terminal:

sudo sshd -t


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

Ahora puede comenzar a asegurar su servidor SSH mientras se mueve de los pasos básicos a los pasos avanzados en Ubuntu 20.04.

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

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

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

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

sudo nano/etc/ssh/sshd_config


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

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

En lugar de usar contraseñas para la autenticación, las teclas SSH se consideran más seguras. Por lo tanto, si ha generado las teclas SSH para la autenticación, debe deshabilitar la autenticación basada en contraseñas. Para eso, debe localizar la variable "PasswordAuthentication", descomponerla y establecer su valor en "No", como se destaca en la imagen que se muestra a continuación:

Paso # 3: rechazar/ negar contraseñas vacías:

A veces, a los usuarios les resulta extremadamente conveniente crear contraseñas vacías en aras de guardar 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 "PermenTemptyPasswords" y simplemente desench.lántela, ya que su valor ya está configurado en "no", como se destaca en la siguiente imagen:

Paso # 4: Prohibir el inicio de sesión raíz:

Debe prohibir estrictamente los inicios de sesión de la raíz para proteger a cualquier intruso de obtener acceso a nivel raíz a su servidor. Puede hacer esto localizando la variable "Permitrootlogin", sin consignarla y establecer su valor en "No", como se destaca 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, yo.mi., Protocolo 1 y Protocolo 2. El protocolo 2 implementa características de seguridad más avanzadas, por lo que se prefiere sobre el 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, entonces debe agregar explícitamente la línea "Protocolo 2" a su archivo de configuración SSH como se destaca en la siguiente imagen:

Paso # 6: Configurar un tiempo de espera de la sesión:

A veces, los usuarios dejan sus computadoras desatendidas por mucho tiempo. Mientras tanto, cualquier intruso puede venir y obtener acceso a su sistema mientras incumina su seguridad. Aquí es donde entra en juego el concepto de tiempo de espera de la sesión. Esta característica 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", sin consolidad y asignarlo 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 se mantiene alejado del servidor SSH durante "300 segundos", se registrará automáticamente como se resalta en la imagen que se muestra a continuación:

Paso # 7: Permitir que los 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 lo tanto, su acceso debe estar restringido solo para aquellos usuarios que realmente lo necesitan. Para permitir que usuarios específicos accedan al servidor SSH, debe agregar una variable llamada "Designusers" 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 separado 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 destaca en la siguiente imagen:

Paso # 8: Limitar el número de intentos de autenticación:

Cada vez que un usuario intenta acceder a un servidor, y no puede autenticarse por primera vez, intenta hacerlo nuevamente. El usuario sigue haciendo estos intentos hasta y, a menos que pueda autenticarse con éxito, por lo tanto, obteniendo acceso al servidor SSH. Esto se considera una práctica muy insegura ya que un hacker puede lanzar un ataque de fuerza bruto (un ataque que intenta repetidamente adivinar una contraseña hasta que se encuentre la coincidencia correcta). Como resultado, podrá obtener acceso a su servidor SSH.

Es por eso que se recomienda limitar el número de intentos de autenticación para evitar ataques de adivinanzas de contraseña. El valor predeterminado de los intentos de autenticación al servidor SSH se establece en "6". Sin embargo, puede cambiarlo dependiendo del nivel de seguridad que necesita. Para eso, debe localizar las variables "maxauthtries", sin consolidad y establecer su valor en cualquier 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: Ejecutando el servidor SSH en modo de prueba:

A estas alturas, hemos tomado todos los pasos básicos para asegurar nuestro servidor SSH en Ubuntu 20.04. Sin embargo, todavía 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 hacerlo, intentaremos ejecutar nuestro servidor SSH en el modo de prueba. Si se ejecuta correctamente en el modo de prueba, entonces 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 correctamente, 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, la ejecución de este comando emitirá esos errores en el terminal. Entonces se supone que corras esos errores. Solo entonces podrás continuar.

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

Ahora, cuando el servidor SSH se ejecutó correctamente en el modo de prueba, necesitamos volver a cargarlo para que pueda leer el nuevo archivo de configuración, I.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 SERVICIO SSHD REPARACIÓN


Si su servidor SSH se reinicia correctamente, el terminal no mostrará ninguna salida, como se muestra en la imagen a continuación:

Pasos avanzados para asegurar el servidor SSH en Ubuntu 20.04:

Después de realizar todos los pasos básicos para asegurar el servidor SSH en Ubuntu 20.04, finalmente puedes dirigirte a los pasos avanzados. Esto es solo un paso adelante para asegurar 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, entonces puedes seguir los pasos explicados a continuación:

Paso # 1: Abrir el ~/.archivo ssh/autorized_keys:

Los pasos básicos de asegurar el servidor SSH se implementan dentro del archivo de configuración de SSH. Significa que estas políticas se mantendrán bien 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 asegurar el servidor SSH. Sin embargo, si tratamos de considerar el principio de "defensa en profundidad", entonces nos daremos cuenta de que necesitamos asegurar cada llave SSH individual por separado. Esto se puede hacer definiendo parámetros de seguridad explícitos para cada clave individual. Las teclas SSH se almacenan en el ~/.archivo ssh/autorized_keys, por lo que primero accederemos a este archivo para modificar los parámetros de seguridad. Ejecutaremos el siguiente comando en el terminal para acceder al ~/.archivo ssh/autorized_keys:

sudo nano ~/.ssh/autorized_keys

Ejecutar este comando abrirá el archivo especificado con el editor nano. Sin embargo, puede usar cualquier otro editor de texto de su elección tambié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, las siguientes cinco opciones están disponibles:

  • sin agente
  • no es del puerto
  • no
  • No-User-RC
  • no-x11

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

No se desee un puerto deseado

Aquí, en lugar del deseado, tendrá una tecla SSH real dentro de su ~/.archivo ssh/autorized_keys. Después de aplicar estas opciones para las teclas SSH deseadas, deberá guardar el ~/.archivo ssh/autorized_keys y cerrarlo. Un buen esto sobre este método avanzado es que no requerirá que vuelva a cargar su servidor SSH después de hacer estas modificaciones. Más bien, estos cambios serán leído por su servidor SSH automáticamente.

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

Algunos consejos adicionales para asegurar 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 ser muy buenos para asegurar el servidor SSH en Ubuntu 20.04. Estos consejos adicionales se han discutido a continuación:

Mantenga sus datos encriptados:

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 fuerte algoritmo de cifrado. Esto no solo protegerá la integridad y la 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 permanezca desatendido. Más bien deberían estar parcheados bien a tiempo. Esto lo ahorrará de cualquier daños potenciales a largo plazo y también evitará que su servidor caiga o no esté disponible debido a problemas de seguridad.

Asegúrese de que Selinux esté habilitado:

Selinux es el mecanismo que establece la piedra base 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 las reglas de acceso en su política de seguridad. Este mecanismo está habilitado de forma predeterminada. Sin embargo, a los usuarios se les permite cambiar esta configuración en cualquier momento. Significa que pueden deshabilitar Selinux cuando quieran. Sin embargo, se recomienda encarecidamente que siempre mantenga habilitado a Selinux para que pueda evitar que su servidor SSH sea posible.

Use políticas de contraseña estrictas:

Si ha protegido su servidor SSH con contraseñas, debe crear políticas de contraseña segura. 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, deberían ser una combinación de alfabetos, números y caracteres especiales. Del mismo modo, puede definir algunas otras medidas adicionales para sus políticas de contraseña para garantizar que sean lo suficientemente fuertes.

Monitorear y mantener los registros de auditoría de su servidor SSH:

Si algo sale mal con su servidor SSH, su primer ayudante puede 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 monitoreando la salud y el funcionamiento de su servidor SSH continuamente, esto también evitará que ocurra cualquier problema importante en primer lugar.

Mantener copias de seguridad regulares 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 copia de seguridad siempre que su servidor principal. Esto también limitará el tiempo de inactividad del servidor y garantizará su disponibilidad.

Conclusión:

Al cuidar todas las medidas que se han prescrito en este artículo, puede asegurar o endurecer fácilmente su servidor SSH en Ubuntu 20.04. Sin embargo, si es de antecedentes de seguridad de la información, debe ser consciente de este hecho de que no hay nada como el 100% de seguridad. Todo lo que podemos obtener es la mejor promesa de esfuerzo, y ese mejor esfuerzo solo estará seguro hasta el momento en que también se violará. Es por eso que incluso después de tomar todas estas medidas, no puede decir que su servidor SSH sea 100% seguro; más bien, aún puede tener tales vulnerabilidades en las que nunca podrías haber pensado. Dichas vulnerabilidades solo pueden ser atendidas si vigilamos a nuestro servidor SSH y seguimos actualizándolo cuando sea necesario.