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

tcpdump получить запрашивающий IP

Мы отслеживаем использование http (в основном для нашей интрасети), и я смог отследить его, используя следующее на нашем маршрутизаторе OPENWRT:

tcpdump -i wlan1 -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' | grep 'GET\|Host' >> /mnt/jlt/wlan1

Это выводит только Host и Request.

Однако я не могу понять, как получить запрашивающий IP-адрес.

Например, если система 192.168.1.5 запрашивает наш внутренний сайт, я могу видеть только запрошенный сайт и путь, но не запрашивающий IP-адрес (192.168.1.5).

Есть ли способ также показать IP, который запрашивается через tcpdump, я знаю, что это не совсем его дизайн, но есть ли другой способ, если это невозможно?

Для справки дамп TCP (без grep) выглядит следующим образом:

17:09:15.637887 IP (router).10199 > (dataSource).80: Flags [P.], seq 2206:2687, ack 33836, win 68, length 481
E..     ..@....d...g..$.'..P.C. '3.jP..D....GET (Path) HTTP/1.1
Host: (requestDomain)
Connection: keep-alive
User-Agent: (user-agent)
Accept:(file data)
Referer: (referer)
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: (cookie)

Исходный IP-адрес пакета - это первый IP-адрес после IP в выводе TCPDump.

Если он показывает какой-то другой IP-адрес, отличный от IP-адреса HTTP-клиента, то есть что-то посередине, например, обратный прокси-сервер, который создает другое TCP-соединение из этого ящика с сервером. Также может быть какая-то странная настройка NAT, которая заменяет исходный IP-адрес в проходящих пакетах.

Если это обратный прокси-сервер, вы можете изучить его журналы, чтобы узнать, какие IP-адреса клиентов имеют к нему доступ.