понедельник, 2 февраля 2009 г.

строим netflow-proxy



Задача: принимать поток netflow и передавать дальше только пакеты, соответствующие определенным условиям. Возможно решение с помощью пакета nfdump
Нам интересны три утилиты из этого пакета. Первая и главная - nfcapd - демон который будет принимать netflow-поток и сохранять его в файлы.
Важные аргументы:
  • -l dirname - директория, где будем эти файлы хранить
  • -t - интервал ротации файлов в секундах (по умолчанию - 600)
  • -x команда (в кавычках), запускаемая после ротации каждого файла. Допустимы символы расширения. Практически важен %f - имя новосозданого файла.
  • -R host/port - адрес для пересылки сдублированного потока - сама по себе интересная возможность, но нам нужна более сложная конфигурация - и мы будем возиться с предыдущей опцией. Для ее полезного использования нам нужны еще две команды из пакета:
nfdump - очень похожа на всем знакомую tcpdump (только выражения фильтра нужно брать в кавычки). Необходимые аргументы:
  • -r - файл, из которого читаем (т.е. созданный nfcapd)
  • -w - файл, куда пишем netflow (- означает stdout). Если аргумент пропущен, получаем на выходе не netflow, а человеко-читаемый вывод. Полезно для тестирования.
  • -f filename - имя файла, содержащего выражение фильтра (может быть разбито на несколько строк)
И - последний штрих - команда nfreplay - посылает netflow из файла снова в сеть. Важные аргументы:
  • -H - адрес, куда будем слать netflow
  • -r filename - файл, содержащий пакеты для посылки (по умолчанию - stdin)
  • -v [59] - версия netflow
Теперь собираем все в кучу. Вызывам nfcapd с опицией -x '/path/to/myscript %f', а в этот скрипт помещаем что-то вроде:
nfdump -r $1 'src net my.ney.wo.rk/24' -w - | nfreplay -H my.nf.col.lector
rm $1

Перед тем, как подать на систему нагрузку, тестовые пакеты netflow можно создать с помощью ipcad

2 комментария:

Максим комментирует...
Этот комментарий был удален автором.
Максим комментирует...

добрый день. хотелось бы проконсультироваться по вопросу запуска nfcapd через rc.conf.
суть изложена тут http://forum.lissyara.su/viewtopic.php?f=53&t=33167&p=299577#p300088