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

1

Estou desejando registrar e monitorar o tráfego que passa por um determinado ponto da minha rede. Então, em última análise, quero que todo o tráfego passando pela minha ponte seja espelhado para o endereço IP do outro sistema que está ouvindo qualquer tráfego enviado para ele.

Aproximadamente minha configuração atual é:

  • servidor de monitoramento / registro com uma configuração de interface de monitoramento no modo promíscuo
  • ponte linux no ponto da rede que eu quero monitorar
  • Regras iptables para tentar espelhar o tráfego para o 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 em qualquer interface para o ip de monitoramento, a menos que eu tente fazer o ping diretamente (da qual eu posso ver o tráfego na ponte e na porta de monitoramento).

Existe outro problema que pode ser digno de nota. Eu tive que colocar em uma rota estática para a resolução ARP para a porta de monitoramento, porque por algum motivo, sempre colocaria o MAC da porta de gerenciamento como o endereço. Não identifiquei por que a bridge obtém o endereço MAC de gerenciamento contra o ip de monitoramento quando nenhum outro cliente faz na rede.

Qualquer conselho seria apreciado, desculpe se eu não tiver fornecido detalhes claros suficientes.

    
por Aklys 09.03.2018 / 03:53

1 resposta

1

Por padrão, quadros comutados não são passados pelas regras do iptables. Para mudar este comportamento, você deve ativar a opção nf_call_iptables na interface bridge (com o 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.

    
por 09.03.2018 / 11:33