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:)