Anche se una risposta è stata accettata e votata, non credo sia una risposta corretta. Non riesco a trovare una spiegazione chiara nella documentazione, ma dal comportamento implementato sembra che:
- l'interfaccia e la sorgente vengono utilizzate come selettori - quali zone attivare
- entrambi vengono ignorati per la zona predefinita (sempre attiva)
Quindi la risposta sarebbe:
- bloccare la zona predefinita, dire "pubblico" - nessuna porta aperta o servizi disponibili
- in un'altra zona, dire "lavoro": definire l'origine e le porte aperte
Ad esempio, supponendo che la zona predefinita sia pubblica e non abbia porte aperte, aggiungi l'origine e l'intervallo di porte alla zona di "lavoro":
$ sudo firewall-cmd --zone=work --add-source=192.168.0.0/24
$ sudo firewall-cmd --zone=work --add-port=8080-8090/tcp
ora controlla le zone attive (la zona predefinita è sempre attiva):
$ sudo firewall-cmd --get-active-zones
otterrai:
work
sources: 192.168.0.0/24
quindi le regole di zona "lavoro" si applicheranno alla sottorete particolare. Avrai a disposizione una gamma di porte aperte per la "whitelist" = sottorete come richiesto. E, naturalmente, utilizzare l' --permanent
opzione nelle --add-xxx
istruzioni per mantenere fedele il comportamento.
A sua volta, tutte le porte o i servizi presenti nella zona "pubblica" (impostazione predefinita) verranno applicati a tutte le interfacce e gli indirizzi di origine.
$ 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:
Lo stesso sistema funziona per le interfacce. Dire aggiungendo l'interfaccia "ens3" alla zona "lavoro":
$ sudo firewall-cmd --zone=work --add-interface=ens3
userete le regole di zona "lavoro" per qualsiasi richiesta dalla particolare interfaccia - selettore più approssimativo di "sorgente".