Захват и регистрация исходящих 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