Envie todo o tráfego dentro de uma sub-rede através de uma máquina

0

Estou executando um experimento e preciso enviar o tráfego de todas as máquinas em uma sub-rede por meio de uma máquina específica (para monitorar todo o tráfego, o tipo de pessoa no meio)

Digamos que eu tenha 3 VMs ( A , B e C ) com o mesmo intervalo de IPs ( 10.12.10.x ) e desejo que B e C enviam o tráfego de comunicação por meio da VM A .

Eu excluí a entrada de rede padrão da tabela de roteamento B e C e adicionei uma rota para 10.12.10.0 através da VM A , além de aceita todo o tráfego de entrada e saída na VM A via iptables, mas não funciona.

Você tem alguma idéia para configurar este cenário com manipulação de tabela de roteamento / iptables ou até mesmo outros métodos?

    
por Mike 14.08.2015 / 00:23

1 resposta

1

Vamos começar.

Primeiro, adicione mais uma placa ethernet a VM A . Configure o novo eth em VM A em redes diferentes com acesso ao resto na rede, internet ...

Seup será algo assim

VM C

ip: 10.12.10.C 
nm: 255.255.255.xxx 
gw: 10.12.10.A

VM B

ip: 10.12.10.B
nm: 255.255.255.xxx
gw: 10.12.10.A

VM A

nic0 # eth card to the VM C and B

ip: 10.12.10.A
nm: 255.255.255.xxx

nic1 # new eth through will be route traffic out to rest of the network

ip: new_ip_from_different_range
nm: new_subnet_mask
gw: new_gw

Agora, precisamos configurar VM A para aceitar tráfego de VM B and C .

A primeira coisa a fazer é ativar o encaminhamento de IP. Isso é feito usando

echo "1" > /proc/sys/net/ipv4/ip_forward

Em seguida, adicionaremos uma regra para encaminhar o tráfego

sudo iptables -A FORWARD -i nic0 -o nic1 -j ACCEPT
sudo iptables -A FORWARD -i nic1 -o nic0 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o nic1 -j MASQUERADE

Desta forma, o tráfego de nic0 pode ir para o resto da rede através de nic1 .

Substitua nic1 e nic0 pelo nome real de suas interfaces.

Resumo

Todo o tráfego de VM C and B será roteado para o gateway, que é VM A on nic0 . Você pode monitorar, interceptar, alterar, redirecionar ... pacotes de rede e depois que os encaminham através de nic1 para o resto da rede, internet ...

Editar 1

Topologia

    |----------|
    |  VM C    |------
    |----------|     |
                     |   |----------|    nic0  |----------| nic1
                     |---|  switch  |----------|   VM A   |------
                     |   |----------|          |----------|
                     |
    |----------|     |
    |   VM B   |-----|
    |----------|

Minha resposta é baseada na topologia como eu desenho. Todo o tráfego para a rede 10.12.10.XXX não será enviado para o gateway. A comunicação termina apenas no switch. Apenas o tráfego para qualquer outra rede será enviado para o gateway. VM A não receberá nenhum pacote quando VM B e VM C tiverem comunicação direta como ssh de VM B a VM C

Também nic1 pode estar em algum intervalo. Defina nic0 sem gateway e nic1 com gateway.

Se você quiser que todo o tráfego, local e trafic to net, passe por VM A , use arp poisoning .

Um ótimo software para isso é Ettercap

Você pode instalá-lo com sudo apt-get install ettercap-graphical .

Como é aqui .

Edite 2 com elaborado

O envenenamento Arp é baseado na camada 2 do OSI e é completamente diferente do roteamento. É baseado no chip ASIC do switch. Alterne no par de chips ASIC ip e mac address. Arp envenenamento é técnica para dizer switch que é para qualquer ip, no nosso exemplo, o endereço mac é o endereço mac de nic0 .

A configuração do Ip é

VM C

ip: 10.12.10.C 
nm: 255.255.255.xxx 
gw: 10.12.10.GW

VM B

ip: 10.12.10.B
nm: 255.255.255.xxx
gw: 10.12.10.GW

VM A

nic0

ip: 10.12.10.A
nm: 255.255.255.xxx
gw: 10.12.10.GW

No manual, eu postei no Edit 1, você verá que depois do envenenamento Arp bem-sucedido. arp se parece com isso

arp on VM C


Address                  HWtype  HWaddress           Flags Mask            Iface
xxx.xxx.xxx.A            ether   xx:xx:xx:xx:xx:aa   C                     eth0
xxx.xxx.xxx.B            ether   xx:xx:xx:xx:xx:aa   C                     eth0

arp na VM B

Address                  HWtype  HWaddress           Flags Mask            Iface
xxx.xxx.xxx.A            ether   xx:xx:xx:xx:xx:aa   C                     eth0
xxx.xxx.xxx.C            ether   xx:xx:xx:xx:xx:aa   C                     eth0

Em comunicação direta quando o switch recebe pacotes do VM B do endereço IP para VM C , eles olham na tabela arp armazenada no chip ASIC e tomam decisões para enviar o pacote para xx.xx.xx.xx.xx.aa . Esse endereço mac pertence ao seu nic0 on VM A , mas o switch não sabe disso. Seu VM A recebe pacote, faz algo e retransmite para VM C .

Esta é a maneira mais simples de explicar como o envenenamento por Arp funciona.

O Ettercap é uma das minhas ferramentas favoritas:)

    
por 2707974 15.08.2015 / 14:17