Usando Ipset e Iptables para filtragem de endereço MAC

1

Eu uso filtro de endereço MAC no meu roteador Linux. Aqui está o que eu fiz:

iptables -A INPUT -i eth5 -m mac --mac-source 00:07:e9:84:2b:99 -j RETURN #User: Someuser
iptables -A INPUT -i eth5 -j DROP

Mas a lista de regras do Iptables é enorme, com mais de 400 entradas. Recentemente li sobre as vantagens de usar o Ipset com o Iptables aqui . Mas em nenhum lugar eu encontrei nenhum howtos sobre fazer a mesma coisa com filtragem MAC. Então, como posso usar o Ipset para filtragem de MAC para reduzir o tamanho da tabela de regras do Iptables?

    
por nixnotwin 08.05.2012 / 05:13

1 resposta

2

Basicamente algo assim, mas você tem que associar um IP a um MAC, conjuntos MAC puros parecem não existir:

# ipset --create test macipmap --network 10.0.0.0/16
# ipset --add test 10.0.0.1,00:11:22:33:44:55
# iptables -A INPUT -i eth5 -m set --match-set test src -j ACCEPT

Aqui, você vê o conteúdo do mapa e o contador de referência indicando uma regra do iptables que faz referência a esse conjunto:

# ipset -L test
Name: test
Type: macipmap
References: 1
Header: from: 10.0.0.0 to: 10.0.255.255
Members:
10.0.0.1,00:11:22:33:44:55

Há algumas coisas a serem consideradas:

  • Esse tipo de conjunto é tecnicamente restrito a 64k endereços consecutivos (não tenho certeza se eles precisam ser "alinhados à sub-rede"), ele foi encontrado aqui
  • Seu kernel tem que suportar ipset, os kernels de distribuição padrão mais comuns infelizmente não
  • Você pode definir o ARP estático alternativamente
  • Endereços MAC podem ser falsificados facilmente
por 08.05.2012 / 07:41