Linux iptables elimina o tráfego com base no endereço mac

2

Eu estou fazendo alguns testes na minha VM linux com um nic, eu quero usá-lo como um tipo de firewall que pode bloquear o tráfego de alguns clientes com base em um endereço mac.

O próprio cliente está tendo a VM como um gateway padrão (.254), a própria VM tem (.1 o roteador real) como gateway padrão.

Este é o script iptable que estou usando no momento. Eu tenho internet no meu cliente, mas .14 ainda está recebendo internet, ao usar o endereço mac, nada está bloqueado.

Estou sentindo falta de algo?

    # Generated by iptables-save v1.4.14 on Sun Feb 23 12:16:26 2014
*filter
:INPUT ACCEPT [869:78983]
:FORWARD ACCEPT [1183:197765]
:OUTPUT ACCEPT [644:128360]
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# log iptables denied calls (access via 'dmesg' command)
-P FORWARD DROP
-F FORWARD
-A FORWARD -i eth0 -m mac --mac-source 64:20:0c:ac:f4:49 -j DROP
-A FORWARD -i eth0 -s 192.168.1.14 -j DROP
-A FORWARD -i eth0 -j ACCEPT
# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT
# Completed on Sun Feb 23 12:16:26 2014
    
por Wouter 24.02.2014 / 22:19

2 respostas

0

Você precisa colocar essas regras no gateway .254, que é usado por .14.

Se você precisar bloquear .14 no nível de gateway .1, você precisa garantir que os pacotes estão sendo alcançados com o endereço mac de .14, se os pacotes estão sendo encaminhados por .254 via NAT, então esses pacotes serão ser reembalado com o endereço MAC .254.

Eu recomendo que você crie uma sub-rede para o cliente .14 não conseguir conectar-se diretamente ao gateway .1.

    
por 24.02.2014 / 23:37
1

A filtragem de endereço MAC precisa acontecer na cadeia PREROUTING, no momento em que o pacote alcança a cadeia FORWARD, o endereço MAC já está reescrito ao da ponte (iptables) (interna).

Consulte o parágrafo 9 do link para obter uma explicação mais detalhada.

Você também libera a cadeia FORWARD depois de definir a política padrão (a linha -F FORWARD), duvido que você queira fazer isso (restaura a política padrão do ACCEPT).

Não vejo por que "-A FORWARD -i eth0 -s 192.168.1.14 -j DROP" não está bloqueando esse IP de origem, mas de qualquer forma você não deve precisar do "-i eth0" lá . Tem certeza de que 1.14 está usando 254 como padrão gw?

Também ajudaria a publicar a saída de iptables -L -v para ver o que é realmente carregado.

    
por 25.02.2014 / 00:10