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