Se eu tenho uma rede que se parece com isso:
56.56.56.56 192.168.0.1/24
___________
---| Modem 1 |-----
| ___________ | ___________
11.22.33.44 ---| |--------| Machine |
| ___________ | ___________
---| Modem 2 |----- 192.168.0.3/24
___________
67.67.67.67 192.168.0.2/24
...onde o modem 1 e o modem 2 encaminham a porta ssh para 192.168.0.3.
Quando chamo tcpdump port ssh
a máquina em 192.168.0.3 e, em seguida, ssh de 11.22.33.44 a 56.56.56.56, a saída se parece com isso:
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:51:16.147870 IP 11.22.33.44.55936 > 192.168.0.3.ssh: Flags [S], seq 642687408, win 14600, options [mss 1460,sackOK,TS val 1631250991 ecr 0,nop,wscale 7], length 0
16:51:16.147957 IP 192.168.0.3.ssh > 11.22.33.44.55936: Flags [S.], seq 55101726, ack 642687409, win 28960, options [mss 1460,sackOK,TS val 1829635753 ecr 1631250991,nop,wscale 7], length 0
16:51:17.147444 IP 11.22.33.44.55936 > 192.168.0.3.ssh: Flags [S], seq 642687408, win 14600, options [mss 1460,sackOK,TS val 1631251992 ecr 0,nop,wscale 7], length 0
Como você pode ver, tcpdump
aparece apenas para me dar o ip de origem como ip "origem" e o ip "final" como destino.
Qual comando é necessário dizer tcpdump
para imprimir ou filtrar por:
- o último salto (por exemplo, 192.168.0.1 ou 192.168.0.2 no diagrama)
- o ip "público" (por exemplo, 56.56.56.56 ou 67.67.67.67 no diagrama)
- o próximo salto (por exemplo, o modem usado para pacotes saindo em vez de entrar)
O Tcpdump captura apenas pacotes e não possui informações adicionais sobre rotas/endereço original externo/etc.
-e
a opção de linha de comando adicionaltcpdump
para mostrar o cabeçalho ethernet dos quadros.De acordo com as expressões tcpdump cuja sintaxe é BPF:
Isso responde (1) e (3).
No que diz respeito a (2), o IP de origem muda após o NAT, então você teria que ter uma máquina fora do NAT para testemunhar esse IP.