Redes

5 consejos para proteger SSH en servidores Linux

ssh seguro en el servidor linux
Imagen: Trampa de píxeles/Adobe Stock

SSH es la herramienta que uso todos los días para iniciar sesión en servidores Linux remotos y manejar mis tareas administrativas. Mi vida sería más complicada y menos segura sin SSH. Sin embargo, esto no significa que SSH esté configurado de fábrica a su gusto. Hay algunas debilidades en la configuración predeterminada y en la forma en que puede usar la herramienta.

Vamos a sacar esto del camino.

VER: 30 cumpleaños de Linux: Celebrando el sistema operativo de código abierto (PDF gratuito) (Tecnopedia)

Estos son mis cinco consejos más sencillos para asegurar SSH en máquinas Linux. Procesar estos consejos no debería llevarte más de cinco minutos y, al final, te alegrarás de haberte tomado el tiempo para hacerlo.

que necesitas

Para hacer esto, todo lo que necesita es una instancia de Linux en ejecución y un usuario con privilegios de sudo.

Consejo 1: cambie el puerto predeterminado

Lo primero que haremos será cambiar el puerto predeterminado de 22 a uno muy usado para ataques de fuerza bruta y otros. Para hacer esto, abra el archivo de configuración del demonio SSH con el siguiente comando:

sudo nano /etc/ssh/sshd_config

En ese archivo, busque:

#Port 22

cambiarlo a:

Port 2124

Guarde y cierre el archivo. Reinicie el demonio con el comando:

sudo systemctl restart sshd

Antes de salir de esta terminal, asegúrese de que puede volver a conectarse al servidor usando otra instancia de SSH y agregue la opción -p 2124 (o el puerto que decida) al final, así:

ssh 192.168.1.63 -p 2124

Consejo 2: deshabilite el reenvío de puertos X11/TCP

A continuación, deshabilitaremos el reenvío de puertos TCP y X11, ya que un atacante puede explotar esta debilidad para obtener acceso a otros sistemas en su red. Para hacer esto, vuelva a abrir el archivo de configuración del daemon y busque las siguientes dos líneas:

#AllowTcpForwarding yes
X11Forwarding yes

Cambie estas líneas a:

AllowTcpForwarding no
X11Forwarding no

Guarde y cierre el archivo.

Aplazaremos el reinicio del demonio SSH hasta que hayamos terminado con el resto de la configuración.

Consejo 3: deshabilite el uso de contraseñas en blanco

En el archivo del demonio SSH, queremos evitar que los usuarios con contraseñas en blanco obtengan acceso. Si tiene una política que no permite contraseñas vacías, no tiene que preocuparse por eso, pero es mejor prevenir que lamentar.

En el archivo de configuración del daemon, busque la siguiente línea:

#PermitEmptyPasswords no

Cambia esa línea a:

PermitEmptyPasswords no

Guarde y cierre el archivo.

Como hemos terminado de configurar el demonio, reinicie el demonio SSH con el siguiente comando:

sudo systemctl restart sshd

Consejo 4: restrinja los inicios de sesión SSH a direcciones IP específicas

Ahora vamos a restringir todos los inicios de sesión SSH a direcciones IP específicas. Para hacer esto, abra el archivo hosts.deny con el siguiente comando:

sudo nano /etc/hosts.deny

En la parte inferior del archivo, agregue lo siguiente:

sshd: ALL

Guarde y cierre el archivo.

A continuación, abra el archivo hosts.allow con el siguiente comando:

sudo nano /etc/hosts.allow

En la parte inferior del archivo, agregue una línea separada por comas con todas las direcciones IP que desea permitir, así:

sshd: 192.168.1.62, 192.168.1.11, 192.168.1.100

Si desea permitir todas las máquinas en la LAN, puede usar algo como:

sshd: 192.168.1.0/24

Guarde y cierre el archivo.

Consejo 5: use la autenticación de clave SSH

Este es uno de los consejos más importantes. El uso de la autenticación con clave SSH es mucho más seguro que el uso de contraseñas estándar. Entonces, ¿cómo lo configuramos?

simple. Use el siguiente comando para generar una clave SSH en el cliente que desea usar para conectarse al servidor:

ssh-keygen -t rsa

A continuación, copiamos la clave al servidor:

ssh-copy-id SERVER

donde SERVIDOR es la dirección IP de su servidor.

Hay una advertencia a esto. Si ha cambiado el puerto SSH predeterminado, no puede usar el comando ssh-copy-id porque no acepta argumentos. En su lugar, debe configurar una entrada de host en ~/.ssh/config como esta:

Host NAME
HostName SERVER
Port PORT

Dónde:

  • NOMBRE es el nombre legible por humanos del servidor.
  • SERVIDOR es la dirección IP del servidor.
  • PORT es el puerto no predeterminado que configuró

Guarde y cierre el archivo. Ahora puede copiar esa clave (a un servidor SSH configurado con un puerto no estándar) con lo siguiente:

ssh-copy-id NAME

donde NOMBRE es el nombre legible por humanos dado al servidor en el archivo de configuración.

Después de copiar la clave de autenticación SSH en el servidor, abra una nueva terminal y asegúrese de que todavía puede conectarse al servidor a través de SSH. Si puede, asegúrese de copiar la clave SSH de cada cliente que necesite acceder al servidor, luego deshabilite la autenticación de contraseña abriendo nuevamente el archivo de configuración del daemon:

sudo nano /etc/ssh/sshd_config

Busque líneas:

#PasswordAuthentication yes

Cambia esa línea a:

PasswordAuthentication no

Guarde y cierre el archivo y reinicie el demonio SSH con los siguientes comandos:

sudo systemctl restart sshd

Ahora, solo aquellos que tienen una clave SSH en el servidor pueden iniciar sesión.

Avanzar. Después de unos 5 minutos, ha bloqueado SSH en el servidor. También debe instalar y configurar fail2ban, pero esto le llevará más de 5 minutos. Disfrute de una capa extra de seguridad.

Suscríbete a Tecnopedia Cómo hacer que la tecnología funcione en YouTube Obtenga los últimos consejos técnicos para profesionales de negocios de Jack Wallen.

LEER  ¿Quién dice que no puede pagar su propio enrutador?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba