У меня есть Linux-машина, настроенная как маршрутизатор с двумя интерфейсами, обращенными к LAN A и LAN B. Я хочу фильтровать трафик, проходящий из LAN A в LAN B (входящий трафик), используя tcpdump, но у меня нет информации о подсети LAN (не это: dst net subnetB)?
Я не совсем понял, что вы хотите, но если вы хотите захватывать пакеты, которые перенаправляются (например, маршрутизируются) ядром из интерфейса eth0
взаимодействовать eth1
, вы можете добавить это iptables
правило:
iptables -A FORWARD -i eth0 -o eth1 -j NFLOG
Затем используйте tcpdump
или wireshark
для захвата пакетов из псевдоинтерфейса Netfilter Log (tcpdump
работает с использованием nflog
в качестве имени интерфейса), который читает пакеты, которые видит NFLOG
цель.
Если вы также хотите регистрировать пакеты, идущие наоборот, просто вставьте другое правило iptables:
iptables -A FORWARD -i eth0 -o eth1 -j NFLOG
Из wirehark / tcpdump можно увидеть только реально перенаправленные пакеты. Пакеты, отправленные с хоста или полученные без пересылки, не захватываются. Но вы все равно можете решить захватить их, добавив больше правил NFLOG в INPUT
или OUTPUT
.
Также следите за загрузкой ЦП: он может быть медленнее NFLOG
чем захватывать прямо из интерфейса.