iptables - Filtrar por MAC na cadeia FORWARD

1

Eu preciso configurar um firewall entre um servidor e os clientes na intranet que filtra o acesso por MAC na cadeia FORWARD.

O servidor tem uma NIC (na sub-rede 10.0.0.0/29), o firewall duas NICs (uma na sub-rede 10.0.0.0/29, a outra na sub-rede 192.100.100.0/23) e o cliente tem uma NIC (na sub-rede 192.100.100.0/23)

Meu objetivo é poder encaminhar somente o tráfego de apenas alguns MACs e descartar o restante.

Agora eu tenho o iptables definido como abaixo:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT

Quando eu verifico o iptables, vejo que há tráfego na regra, mas o ping enviado não recebe resposta.

Alguma ideia? Agradecemos antecipadamente.

    
por loopeando 25.10.2015 / 20:17

1 resposta

0

O problema é que enquanto você está permitindo pacotes indo do cliente para o servidor, os pacotes do servidor voltando para o cliente serão descartados. Eles não são manipulados automaticamente pelo netfilter e precisam ser permitidos explicitamente.

Normalmente, em um firewall restritivo em que você permite apenas determinados pacotes e descarta o restante, você usa o rastreamento de conexão para aceitar pacotes de retorno / relacionados de conexões conhecidas:

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Note que não há a opção --mac-destination na correspondência mac no netfilter - muito provavelmente porque o endereço MAC da máquina de destino dos pacotes de saída não é conhecido pelo netfilter, pois é resolvido em uma camada de rede inferior (camada 2 o netfilter opera em camadas 3 e superiores).

    
por 26.10.2015 / 09:38