Conexiones Remotas - SSH

Dominando SSH - Asegurando Nuestras Conexiones Remotas

1. ¿Qué es SSH y Por Qué es Importante?

SSH (Secure Shell) es un protocolo y programa de red que proporciona una manera segura de acceder y administrar sistemas remotos a través de una red no segura como Internet. Imagina SSH como un túnel blindado a través del cual puedes enviar información de forma segura, similar a un canal diplomático seguro entre dos países.

2. Funcionalidades Principales:

  1. Conexión Remota Segura
  • Reemplaza protocolos inseguros como Telnet y rsh

  • Toda la comunicación está cifrada de extremo a extremo

  • Protege contra ataques de interceptación y manipulación

  1. Transferencia Segura de Archivos
  • Comandos SCP (Secure Copy) y SFTP (SSH File Transfer Protocol)

  • Mantiene la integridad de los archivos durante la transferencia

    • Copiar archivos de forma segura

      scp archivo.txt usuario@servidor:/destino/
      sftp usuario@servidor
  1. Túneles y Reenvío de Puertos

    • Permite crear conexiones seguras para otros servicios

    • Útil para acceder a servicios internos de forma segura

    • Crear un túnel SSH:

      ssh -L 8080:localhost:80 usuario@servidor

2. Ventajas de Usar SSH:

  1. Seguridad Robusta

    • Cifrado fuerte (AES, ChaCha20)
    • Verificación de integridad
    • Protección contra ataques de intermediarios (man-in-the-middle)
  2. Autenticación Flexible

    • Contraseñas

    • Claves públicas/privadas

    • Autenticación de dos factores

    • Generar par de claves para autenticación:

      ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Gestión de Sistemas

    • Ejecución remota de comandos

    • Automatización de tareas

    • Administración de servidores

    • Ejecutar comando remoto:

      ssh usuario@servidor "df -h"

3. Casos de Uso Comunes:

  1. Desarrollo de Software

    • Acceso a servidores de desarrollo

    • Despliegue de aplicaciones

    • Integración continua

    • Acceder al servidor de desarrollo:

      ssh dev@servidor-desarrollo
  2. Administración de Sistemas

    • Mantenimiento de servidores
    • Monitorización
    • Respuesta a incidentes
    • Monitorizar recursos:
      ssh admin@servidor "top -n 1"
  3. Transferencia Segura de Datos

    • Respaldos seguros

    • Sincronización de archivos

    • Compartir archivos confidenciales

    • Realizar backup remoto

      rsync -avz -e ssh /local/datos/ servidor:/backup/

4. Consideraciones de Seguridad:

  1. Mejores Prácticas

    • Usar claves SSH en lugar de contraseñas

    • Mantener actualizado el software SSH

    • Configurar correctamente los permisos

    • Configurar permisos seguros

      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/id_rsa
  2. Configuración Segura

    • Deshabilitar acceso root directo

    • Limitar intentos de autenticación

    • Usar puertos no estándares

    • Editar configuración SSH

      sudo nano /etc/ssh/sshd_config