-
Zone é apenas uma camada de abstração baseada no netfilter. Na linguagem do netfilter governa seu conjunto de cadeias que lhe dão essa sensação como usuário final do firewalld que seus pacotes estão dentro de alguma "zona". Você sempre pode verificar o comportamento exato da zona em execução:
iptables -L
-
Ordem em que os pacotes correspondentes do firewalld são:
- regras diretas
- roteamento para zonas com base no ip de origem
- o roteamento para zonas baseadas em pacotes de interface vem de
Isso basicamente significa que se o destino final dos pacotes não for decidido por regras diretas, eles entrarão em alguma zona. Primeiro firewalld está tentando rotea-los com base no ip de origem. Se não houver correspondência, o firewalld tentará rotea-los com base na interface em que eles entraram. Se isso também falhar, eles entrarão na zona padrão. Caso você tenha mais zonas configuradas com ip de origem e essas faixas de IP se sobrepõem à zona, qual regra de origem foi adicionada, pois a primeira será vencida porque sua regra será verificada primeiro para correspondência.
Exemplos:
permite ter sistema com interfaces:
- eth0 com endereço IP 192.168.0.1/24
- eth1 com endereço IP 192.168.100.1/24
Firewalld configuração 1:
firewall-cmd --zone=home --add-interface=eth0
firewall-cmd --zone=internal --add-source=192.168.0.0/16
Pacotes vindos do endereço 192.168.0.2 via eth0 serão encaminhados para a zona interna.
Configuração do Firewalld 2:
firewall-cmd --zone=internal --add-source=192.168.0.0/16
firewall-cmd --zone=home --add-source=192.168.0.2/32
Os pacotes provenientes de 192.168.0.2 serão roteados novamente para a zona interna. Funciona dessa maneira porque o firewalld está adicionando regras de origem para as zonas de roteamento, uma a uma, para que possamos executar comandos relacionados.