Seguridad en Vagrant


Seguridad en Vagrant: claves SSH, firewalls y permisos.

oscar Escrito por oscar 27 April 2025 91 0

Cuando trabajas con Vagrant (que básicamente crea y gestiona máquinas virtuales de forma automática), es muy importante cuidar los temas de seguridad, porque a veces esas máquinas quedan expuestas en redes locales o incluso en internet si no las configuras bien.

Los principales puntos de seguridad que debes conocer son:

Claves SSH en Vagrant

  • ¿Qué es SSH?
    SSH (Secure Shell) es el protocolo que Vagrant usa para conectarse de manera segura a las máquinas virtuales.

  • ¿Cómo maneja Vagrant las claves SSH?

    • Vagrant usa una clave privada SSH genérica por defecto (insecure_key), que todos los usuarios de Vagrant en el mundo conocen.

    • Esta clave se instala en las máquinas automáticamente al hacer vagrant up.

    • Problema: si dejas esta clave por defecto, cualquiera que conozca la clave puede acceder a tu máquina si tiene conexión.

  • ¿Cómo mejorar esto?

    • Usa la opción config.ssh.insert_key = true en tu Vagrantfile.
      Esto le dice a Vagrant que genere una clave nueva única para cada máquina.

    • Así tendrás una clave segura y privada que solo tú tienes.

    Ejemplo en Vagrantfile:

    Vagrant.configure("2") do |config| 
      config.ssh.insert_key = true 
    end

Firewalls en Vagrant

  • ¿Qué es un firewall?
    Es un sistema que filtra qué conexiones entrantes y salientes se permiten en tu máquina.

  • ¿Cómo afecta esto a Vagrant?
    Si no proteges tu VM, todos los puertos abiertos de la máquina pueden ser accesibles desde tu red local (¡o peor si es pública!).

  • Buenas prácticas con firewalls:

    • Dentro de la VM, instala y configura un firewall, como ufw en Ubuntu o firewalld en CentOS.

    • Cierra todos los puertos que no uses.

    • Solo permite conexiones SSH desde direcciones IP confiables.

    • Evita hacer config.vm.network "public_network" si no sabes lo que haces, porque expone la VM directamente a la red pública.

    Ejemplo sencillo para configurar UFW en la máquina:

    sudo apt update 
    sudo apt install ufw 
    sudo ufw allow ssh 
    sudo ufw enable

Permisos en Vagrant

  • ¿Por qué importan los permisos?
    Porque dentro de la máquina virtual puedes estar ejecutando procesos críticos, servidores web, bases de datos, etc.

  • Buenas prácticas de permisos:

    • No trabajar como root todo el tiempo.
      Usa usuarios con permisos limitados y solo usa sudo cuando sea necesario.

    • Protege los archivos sensibles (.env, claves privadas, configuraciones).

    • Si compartes carpetas entre tu host y la VM (con config.vm.synced_folder), asegúrate de controlar los permisos de esas carpetas.

      • Puedes configurar los permisos así:

        config.vm.synced_folder "./data", "/vagrant_data", owner: "vagrant", group: "vagrant", mount_options: ["dmode=775,fmode=664"]

Resumen rápido 🛡️

Tema Peligro si no cuidas Solución recomendada
Claves SSH Acceso no autorizado config.ssh.insert_key = true
Firewall Exposición de servicios Instalar UFW y cerrar puertos innecesarios
Permisos Robo de datos o cambios no deseados Usuarios limitados + cuidado en carpetas compartidas

Comentario

Debe aceptar antes de enviar