Firewalld: Asignación de reglas amplias y explícitas en zonas

Firewalld: Asignación de reglas amplias y explícitas en zonas

Estoy intentando configurar firewalldpor primera vez. Tengo dos tipos de reglas que me gustaría agregar:

  • Reglas que solo permiten el tráfico en puertos específicos con determinadas fuentes.
  • Reglas que permiten TODO el tráfico de fuentes específicas.

Entonces digamos que creo una nueva zona llamada "myZone". Quiero permitir TODO el tráfico de 10.95.0.0/16, pero sólo el tráfico relacionado con LDAP de 10.96.59.23.

Entonces agrego las fuentes a "myZone":

firewall-cmd --permanent --zone=myZone --add-source=10.95.0.0/16
firewall-cmd --permanent --zone=myZone --add-source=10.96.59.23

Ahora es el momento de agregar el puerto LDAP en el que quiero permitir el tráfico:

firewall-cmd --zone=myZone --add-port=389/tcp

Sin embargo, ¿qué hará esto exactamente? Me imagino que esto se aplica a todas las fuentes en "myZone". Quiero restringir 10.96.59.23únicamente el tráfico LDAP, pero permitir CUALQUIER tráfico para 10.95.0.0/16. Tengo la sensación de que me estoy perdiendo algo fundamental aquí.

Teóricamente pensé que podría crear dos zonas, digamos "workstationZone" y "ldapZone". Luego puedo asignar el puerto 389 a "ldapZone". Sin embargo, parece que no puedo asignar varias zonas a una sola interfaz.

# firewall-cmd --zone workstationZone --add-interface ens32 --permanent
success
# firewall-cmd --zone ldapZone --add-interface ens32 --permanent
success
#firewall-cmd --get-active-zones
workstationZone
  interfaces: ens32
  sources: 10.95.0.0/16
ldapZone
  sources: 10.96.59.23

En lo anterior esperaba que mi interfaz "ens32" se agregara a ambas zonas.

Otra opción que veo es usar "reglas enriquecidas", sin embargo parece haber muchas recomendaciones para evitar usarlas debido a que son difíciles de mantener.

Una vez más, siento que me estoy perdiendo algo totalmente fundamental, pero incluso después de leer un par de guías, simplemente no lo entiendo. Si alguien puede ayudarme a aclararme, se lo agradecería mucho.

Respuesta1

Si el tráfico que se permitirá difiere entre fuentes/interfaces, debe crear nuevas zonas. Una zona define un conjunto de tráfico permitido y luego lo aplica a las interfaces y/o redes de origen especificadas.

Por ejemplo, puede tener una zona que permita todo el tráfico (ya existe de forma predeterminada; se llama trusted), otra zona que permita el tráfico LDAP y otra zona que permita algún otro conjunto de servicios.

Tenga en cuenta que una interfaz o fuente solo puede estar en una zona, por lo que debe asignar cada una de ellas a una zona y el tráfico que permita esa zona se aplicará a esa interfaz o fuente. Esto puede significar que necesitas crear otra zona, pero está perfectamente bien.

Te recuerdono debeÚselo --permanenthasta que esté satisfecho de que las reglas funcionan. De lo contrario, podría bloquearse por un error tipográfico y necesitar iniciar un entorno de rescate para recuperarse. En su lugar, agregue sus reglas y, una vez que esté satisfecho de que todas funcionan, utilícelas firewall-cmd --runtime-to-permanentpara guardarlas. (Y si se bloquea por un error tipográfico, reiniciar firewalld o la computadora revertirá todos los cambios no guardados).

Además, ahórrese un poco de escritura. La palabra Zoneen el nombre de la zona es redundante.

información relacionada