Incluso si una respuesta ha sido aceptada y votada, no creo que sea correcta. No encuentro una explicación clara en la documentación, pero por el comportamiento implementado se ve así:
- La interfaz y la fuente se utilizan como selectores, qué zona (s) activar
- ambos se ignoran para la zona predeterminada (siempre activa)
Entonces la respuesta sería:
- bloquear la zona predeterminada, decir "público": no hay puertos abiertos ni servicios disponibles
- en otra zona, diga "trabajo" - defina el origen y los puertos abiertos
Por ejemplo, suponiendo que la zona predeterminada es pública y no tiene puertos abiertos, agregue el origen y el rango de puertos a la zona de "trabajo":
$ sudo firewall-cmd --zone=work --add-source=192.168.0.0/24
$ sudo firewall-cmd --zone=work --add-port=8080-8090/tcp
ahora verifique las zonas activas (la zona predeterminada siempre está activa):
$ sudo firewall-cmd --get-active-zones
usted obtendrá:
work
sources: 192.168.0.0/24
entonces las reglas de zona de "trabajo" se aplicarán a la subred particular. Tendrá un rango de puertos abiertos para la "lista blanca" = subred según lo solicitado. Y, por supuesto, use la --permanent
opción en las --add-xxx
declaraciones para que el comportamiento se mantenga.
A su vez, los puertos o servicios que tenga en la zona "pública" (predeterminada) se aplicarán a todas las interfaces y direcciones de origen.
$ sudo firewall-cmd --list-all-zones
public (default)
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
work (active)
interfaces:
sources: 192.168.0.0/24
services: dhcpv6-client ipp-client ssh
ports: 8080-8090/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
El mismo sistema funciona para las interfaces. Digamos agregando la interfaz "ens3" a la zona de "trabajo":
$ sudo firewall-cmd --zone=work --add-interface=ens3
utilizará las reglas de zona de "trabajo" para cualquier solicitud de la interfaz particular, un selector más aproximado que "fuente".