Linux firewalld zera a lógica e a prioridade

2

Estou tentando entender a lógica por trás das zonas do firewalld do Linux e a maneira como elas são avaliadas.

  1. No meu entender, uma zona é definida como uma lista de interfaces e intervalos de IP, que permitem que as regras de negação possam ser aplicadas. Isso está correto? Para uma zona que inclui uma interface e um intervalo de IP adicional. Os serviços permitidos para essa zona serão permitidos para o intervalo de IP mesmo se o tráfego chegar à máquina a partir do IP dentro desse intervalo, mas por meio de uma interface diferente?

  2. Em que zonas de ordem são avaliadas? O que acontecerá com o tráfego de entrada que é correspondido por duas zonas (possivelmente contraditórias)? Por exemplo, a zona "Z1" que permite nfs à máquina a partir de uma determinada interface, e a zona "Z2" que nega todo o tráfego de entrada de um IP. O que acontecerá com um tráfego NFS que chega à máquina através da interface definida em "Z1", mas a partir do IP definido em "Z2"?

por ko6 25.06.2014 / 14:13

1 resposta

1

  1. 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

  2. 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.

    
por 24.04.2015 / 12:55