Limitando o encaminhamento de IP entre certas interfaces / redes

3

Atualmente, tenho ipv4.ip_forward habilitado para rotear pacotes entre várias interfaces.

Agora estou ampliando o sistema para 8 interfaces, mas quero limitar o roteamento entre interfaces / endereços.

Uma opção é usar o firewalld , mas estou implantando isso em uma versão mais antiga do RH, para que isso seja feito por meio de iptables .

    
por user2066671 13.06.2016 / 22:46

1 resposta

3

Na verdade, iptables é adequado muito bem para restringir isso. A tabela filter , em que os pacotes são permitidos ou bloqueados, tem três cadeias. Em cada cadeia, as regras podem ser definidas para corresponder aos pacotes e acionar uma ação se um pacote for correspondido. Contra qual cadeia de regras um pacote é correspondido depende da direção do pacote em relação ao host em que iptables está em execução:

  • INPUT : pacote de entrada destinado ao host local
  • OUTPUT : pacotes de saída originados do host local
  • FORWARD : Pacotes destinados a outro host e precisam ser encaminhados

Agora, por exemplo, se um pacote tiver que ser encaminhado e não tiver uma regra que corresponda à cadeia FORWARD , ele será tratado de acordo com o policy definido nessa cadeia, que é por padrão: ACCEPT . O pacote terá permissão para passar. Este comando mostrará as políticas e regras, se alguma delas estiver definida:

iptables -t filter -vnL

A tabela é especificada usando -t <table> , filter é a tabela padrão se nenhuma for especificada, então o seguinte comando é equivalente:

iptables -vnL

Para bloquear todos os pacotes para encaminhamento, a política dessa cadeia pode ser definida como REJECT ou DROP da seguinte maneira

iptables -P FORWARD REJECT

Agora, todos os pacotes a serem encaminhados serão rejeitados se nenhuma regra na cadeia FORWARD os aceitar explicitamente.

Para o tráfego interno, você provavelmente deseja uma política REJECT . Isso notificará os clientes imediatamente que o caminho está fechado. Você pode querer as regras DROP para o tráfego originado de uma rede externa.

Para permitir explicitamente que determinados pacotes passem, as regras são anexadas a essas cadeias, que são correspondidas a um pacote principal na ordem em que essas regras foram definidas. Por exemplo, para permitir que todo o tráfego entre em eth0 e com base no encaminhamento seja encaminhado para eth1 :

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

E, por exemplo, para permitir que somente os pacotes da sub-rede 10.0.0.0/24 passem na direção oposta:

iptables -A FORWARD -i eth1 -o eth0 -s 10.0.0.0/24 -j ACCEPT

Para uma descrição detalhada de todos os parâmetros, consulte a página do iptables e o iptables-extensions manpage .

    
por 14.06.2016 / 01:11