@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-2

Proxmox: diferencia máquina virtual activando desactivando el firewall

Proxmox: diferencia máquina virtual activando desactivando el firewall

Cuando instalas una máquina virtual en Proxmox, hay una opción que crea un poco de controversia, es la opción de poder habilitar un cortafuegos o firewall en dicha máquina virtual.

Como buen Sysadmin, es probable que tengas dos visiones, la de dejarlo por defecto que suele ser activado en tu máquina virtual o contenedor LXC (que ya veremos que eso no es un problema) o la de deshabilitarlo, si no entiendes qué implicaciones tiene, sabiendo que controlas otros sistemas de seguridad y que te puede dar problemas en el mantenimiento (como puede pasar en máquinas Windows con el firewall de Microsoft).

Así que vamos a ver para qué sirve el firewall de esta máquina virtual / LXC y a qué nivel se configura o gestiona. Con ello os daré mi opinión personal.

DOCUMENTACION OFICIAL: https://pve.proxmox.com/wiki/Firewall

Genero un par de contenedores LXC Centos para mostrároslo:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-1

Y marco la casilla “maldita” del cortafuegos:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-2

Intentaremos montar un servicio NGINX en uno de ellos, que nos dará una página web, y veremos qué hace el cortafuegos con estos servicios que gestiona la máquina internamente y publica hacia afuera:

 

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-3

Si levanto el servicio de NGINX y testeo la web vemos que tengo acceso sin problema desde mi estación de gestión física fuera del clúster proxmox, pero en la misma red:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-4

Si lo valido con el otro contenedor en la misma red y el mismo host Proxmox o dentro de mi clúster, también tengo acceso sin problema. Con lo que validamos que marcar en la instalación el check de Cortafuegos/Firewall no produce ningún efecto sin configuración adicional:

¿Y como configuramos nuestro cortafuegos en nuestra infraestructura Proxmox?

Configurar firewall LXC / Máquina Virtual Proxmox

La gestión de los cortafuegos de máquina virtual o contenedor LXC en Proxmox se puede hacer a nivel de máquina virtual, datacenter o de host, desde el apartado Cortafuegos / Firewall de cada sección.

Características firewall Proxmox

Vamos a ver, antes de ponernos a usarlo, alguna de las características que tiene el firewall integrado en una infraestructura Proxmox:

  • El tipo de firewall que se usa en Proxmox, es un firewall distribuido (IPTABLES), lo que permite ser más escalable y no bajar el desempeño de la red de forma global. Al final protege Proxmox y su contenido, nada más.
  • Está deshabilitado por defecto, si se habilita a nivel de datacenter, sólo quedarán disponibles los puertos 8006 y 22 accesibles para la gestión, y las máquinas virtuales quedarán aisladas. Que podremos limitar con reglas posteriormente.

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-7

  • Esto se debe a que por defecto, a nivel host se habilita por defecto:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-8

  • No se habilita a nivel de máquina o contenedor por defecto, aunque marquemos la casilla al generarla:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-9

Ficheros configuración firewall Proxmox

Los ficheros que intervienen en la configuración de Proxmox son los siguientes:

  • A nivel de cluster:
  • A nivel de host:
  • A nivel máquina virtual o contenedor LXC:

Servicio configuración firewall Proxmox

Para controlar nuestro firewall o ver su estado tenemos los siguientes comandos:

Para revisar si existen errores o el estado del firewall:

Para ver las reglas aplicadas:

Log Firewall Proxmox

El log no viene habilitado por defecto, así que deberemos modificar el valor del tamaño del mismo desde:

  • Datacenter -> Firewall -> Options -> Log rate limits

Y por otra parte deberemos habilitarlo a nivel de hosts o de máquinas virtuales/contenedores:

  • Datacenter -> Firewall -> Options

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-18

Lo podréis explotar desde el host de la máquina Cortafuegos -> Registro:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-19

Personalmente, esto hay que pasarlo a un sistema de gestión de logs para que se pueda explotar cómodamente como:

Componentes Firewall Proxmox

En la configuración de un firewall en Proxmox hay varios componentes:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-16

  • Grupos de Seguridad:
    • Un grupo de seguridad es una colección de reglas, definidas a nivel de clúster, que se pueden utilizar en todas las reglas de las máquinas virtuales. Por ejemplo, puede definir un grupo llamado “servidor web” con reglas para abrir los puertos http y https.
  •  Alias:
    • Definiremos IPs con nombres para poder identificarlos fácilmente al generar las reglas
  • IPSet:
    • Se utiliza para definir grupos de hosts o redes, y se utilizan en las propiedades usando nombre definidos
    • A nivel hosts, existe un nombre “management” que permite definir la comunicación entre hosts

Habilitar Firewall para LXC Proxmox

Lo primero que tenemos que hacer es habilitar a nivel de Datacenter el cortafuegos (recuerdo que el Host lo tiene ya habilitado por defecto). Datacenter -> Cortafuegos -> Opciones:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-10

Para habilitar nuestro firewall a nivel de LXC vamos al apartado cortafuegos:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-5

Marcamos la casilla después de pulsar EDITAR:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-6

Con esto el contenedor y los servicios que estamos publicando en él (HTTP del NGINX) quedan no accesibles sin reglas de cortafuegos personalizadas. Probamos un PING o navegar a la página web que hemos creado, veremos que no tenemos acceso, pero si a la gestión de los servicios de gestión del clúster:

Si probamos el ping desde la otra máquina que reside en el mismo host, si el firewall del contenedor está habilitado, veremos que no tenemos llegamos a él, aún estando en el mismo host porque la máquina se queda aislada incluso dentro del mismo host, aún estando en el mismo host:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-11

Si deshabilitamos el firewall a nivel de máquina, y realizamos la misma pruebas, veremos que la máquina ya contesta, aún estando habilitado a el cortafuegos a nivel de datacenter o de host.

Crear regla cortafuegos en Proxmox para LXC

Para generar las reglas de cortafuegos, yo crearía los objetos desde el apartado del datacenter. Lo primero genero un Alias para generar los objetos que queremos definir para aplicarles reglas:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-12

Voy creando objetos:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-13

Genero unos cuantos para hacer las pruebas:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-14

Podríamos hacer un Grupo de Seguridad, que usaremos como plantilla, para los servidores web con dos reglas para aceptar HTTP y HTTPS a nivel global de nuestro datacenter, por ejemplo:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-17

Pero lo normal es hacer las reglas por máquina virtual:

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-15

Y controlar el log desde el host o desde la sección Cortafuegos -> Registro.

Conclusión firewall en Proxmox e importancia en el hardening

Por defecto, como hemos visto, la opción de habilitar el cortafuegos al generar la máquina virtual o el contenedor LXC, no tiene ninguna implicación, si no está habilitado en nuestro datacenter, que por defecto viene deshabilitado.

El problema es, que si es habilitado en el datacenter, la máquina va a quedar aislada una vez generada con el check habilitado y mantener un entorno grande o cambiante puede ser in-gestionable.

En definitiva, yo quitaría el check por defecto, si no tenéis una gestión extrema de vuestra infraestructura Proxmox, porque puedo ocasionaros problemas, estáis en un laboratorio o no es una plataforma crítica, porque está aislada de Internet u aislada con otro tipo de firewalls dedicados.

Si tenéis un control total de lo que hacéis, queréis securizar adicionalmente vuestras máquinas y recursos desde la capa de Proxmox, o queréis aplicar prácticas de hardening a vuestra plataforma de virtualización es casi obligado habilitarlo, generar reglas y abrir sólo las reglas necesarias a vuestros servicios bajo petición.

Personalmente, creo que es una opción excepcional si luego podéis explotar los datos en un SIEM bajo un SOC, analizando problemas críticos y generando alertas/acciones reales.

Esto es parecido, salvando mucho las distancias, a lo que hace VMware con NSX, es una capa adicional bajo un firewall distribuido, que os permite tener el control total de lo que se hace en vuestros sistemas virtualizados.

Ojalá evolucionen y pueda ser explotado de una forma práctica sin sistemas de terceros.

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

terraform-crear-contenedores-lxc-en-proxmox-3

Terraform: Crear contenedores LXC en Proxmox

Terraform: Crear contenedores LXC en Proxmox Hoy vamos a explicar como automatizar despliegues con Terraform …

Deja una respuesta

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

13 − tres =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu