Guía completa para configurar y asegurar un puerto SSH en tu servidor

Puttygen.big

El puerto SSH es una herramienta fundamental para acceder y administrar servidores de forma remota. Sin embargo, también puede ser un punto vulnerable si no se configura y asegura adecuadamente. Te proporcionaremos una guía completa para configurar y asegurar un puerto SSH en tu servidor, garantizando así la seguridad de tus datos y evitando posibles accesos no autorizados.

En este artículo aprenderás:

  • Qué es el protocolo SSH y para qué se utiliza
  • Por qué es importante configurar y asegurar correctamente un puerto SSH
  • Los pasos necesarios para configurar un puerto SSH en tu servidor
  • Las mejores prácticas para asegurar un puerto SSH y proteger tu servidor de posibles ataques
  • Recomendaciones adicionales para mantener la seguridad de tu servidor

Sigue leyendo para obtener toda la información que necesitas para configurar y asegurar un puerto SSH de manera efectiva.

Cómo hacer una solicitud POST con cURL en PHP: guía paso a paso
Tabla de contenidos
  1. Utiliza una clave SSH en lugar de una contraseña para autenticarte en el servidor
  2. Cambia el puerto predeterminado de SSH para evitar ataques automatizados
  3. Configura un cortafuegos para permitir solo conexiones SSH desde direcciones IP específicas
    1. Utilizando iptables
    2. Utilizando ufw
  4. Desactiva el inicio de sesión root a través de SSH para mejorar la seguridad
  5. Habilita el registro de intentos de inicio de sesión fallidos en el servidor
  6. Activa la autenticación de dos factores para agregar una capa adicional de seguridad
  7. Mantén tu software SSH actualizado para protegerte contra vulnerabilidades conocidas
  8. Utiliza herramientas de monitoreo para detectar y prevenir accesos no autorizados a tu servidor SSH
  9. Realiza copias de seguridad regulares de tus configuraciones y archivos clave para evitar la pérdida de datos
  10. Educa a los usuarios sobre las mejores prácticas de seguridad al usar SSH
    1. 1. Utiliza contraseñas seguras
    2. 2. Implementa la autenticación de dos factores
    3. 3. Limita el acceso de usuarios
    4. 4. Actualiza regularmente el software
    5. 5. Monitoriza los registros de acceso
    6. 6. Configura un cortafuegos
    7. 7. Utiliza claves SSH en lugar de contraseñas
    8. 8. Establece límites de tiempo de inactividad

Utiliza una clave SSH en lugar de una contraseña para autenticarte en el servidor

Clave SSH segura

Una de las formas más seguras de autenticarse en un servidor es utilizando una clave SSH en lugar de una contraseña. El uso de una clave SSH proporciona una capa adicional de seguridad al evitar que los atacantes adivinen o intercepten tu contraseña.

Para configurar una clave SSH, sigue estos pasos:

Aprende a utilizar la función $con en programación SQL: guía completa
  1. Genera un par de claves SSH en tu máquina local utilizando el comando ssh-keygen.
  2. Guarda la clave privada en un lugar seguro en tu máquina local. Esta clave privada nunca debe ser compartida.
  3. Copia la clave pública generada en el archivo ~/.ssh/authorized_keys en tu servidor.
  4. Asegúrate de que los permisos del archivo ~/.ssh/authorized_keys sean correctos. Debe tener permisos 600.
  5. Desactiva la autenticación de contraseña en el archivo de configuración SSH en tu servidor. Puedes hacerlo editando el archivo /etc/ssh/sshd_config y cambiando el valor de PasswordAuthentication a no.
  6. Reinicia el servicio SSH en tu servidor para aplicar los cambios.

Una vez configurada la clave SSH, podrás autenticarte en tu servidor sin necesidad de ingresar una contraseña. Esto no solo simplificará el proceso de inicio de sesión, sino que también fortalecerá la seguridad de tu servidor.

Cambia el puerto predeterminado de SSH para evitar ataques automatizados

Puerto SSH seguro

El puerto predeterminado para el servicio SSH es el 22. Sin embargo, este puerto es ampliamente conocido y es uno de los primeros objetivos de los ataques automatizados. Por lo tanto, es altamente recomendable cambiar el puerto por defecto para aumentar la seguridad de tu servidor.

Cómo programar tareas automáticas con crontab en Linux: guía completa

Para cambiar el puerto de SSH, debes editar el archivo de configuración del servicio. Puedes hacerlo ejecutando el siguiente comando en la terminal:

sudo nano /etc/ssh/sshd_config

Una vez que estés dentro del archivo de configuración, busca la línea que empieza con Port 22 y cámbiala por el número de puerto deseado. Puede ser cualquier número de puerto disponible, pero es recomendable elegir un número mayor a 1024 para evitar conflictos con otros servicios.

Después de hacer el cambio, guarda el archivo y reinicia el servicio SSH para que los cambios surtan efecto. Puedes hacerlo ejecutando el siguiente comando:

Guía completa para implementar y utilizar una API REST en tu proyecto
sudo service ssh restart

Una vez reiniciado el servicio, asegúrate de que el nuevo puerto esté abierto en el firewall de tu servidor. Puedes hacerlo ejecutando el siguiente comando:

sudo ufw allow [número de puerto]

Sustituye [número de puerto] por el número de puerto que elegiste para SSH.

Finalmente, verifica que el cambio haya sido exitoso intentando establecer una conexión SSH utilizando el nuevo puerto. Si todo funciona correctamente, habrás configurado y asegurado exitosamente un puerto SSH diferente al predeterminado.

Guía completa: Cómo generar y utilizar una clave SSH en Linux

Configura un cortafuegos para permitir solo conexiones SSH desde direcciones IP específicas

Cortafuegos con direcciones IP

Si deseas aumentar la seguridad de tu servidor SSH, una de las mejores prácticas es configurar un cortafuegos para permitir solo conexiones desde direcciones IP específicas. De esta manera, solo los dispositivos autorizados podrán acceder al servidor SSH.

Para configurar esto, primero debes asegurarte de tener instalado un cortafuegos en tu servidor. Puedes utilizar iptables o ufw, dependiendo de la distribución de Linux que estés utilizando.

Guía paso a paso para cambiar permisos de archivo con chmod

Utilizando iptables

Si estás utilizando iptables, puedes agregar una regla para permitir solo conexiones SSH desde una dirección IP específica de la siguiente manera:

# Permitir conexiones SSH desde la dirección IP específica
iptables -A INPUT -p tcp --dport 22 -s dirección_IP -j ACCEPT

# Bloquear todas las demás conexiones SSH
iptables -A INPUT -p tcp --dport 22 -j DROP

Recuerda reemplazar dirección_IP con la dirección IP desde la cual deseas permitir conexiones SSH.

Utilizando ufw

Si estás utilizando ufw, puedes permitir solo conexiones SSH desde una dirección IP específica ejecutando los siguientes comandos:

Aprende programación en 10 pasos: Guía completa para principiantes
# Permitir conexiones SSH desde la dirección IP específica
ufw allow from dirección_IP to any port 22

# Bloquear todas las demás conexiones SSH
ufw deny 22

Recuerda reemplazar dirección_IP con la dirección IP desde la cual deseas permitir conexiones SSH.

Una vez que hayas configurado el cortafuegos para permitir solo conexiones SSH desde direcciones IP específicas, asegúrate de reiniciar el cortafuegos para que los cambios surtan efecto.

Con esta configuración, tu servidor SSH estará protegido y solo permitirá conexiones desde las direcciones IP que hayas especificado, lo que aumentará significativamente la seguridad de tu servidor.

Desactiva el inicio de sesión root a través de SSH para mejorar la seguridad

Una de las prácticas recomendadas para mejorar la seguridad de tu servidor es desactivar el inicio de sesión root a través de SSH. Esto se debe a que el usuario root tiene privilegios de administrador y, si un atacante logra obtener acceso a esta cuenta, podría causar daños significativos en tu servidor.

Para desactivar el inicio de sesión root, sigue estos pasos:

  1. Conéctate a tu servidor a través de SSH utilizando un usuario con privilegios de administrador.
  2. Abre el archivo de configuración de SSH:
  3. sudo nano /etc/ssh/sshd_config
  4. Busca la línea que dice PermitRootLogin yes y cámbiala por PermitRootLogin no.
  5. Guarda los cambios y cierra el archivo.
  6. Reinicia el servicio de SSH para que los cambios surtan efecto:
  7. sudo service ssh restart

Una vez que hayas desactivado el inicio de sesión root, ya no podrás acceder directamente a tu servidor utilizando la cuenta root a través de SSH. En su lugar, deberás iniciar sesión con un usuario regular y luego utilizar el comando sudo para ejecutar comandos con privilegios de administrador.

Desactivar el inicio de sesión root a través de SSH es solo una de las medidas que puedes tomar para mejorar la seguridad de tu servidor. Recuerda también utilizar contraseñas fuertes, mantener tu sistema actualizado y utilizar herramientas de monitoreo y detección de intrusiones para proteger tu servidor contra posibles ataques.

Habilita el registro de intentos de inicio de sesión fallidos en el servidor

Registro de intentos de inicio de sesión

Para aumentar la seguridad de tu servidor SSH, es recomendable habilitar el registro de intentos de inicio de sesión fallidos. Esto te permitirá monitorear y analizar los intentos de acceso no autorizados a tu servidor.

Para habilitar el registro de intentos de inicio de sesión fallidos, sigue estos pasos:

  1. Accede al servidor a través de SSH utilizando tu cliente preferido.
  2. Abre el archivo de configuración de SSH con un editor de texto, como Nano o Vim. El archivo suele ubicarse en /etc/ssh/sshd_config.
  3. Busca la línea que contiene el parámetro LogLevel y asegúrate de que esté configurada como INFO o un nivel superior, como VERBOSE o DEBUG. Esto permitirá que se registren los intentos de inicio de sesión fallidos.
  4. Añade las siguientes líneas al final del archivo:
MaxAuthTries 3
MaxSessions 10

Estas líneas limitarán el número máximo de intentos de autenticación fallidos y el número máximo de sesiones por usuario. Puedes ajustar estos valores según tus necesidades.

Guarda los cambios y cierra el archivo de configuración.

Finalmente, reinicia el servicio SSH para que los cambios tengan efecto:

sudo service ssh restart

A partir de ahora, cada vez que un intento de inicio de sesión fallido se registre en el servidor, se almacenará en el archivo de registro correspondiente. Esto te permitirá detectar patrones sospechosos y tomar medidas para proteger tu servidor SSH de posibles ataques.

Activa la autenticación de dos factores para agregar una capa adicional de seguridad

Dispositivos de autenticación de dos factores

Una forma efectiva de aumentar la seguridad de tu puerto SSH es habilitando la autenticación de dos factores. Esto garantiza que incluso si alguien obtiene tu contraseña, no podrán acceder a tu servidor sin el segundo factor de autenticación.

Para habilitar la autenticación de dos factores, primero debes asegurarte de tener instalado un software de autenticación en tu servidor. Los dos software más comunes son Google Authenticator y Authy. Puedes elegir el que mejor se adapte a tus necesidades.

Una vez que hayas instalado el software de autenticación, debes configurarlo para que funcione con tu puerto SSH. Esto implicará la generación de un código QR o la obtención de una clave secreta que deberás ingresar en el software de autenticación.

A continuación, deberás realizar algunos cambios en la configuración de tu servidor SSH. Abre el archivo de configuración SSH ubicado en /etc/ssh/sshd_config y busca la línea que contiene ChallengeResponseAuthentication. Asegúrate de que esté configurada en yes.

Luego, agrega las siguientes líneas al archivo de configuración:

  • AuthenticationMethods publickey,keyboard-interactive
  • PubkeyAuthentication yes
  • UsePAM yes

Guarda los cambios y reinicia el servicio SSH para que los cambios surtan efecto.

Una vez que hayas finalizado estos pasos, la autenticación de dos factores estará activada en tu puerto SSH. Ahora, cuando te conectes a tu servidor a través de SSH, se te pedirá que ingreses tu contraseña y también el código generado por tu software de autenticación.

Esta capa adicional de seguridad ayudará a proteger tu servidor contra ataques de fuerza bruta y suplantación de identidad. Recuerda mantener tu software de autenticación actualizado y proteger tu clave secreta para garantizar la máxima seguridad.

Mantén tu software SSH actualizado para protegerte contra vulnerabilidades conocidas

Actualiza tu software SSH

Es fundamental mantener el software SSH actualizado para garantizar la seguridad de tu servidor. Los desarrolladores de software constantemente lanzan actualizaciones para corregir vulnerabilidades conocidas y mejorar la seguridad del sistema.

Para actualizar tu software SSH, debes seguir estos pasos:

  1. Verifica la versión actual de tu software SSH. Puedes hacerlo ejecutando el siguiente comando en tu terminal:
  2. ssh -V
  3. Comprueba si hay actualizaciones disponibles para el software SSH. Puedes hacerlo visitando el sitio web oficial del proveedor del software o ejecutando el siguiente comando en tu terminal:
  4. sudo apt-get update
  5. Instala las actualizaciones disponibles ejecutando el siguiente comando en tu terminal:
  6. sudo apt-get upgrade

Recuerda reiniciar tu servidor SSH después de instalar las actualizaciones para que los cambios surtan efecto.

Nota: Si no estás utilizando un sistema basado en Debian, los comandos pueden variar. Consulta la documentación oficial de tu sistema operativo para obtener instrucciones específicas.

Utiliza herramientas de monitoreo para detectar y prevenir accesos no autorizados a tu servidor SSH

Herramientas de monitoreo

Una de las medidas más importantes para asegurar un puerto SSH en tu servidor es utilizar herramientas de monitoreo que te permitan detectar y prevenir accesos no autorizados.

Existen diversas opciones de herramientas de monitoreo que puedes utilizar, pero una de las más populares y efectivas es Fail2Ban. Fail2Ban es una aplicación de código abierto que monitorea los logs de tu servidor en busca de intentos de acceso no autorizados y toma medidas para bloquear a los atacantes.

Para instalar Fail2Ban en tu servidor, sigue los siguientes pasos:

  1. Abre una terminal en tu servidor y ejecuta el siguiente comando para instalar Fail2Ban:
  2. sudo apt-get install fail2ban
  3. Una vez que la instalación esté completa, abre el archivo de configuración de Fail2Ban con el siguiente comando:
  4. sudo nano /etc/fail2ban/jail.conf
  5. En este archivo, encontrarás diferentes secciones de configuración. Una de las secciones más importantes es la que se refiere al servicio SSH.
  6. Busca la sección que comienza con [sshd] y asegúrate de que esté habilitada. Para habilitarla, cambia el valor de enabled a true.
  7. Una vez que hayas realizado los cambios, guarda el archivo y reinicia el servicio de Fail2Ban con el siguiente comando:
  8. sudo service fail2ban restart

Con estos pasos, habrás instalado y configurado Fail2Ban para monitorear y prevenir accesos no autorizados a tu servidor SSH. Recuerda revisar los logs de Fail2Ban regularmente para estar al tanto de cualquier actividad sospechosa.

Realiza copias de seguridad regulares de tus configuraciones y archivos clave para evitar la pérdida de datos

Copia de seguridad segura

Es crucial realizar copias de seguridad regulares de tus configuraciones y archivos clave para evitar la pérdida de datos en caso de cualquier problema o ataque en tu servidor. Al hacerlo, podrás restaurar rápidamente tu configuración y archivos en caso de ser necesario.

Educa a los usuarios sobre las mejores prácticas de seguridad al usar SSH

Seguridad en la conexión SSH

Uno de los aspectos más importantes a la hora de configurar y asegurar un puerto SSH en tu servidor es educar a los usuarios sobre las mejores prácticas de seguridad al utilizar esta herramienta. A continuación, te presentamos algunas recomendaciones clave:

1. Utiliza contraseñas seguras

Es fundamental que los usuarios elijan contraseñas fuertes y seguras para acceder al servidor a través del puerto SSH. Una contraseña segura debe incluir una combinación de letras mayúsculas y minúsculas, números y caracteres especiales. Además, se recomienda que las contraseñas sean largas y que no se utilicen palabras comunes o información personal.

2. Implementa la autenticación de dos factores

La autenticación de dos factores añade una capa adicional de seguridad al proceso de inicio de sesión en el servidor. Además de la contraseña, los usuarios deberán proporcionar un segundo factor de autenticación, como un código generado por una aplicación móvil o un token físico. Esto dificulta aún más el acceso no autorizado al servidor.

3. Limita el acceso de usuarios

No todos los usuarios necesitan acceder al servidor a través del puerto SSH. Es recomendable limitar el acceso solo a aquellos usuarios que realmente lo necesiten. Esto se puede lograr mediante la configuración de permisos y roles en el servidor.

4. Actualiza regularmente el software

Es importante mantener actualizado el software utilizado para el acceso SSH. Esto incluye tanto el cliente SSH como el servidor SSH. Las actualizaciones suelen incluir correcciones de seguridad importantes que ayudan a proteger el servidor contra posibles vulnerabilidades.

5. Monitoriza los registros de acceso

Es recomendable habilitar y revisar regularmente los registros de acceso SSH. Estos registros proporcionan información sobre los intentos de inicio de sesión fallidos y pueden ayudar a identificar posibles ataques o actividades sospechosas.

6. Configura un cortafuegos

Configurar un cortafuegos puede ayudar a proteger el puerto SSH de accesos no autorizados. Se recomienda permitir solo conexiones desde direcciones IP específicas o rangos de IP confiables.

7. Utiliza claves SSH en lugar de contraseñas

El uso de claves SSH en lugar de contraseñas puede proporcionar una capa adicional de seguridad. Las claves SSH son más difíciles de crackear que las contraseñas y no se transmiten a través de la red, lo que reduce el riesgo de interceptación.

8. Establece límites de tiempo de inactividad

Configurar límites de tiempo de inactividad puede ayudar a desconectar a los usuarios que hayan dejado su sesión SSH abierta por un período prolongado de tiempo. Esto evita que alguien pueda aprovechar una sesión abierta para acceder al servidor sin autorización.

Al seguir estas mejores prácticas de seguridad, podrás configurar y asegurar de manera efectiva el puerto SSH en tu servidor. Recuerda que la seguridad es un proceso continuo y es importante mantenerse actualizado sobre las últimas amenazas y medidas de seguridad para proteger tus sistemas.

Preguntas frecuentes

¿Qué es un puerto SSH?

SSH (Secure Shell) es un protocolo de red que permite iniciar sesión de forma segura en un servidor remoto.

¿Por qué es importante configurar y asegurar un puerto SSH?

Configurar y asegurar un puerto SSH es importante para proteger el acceso al servidor y prevenir posibles ataques o intrusiones.

Si quieres conocer otros artículos parecidos a Guía completa para configurar y asegurar un puerto SSH en tu servidor puedes visitar la categoría Desarrollo y Programación.

Go up

Usamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar” usted da su consentimiento a nuestro uso de las cookies Mas info