Захват и регистрация исходящих IP-пакетов с помощью iptables
Моя цель - использовать ipset
списки в iptables
регистрировать исходящий трафик на определенные IP-адреса. Я намерен пассивно контролировать всю сеть.
У меня включено зеркалирование портов, и трафик с зеркальным отображением портов транслируется на сервер с двумя сетевыми адаптерами. Eth0 предназначен для управления системой, а Eth1 работает в смешанном режиме и предназначен для захвата передаваемого ему трафика. Можно ли использовать iptables
регистрировать исходящий трафик в сети, которая отслеживается? Спасибо.
1 ответ
Рассматривали ли вы использование tcpdump
скорее, чем iptables
? Что-то вроде:
tcpdump -w /var/log/packets -i eth1
Будет сбрасывать все пакеты, видимые на eth1
в файл /var/log/packets
, Вы можете позже проанализировать файл, используя tcpdump
, wireshark
или множество других инструментов.
С помощью iptables
вы обычно регистрируете пакеты, используя LOG
цель, как это:
iptables -A INPUT -i eth1 -j LOG
Я не уверен, действительно ли iptables
является правильным инструментом для этой работы, потому что (а) я не знаю, как это будет работать с интерфейсом в беспорядочном режиме, и (б) при высокой скорости передачи пакетов эта форма регистрации может иметь существенные влияние ввода / вывода на вашу систему.
Я думаю, что вам лучше с tcpdump
модель. -G
флаг для tcpdump
заставит его периодически поворачивать файл захвата, что вы захотите сделать, если снимаете в течение длительного периода. Так что-то вроде:
tcpdump -G 3600 -w /var/log/packets-%Y-%m-%d-%H
Это даст вам файлы в форме:
/var/log/packets-2013-06-20-10