Назад | Перейти на главную страницу

tcpdump фильтр по последнему прыжку / print

Если у меня сеть выглядит так:

           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

... где модем 1 и модем 2 перенаправляют порт ssh на 192.168.0.3.

Когда я звоню tcpdump port ssh на машине с адресом 192.168.0.3, а затем ssh с 11.22.33.44 на 56.56.56.56, результат будет выглядеть примерно так:

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

Как вы видете, tcpdump появляется только для того, чтобы дать мне исходный IP-адрес в качестве «исходного» IP-адреса и «конечный» IP-адрес в качестве целевого.

Какая команда нужна, чтобы сообщить tcpdump распечатать или отфильтровать по:

  1. то последний прыжок (например, 192.168.0.1 или 192.168.0.2 на схеме)
  2. то "публичный" IP (например, 56.56.56.56 или 67.67.67.67 на диаграмме)
  3. то следующий прыжок (например, модем, используемый для исходящих пакетов, а не входящих)

Tcpdump захватывает только сами пакеты и не имеет дополнительной информации о маршрутах / внешнем исходном адресе / и т. Д.

  1. В пакете нет явного IP-адреса последнего перехода, но вы можете использовать адрес источника Ethernet, чтобы определить его косвенно. Вам нужно использовать дополнительные -e параметр командной строки tcpdump для отображения заголовка Ethernet фреймов.
  2. Невозможно показать исходный общедоступный IP-адрес, на который пришел пакет, потому что эта информация отсутствует в пакете и хранится только в таблице трансляции в ваших модемных ящиках.
  3. Это тоже невозможно. Tcpdump не ищет маршруты исходных пакетов и, очевидно, не ищет маршруты для отвеченных пакетов.

В соответствии с выражения tcpdump синтаксис которого - BPF:

tcpdump эфирный хост 11: 22: 33: 44: 55: 66

выгружает все пакеты на этот MAC-адрес или с него

Это отвечает (1) и (3).

Что касается (2), исходный IP-адрес меняется после NAT, поэтому вам понадобится машина вне NAT, чтобы засвидетельствовать этот IP.