iptables firewall + visibilidade do cliente NAT

0

Contexto

Eu tenho duas redes, confiáveis: 10.0.1.0/24 e não confiáveis: 10.0.2.0/24, com uma configuração bem padrão que faz o seguinte:

  • NAT / masq
  • convidados em ambas as redes podem se conectar à internet
  • convidados em ambas as redes podem se conectar aos serviços (dns, dhcp) no firewall

Atualmente, todos os convidados em ambas as redes podem ver outros convidados em sua própria rede.

Problema

Qual regra pode impedir que clientes na rede não confiável visualizem uns aos outros ou clientes na rede confiável?

Por exemplo 0.0.2.12 não deve ver 10.0.2.13 ou 10.0.1.11.

Os clientes na rede confiável devem ver uns aos outros e a clientes não confiáveis (isso funciona agora).

    
por Wilbert 23.02.2018 / 11:33

1 resposta

1

Você tem três perguntas em uma. Dado que eu não tenho a configuração completa, estou dando comandos simples que podem funcionar, ou pode ter que ser adaptado à sua configuração

  • como impedir o acesso à LAN segura de uma LAN não confiável?

    iptables -A FORWARD -s  10.0.2.0/24 -d 10.0.1.0/24 -j DROP
    

Auto-explicativo: os pacotes da fonte 10.0.2.0/24 nunca podem passar para 10.0.1.0/24.

  • como ainda permitir o acesso à LAN não confiável da LAN segura?

    iptables -I FORWARD -s  10.0.2.0/24 -d 10.0.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -I FORWARD 2 -s 10.0.1.0/24 -d 10.0.2.0/24 -j ACCEPT
    

Observe o uso de -I para colocar esses comandos antes do comando na resposta da primeira pergunta e o 2 para manter a ordem usual. O segundo comando não é necessário, está aqui para dar a intenção e depende da sua configuração, se você precisar ou não. O primeiro comando permite que os pacotes de resposta de não confiáveis retornem à confiança, consultando o recurso conntrack do netfilter . Isso funcionaria entre as duas LANs apenas para conexões iniciadas anteriormente de confiáveis para não confiáveis. Geralmente este primeiro comando é escrito globalmente uma vez (sem usar -s e -d restringindo-o a essas duas LANs).

  • como impedir o acesso de hosts não confiáveis de outros hosts não confiáveis na mesma LAN?

Enquanto as duas primeiras perguntas podem ser tratadas com um roteador, trabalhando na camada 3: IP, a última questão não pode ser resolvida tão facilmente: os hosts não são roteados (ou seja, na camada 3) entre si na LAN, eles compartilhe um equipamento da camada 2, como um switch, e ferramentas que funcionem nesse nível devem ser usadas. iptables trabalhando na camada 3 não pôde ser usado sozinho. A implementação de isolamento correspondente é chamada Private VLAN . Esse recurso geralmente é implementado diretamente em equipamentos de rede.

Se o mesmo fosse feito em um servidor Linux padrão, seria necessário um alto número de interfaces de rede para funcionar como um comutador (o gerenciamento do ambiente virtual torna isso mais fácil, já que as interfaces ficam livres para adicionar). O firewall na camada 2 para isso é feito usando ebtables . Aqui estão alguns Q / A sobre este tema: link link

Se o servidor Linux tivesse um número limitado de portas, não agindo como o o switch, ele exigiria uma maneira de receber todo o tráfego da LAN não confiável e ter alguma tag em cada pacote para identificar sua origem, provavelmente exigindo um número anormalmente alto de VLANs e, de qualquer forma, configurações específicas em equipamentos de rede.

    
por 26.02.2018 / 19:37