пятница, 13 марта 2009 г.

Простая конфигурация Netflow для сбора данных о трафике в FreeBSD

Чтобы конфигурация netflow загружалась во время запуска системы добавляем в «/etc/rc.local» следующие строки

  1. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
  2. /usr/sbin/ngctl -f - << EOF
  3. mkpeer if0: tee lower left
  4. name if0:lower tee0
  5. connect if0: if0:lower upper right
  6. mkpeer tee0: one2many left2right many0
  7. name tee0:left2right one2many0
  8. connect tee0: one2many0: right2left many1
  9. mkpeer one2many0: netflow one iface0
  10. name one2many0:one netflow
  11. mkpeer netflow: ksocket export inet/dgram/udp
  12. msg netflow: setifindex { iface=0 index=0 }
  13. msg netflow:export connect inet/127.0.0.1:7771
  14. EOF
«if0» меняем на свой интерфейс. Если надо собирать данные с нескольких сетевых интерфейсов, множим блок «/usr/sbin/ngctl -f - << EOF ... EOF» и в каждом дополнительном блоке вместо «if0» вписываем нужный сетевой интерфейс. Так же меняем порядковые номера нодов и значение параметра «iface».
Чтобы загрузились необходимые модули добавляем в файл «/boot/loader.conf»
  1. netgraph_load="YES"
  2. ng_netflow_load="YES"
  3. ng_socket_load="YES"
  4. ng_tee_load="YES"
  5. ng_iface_load="YES"
  6. ng_one2many_load="YES"
  7. ng_ksocket_load="YES"
  8. ng_ether_load="YES"
Следующим шагом ставим коллектор netflow-трафика, прослушивающий порт «7771» по адресу «127.0.0.1».

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

f-andrey комментирует...

Жуткий какой рецепт, кажется сделано все крайне не по человечески.
Нафига так дико прописывать модули, хватит скорее всего одной записи
ng_netflow_load="YES"
в /boot/loader.conf ну и если какойто нужный модуль не подтянется автоматом то прописать и его.
Дальше ничего не могу сказать не пробовал, хотя надо бы потренироваться, все таки netflow крайне интересная штука.

Князь комментирует...

Да, действительно жутко :) Поправил.