Espelhando o tráfego em uma ponte Linux para uma interface de monitoramento

Espelhando o tráfego em uma ponte Linux para uma interface de monitoramento

Quero registrar e monitorar o tráfego que passa por um ponto específico da minha rede. Então, em última análise, quero que todo o tráfego que passa pela minha ponte seja espelhado no endereço IP do IP de outro sistema que está ouvindo qualquer tráfego enviado a ele.

Aproximadamente minha configuração atual é:

  • servidor de monitoramento/registro com uma interface de monitoramento configurada em modo promíscuo
  • ponte linux no ponto da rede que desejo monitorar
  • regras do iptables para tentar espelhar o tráfego para um gateway alternativo
    • iptables -t mangle -A PREROUTING -j TEE --gateway <monitoring ip>
    • iptables -t mangle -A POSTROUTING -j TEE --gateway <monitoring ip>

Mas até agora não vejo nenhum tráfego fluindo por qualquer interface para o IP de monitoramento, a menos que eu tente fazer ping diretamente (do qual posso ver o tráfego na ponte e na porta de monitoramento).

Há outro problema que pode ser digno de nota. Tive que colocar uma rota estática para a resolução ARP da porta de monitoramento, pois por algum motivo sempre colocava o MAC da porta de gerenciamento como endereço. Não identifiquei por que a ponte obtém o endereço MAC de gerenciamento em relação ao IP de monitoramento quando nenhum outro cliente o faz na rede.

Qualquer conselho seria apreciado. Desculpe se não forneci detalhes claros o suficiente.

Responder1

Por padrão, os frames comutados não passam pelas regras do iptables. Para alterar este comportamento você deve habilitar a opção nf_call_iptables na interface bridge (com comando ip ou através do sistema de arquivos /proc)

ip link set dev br0 type bridge nf_call_iptables 1

Para limitar o tráfego de monitoramento, use a correspondência --phys-dev nas regras do iptables.

informação relacionada