sábado, 25 de fevereiro de 2012

Bridge transparente em Linux


Esse é mais um artigo para servir de referência, considerando a simplicidade dessa configuração.
Bridge transparente em Linux é uma forma poderosa de interligar um seguimento de rede. Isso é útil por exemplo, para analisar um fluxo de dados sem interferir nos sistemas geradores e receptores de pacotes e ainda evita o acesso aos sistemas operacionais envolvidos. Considere isso como um HUB; pode-se ligar a interface de um firewall ou simplesmente filtrar um servidor específico.
Ferramenta poderosa pelo fato de que em Linux é possível aplicar filtragem de pacotes na bridge. Utilizando iptables + tcpdump + iptraf, pode-se então montar um analisador de rede de baixo custo.
Habilitar uma bridge é um processo muito simples; instale o pacote bridge-utils em uma máquina com duas interfaces físicas de rede e proceda assim:

#Habilitar forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward

#criar interface de bridge
brctl addbr br0
#adicionar interfaces de rede à bridge criada
brctl addif br0 eth0
brctl addif br0 eth1
#levantar a bridge
ifconfig br0 up
#Para verificar todas as instâncias de bridge
brctl show
#Para desconectar uma interface da brigde (exemplo: eth0 na br0)
brctl delif br0 eth0
#Para apagar um bridge
brctl delbr

# Para ver a lista de MACs aprendidos pela bridge
brctl showmacs br0

Um exemplo de filtragem, supondo que se queira analisar o conteúdo dos pacotes UDP originados pela máquina 172.0.0.254 pela porta 5454 com um comprimento de 4192 bytes:

tcpdump -i br0 -vvv -XXX -s4192 proto UDP and src host 172.0.0.254 and port 5454
Ou simplesmente todo o tráfego:

tcpdump -i eth0 -vvv -XXX -s 4192
Isso é o suficiente para uma análise, mas esse recurso em Linux pode ir muito além:

man brctl

Achou útil? Pra mim sempre é, com certeza!

Nenhum comentário:

Postar um comentário