Название: netgraph netflow
Отправлено: Kaylas от 07 Августа 2010, 21:22:13
Перечитал инструкцию по установке netflow но остались вопросы. Подскажите обязательно ли устанавливать пакет cd /usr/ports/net-mgmt/flow-tools && make install clean Или достаточно опций в ядре options NETGRAPH options NETGRAPH_SOCKET options NETGRAPH_IPFW options NETGRAPH_NETFLOW options NETGRAPH_KSOCKET
Название: Re: netgraph netflow
Отправлено: Elisium от 07 Августа 2010, 22:06:43
Мдя. Ну раз в доке написано, что надо, значит надо. Этот пакет - прослойка между ядром и юзером, которая собирает нетфлов и приводит его в более/менее удобоваримый вид.
п.с. Без него биллинговые скрипты сбора трафика не работают.
п.п.с. Реально, половина вопросов пропадает, если ПОСЛЕ того как ничего не получилось, прочитать доку ЕЩЕ РАЗ. Там есть некоторые места, в которых ВАЖНЫЕ вещи пишуццо одним/половинкой предложения.
Название: Re: netgraph netflow
Отправлено: Kaylas от 07 Августа 2010, 22:12:01
Очень признателен за развернутый ответ.
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 12:00:53
Все установил но статистика работает не правильно.
Поставил на закачку фильмы.
Скачал уже несколько гигабайт а на страничке статистики показывает какую то ерунду.
Канал у меня всего 100 мегабит закачка была на скорости 6 мегабайт а в статистике показывает 200 - 300 - 1600 мегабит
Название: Re: netgraph netflow
Отправлено: stix от 08 Августа 2010, 12:18:21
какой реальный объем? с какого интерфейса снимаешь статистику?
Название: Re: netgraph netflow
Отправлено: VitalVas от 08 Августа 2010, 12:46:28
Все установил но статистика работает не правильно.
Поставил на закачку фильмы.
Скачал уже несколько гигабайт а на страничке статистики показывает какую то ерунду.
Канал у меня всего 100 мегабит закачка была на скорости 6 мегабайт а в статистике показывает 200 - 300 - 1600 мегабит
конфиги в студию
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 13:37:14
rc.conf# cat rc.conf
# ---> LAN ifconfig_em1="inet 10.4.1.3 netmask 255.255.252.0"
#ifconfig_em0_alias0="ether 00:50:FC:E6:B8:99" ifconfig_em0="inet 109.86.106.179 netmask 255.255.255.0"
#defaultrouter="192.168.0.1" defaultrouter="109.86.106.254"
hostname="server.i-net.in.ua"
keymap=ru.cp1251 # можно не использовать, by default клавиша "CAPS LOCK" #keychange="61 ESC[K" scrnmap="win2cpp866" font8x16=cp866b-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8
gateway_enable="YES" sshd_enable="YES" mysql_enable="YES" apache22_enable="YES" pf_enable="YES" firewall_enable=YES ngnetflow_enable="YES"
# --> Сервер времени ntpd_enable="YES" ntpd_sync_on_start="YES" #ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
# --> flow_capture_enable="YES" flow_capture_profiles="nodeny" flow_capture_nodeny_flags="-n1 -N0 -R /usr/local/nodeny/netflow_8888.pl" # Ниже ип шлюза, отдающего нетфлов или 0.0.0.0, если не важна суперсекретность )) flow_capture_nodeny_remoteip="0.0.0.0" # Ниже ип биллинга, коллектора нетфлов или 0.0.0.0, если слушать на всех ифейсах flow_capture_nodeny_localip="0.0.0.0" flow_capture_nodeny_datadir="/var/db/flows" flow_capture_nodeny_pid="/var/run/flow-capture/flow-capture.pid" flow_capture_nodeny_port="8888" flow_capture_nodeny_user="root"
rc.firewall# cat rc.firewall #!/bin/sh -
f='/sbin/ipfw'
# Настройки сети маси и IP адреса iflan="em1" # интерфейс смотрящий в ЛС netlan="10.4.0.0/22" # nod_net= Локальная сеть Доступ в эту сеть будет проис ходить без авторизации.
# Настройки сети маси и IP адреса ifOut_citi="em0" # внешний интерфейс смотрит на Ситинет
# Настройки сети маси и IP адреса # ifOut_ukr="tun0" # внешний интерфейс Укртелекома
my_out_nets='127.0.0.1' # клиентская реальная сеть, не подлежащая трансляции адресов. # Вы не должны здесь указывать локальную сеть! # Если клиентам не выдаются внешние адреса, укажите 127.0.0.1.
nod_kernel='10.4.1.3' # ip сервера с ядром NoDeny, этому ip разрешим получать статистику о трафике от коллектора ipcad. ipcad_port='1' # этот порт «слушает» ipcad, в него будем направлять трафик подлежащий учету
# Сети, в/из которых трафик блокируем ${f} table 120 flush ${f} table 120 add 224.0.0.0/4 #${f} table 120 add 192.168.0.0/16 ${f} table 120 add 172.16.0.0/12 ${f} table 120 add 194.185.200.0/24 ${f} table 120 add 93.89.101.0/24 ${f} table 120 add 119.254.1.0/24
${f} -f flush
# Tcp-соединения на 445-й порт настолько «вирусны», что этот порт проще закрыть. ${f} add 100 deny tcp from any to any 445
# Разрешаем внутренний трафик ${f} add 110 allow ip from any to any via lo0
# Все пакеты от сервера направляем на правило 1000 ${f} add 120 skipto 1000 ip from me to any
# Запрещаем ${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 ${f} add 140 deny ip from any to "table(120)" ${f} add 150 deny ip from "table(120)" to any
#${f} add 156 deny log ip from any to "table(122)" via stge0 #${f} add 157 deny log ip from "table(124)" to any via stge0
# Разрешаем доступ по SSH ${f} add 160 allow tcp from any to me 50022 ${f} add 161 allow tcp from me 50022 to any
# FTP #ipfw add 162 allow tcp from any to 20,21 #ipfw add 163 allow tcp from 20,21 to any
# Все входящие пакеты отправленые мне отправляем на правило 2000 ${f} add 190 skipto 2000 ip from any to me
# пакеты пришедшие на внешний интерфейс отправляем на правило 500 ${f} add 200 skipto 500 ip from any to any via ${ifOut_citi} #${f} add 210 skipto 500 ip from any to any via ${ifOut_ukr} #${f} add 220 skipto 500 ip from any to any via tun0
# Все ВХОДЯЩИЕ пакеты отправляем на правило 4500 ${f} add 300 skipto 4500 ip from any to any in
# Исходящие пакеты попадают в netflow на ноду 100 Собераем статистику ${f} add 400 ngtee 100 ip from any to any
# Исходящие пакеты направляются на правило 450 #${f} add 401 skipto 450 ip from any to any recv ${ifOut_citi} #${f} add 402 skipto 450 ip from any to any recv ${ifOut_ukr} # Заворачиваем трафик на порт статистики #${f} add 420 divert 1 ip from any to any #${f} add 450 divert 2 ip from any to any # Разрешает прохождение любых пакетов ${f} add 490 allow ip from any to any
####################################################################
${f} add 500 skipto 32500 ip from any to any in #${f} add 510 divert 1 ip from any to any ${f} add 510 ngtee 100 ip from any to any ${f} add 540 allow ip from any to any
# -> Все пакеты от сервера выпускаем без проверок ${f} add 1000 allow udp from any 53,7723 to any ${f} add 1010 allow tcp from any to any setup keep-state ${f} add 1020 allow udp from any to any keep-state ${f} add 1100 allow ip from any to any
# -> Все пакеты пришедшие на сервер ${f} add 2000 check-state ${f} add 2010 allow icmp from any to any ${f} add 2050 allow tcp from any to any 80 ${f} add 2051 allow tcp from any to any 443 ${f} add 2053 allow udp from any to any 53 ${f} add 2061 deny ip from any to any via ${ifOut_siti} ${f} add 2082 allow udp from any to any 53,7723
# запретить любые пакеты. ${f} add 2100 deny ip from any to any # запретить любые пакеты. ${f} add 32490 deny ip from any to any # запретить любые пакеты. ${f} add 65530 deny ip from any to any
/usr/local/nodeny/netflow.txt# cat netflow.txt mkpeer ipfw: netflow 100 iface0 name ipfw:100 netflow msg netflow: setdlt { iface = 0 dlt = 12 } mkpeer netflow: ksocket export inet/dgram/udp msg netflow:export connect inet/127.0.0.1:8888 /usr/local/nodeny/netflow_8888.pl - создался автоматически. # cat netflow_8888.pl #!/usr/bin/perl $lines=`/usr/local/bin/flow-export -f2 -mdoctets,srcaddr,dstaddr,input,output,srcport,dstport,prot < /var/db/flows/$ARGV[0] 2>/dev/null`; $out_int=',1,'; $out=""; foreach $line (split /\n/,$lines) { ($bytes,$src,$dst,$src_if,$dst_if,$src_port,$dst_port,$prot)=split /,/,$line; next if $prot<1; $h="$src\t$dst\t1\t$bytes\t$src_port\t$dst_port\t$prot\t"; $out.=$h."2\n" if $out_int=~/,$src_if,/; $out.=$h."1\n" if $out_int=~/,$dst_if,/; } exit unless open (F,'>/usr/local/nodeny/sql/1-1281267079_temp'); print F $out; close(F); rename '/usr/local/nodeny/sql/1-1281267079_temp','/usr/local/nodeny/sql/1-1281267079'; unlink "/var/db/flows/$ARGV[0]";
/usr/local/etc/rc.d/ngnetflow.sh Как в руководстве cat /usr/local/etc/rc.d/ngnetflow.sh #!/bin/sh . /etc/rc.subr
name="ngnetflow" rcvar=`set_rcvar`
load_rc_config $name : ${ngnetflow_enable="YES"}
start_cmd="ngnetflow_start" stop_cmd="ngnetflow_stop"
ngnetflow_start() {
/usr/sbin/ngctl -f /usr/local/nodeny/netflow.txt
}
ngnetflow_stop() { /usr/sbin/ngctl -f- <<-NODENY shutdown netflow: NODENY }
run_rc_command "$1"
Ядроoptions KVA_PAGES=512 # Увеличение адресного пространства ядра до 2Gb. #options VM_KMEM_SIZE=1073741824 #options VM_KMEM_SIZE_MAX=1073741824
#options MAXPHYS=(1024*1024) # ? #options DFLTPHYS=(128*1024) # ? #device carp # позволяет нескольким компьютерам, находящимся в одной сети, использовать один IP адрес.
options PANIC_REBOOT_WAIT_TIME=16 # В случаае паники ядра перегрузится через 16 секунд options SC_DISABLE_REBOOT # Опция отключает перезагрузку по ctrl-alt-del
# Настройка консоли. options VESA # - для включения расширенного видеорежима: options SC_PIXEL_MODE options VGA_WIDTH90 # - подгоним под себя режим vga options SC_NORM_ATTR=(FG_GREEN|BG_BLACK) # - сделаем обычный вывод зеленый на черном options SC_KERNEL_CONS_ATTR=(FG_YELLOW|BG_BLACK)# - а сообщения ядра желтый на черном
# IPFW options IPFIREWALL # Опции для поддержки фаерволла IPFW. options IPFIREWALL_VERBOSE # - включаем логирование options IPFIREWALL_VERBOSE_LIMIT=100 # - ограничение на размер лога options IPFIREWALL_FORWARD # - включаем опции перенапрвления options IPFIREWALL_DEFAULT_TO_ACCEPT # - По умолчанию пропускать все. options DUMMYNET # - включение поддержки dummynet - искусственная задержка пакетов options IPDIVERT # - дайверт - для поддержки NAT options IPFIREWALL_NAT # - NAT в ядре без использования Дивере options LIBALIAS # - Нужно для работі IPFIREWALL_NAT
# Если нужна поддержка фаерволла PF, раскомментируем опции ниже. #device pf #device pflog # - включаем логирование #device pfsync # - включаем очереди - аналог dummynet #options ALTQ #options ALTQ_CBQ # Class Bases Queuing (CBQ) #options ALTQ_RED # Random Early Detection (RED) #options ALTQ_RIO # RED In/Out #options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) #options ALTQ_PRIQ # Priority Queuing (PRIQ) #options ALTQ_NOPCC # Required for SMP build
#options QUOTA # Поддержка квот файловых систем. Желательно, если будет много юзеров и у каждого свой файлосборник
# IPSec options IPSEC options IPSEC_DEBUG # crypto system device crypto device cryptodev
# Если нужна поддержка NETGRAPH в ядре options NETGRAPH options NETGRAPH_NETFLOW # + для посчета трафика options NETGRAPH_IPFW options NETGRAPH_NAT
# --> MPD options NETGRAPH_SPLIT options NETGRAPH_KSOCKET options NETGRAPH_SOCKET options NETGRAPH_BPF options NETGRAPH_IFACE options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_TCPMSS options NETGRAPH_VJC options NETGRAPH_TEE options NETGRAPH_CAR
options NETGRAPH_ONE2MANY options NETGRAPH_ETHER options NETGRAPH_PPPOE
ifconfig ifconfig em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:15:17:dd:b0:0e inet 109.86.106.179 netmask 0xffffff00 broadcast 109.86.106.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:15:17:dd:b0:0f inet 192.168.5.5 netmask 0xffffff00 broadcast 192.168.5.255 inet 10.4.1.3 netmask 0xfffffc00 broadcast 10.4.3.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC> ether 48:5b:39:43:43:b8 media: Ethernet autoselect (10baseT/UTP <half-duplex>) status: no carrier fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 02:1e:8c:d5:45:a1 ch 1 dma -1 fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 lladdr 0.1e.8c.0.0.d5.45.a1.a.2.ff.fe.0.0.0.0 ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 16:47:38
В папке /var/db/flows всего один файл. скажите так и должно быть? # ls /var/db/flows tmp-v05.2010-08-08.175005+0300
Название: Re: netgraph netflow
Отправлено: stix от 08 Августа 2010, 16:50:16
если все нормально работает - то да flowcapture туда ложит файлы, а ноденай выгребает и парсит
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 17:46:14
Все вроде работает но както неправильно. Ставлю качаться файл, а график загрузки канал этого не отображает. Пишет что загрузка меньше мегабайта.
В файл /usr/local/nodeny/netflow.txt добавил в него строчку: msg netflow: settimeouts { inactive=30 active=600 } но ситуация непоменялась
Поставил на закачку фильм в 18:35 в 18:37 прервал закачку а загрузка канала отобразилась только в 18:43 и вдобавок неправильная.
Подскажите где может быть бок, куда копать?
Название: Re: netgraph netflow
Отправлено: VitalVas от 08 Августа 2010, 18:06:23
а если поставить msg netflow: settimeouts { inactive=20 active=40 }
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 18:41:06
а если поставить msg netflow: settimeouts { inactive=20 active=40 }
ситуация значительно улучшилась но все равно скорость отображается неправильно.
Название: Re: netgraph netflow
Отправлено: Kaylas от 08 Августа 2010, 20:10:09
а если поставить msg netflow: settimeouts { inactive=20 active=40 }
Все таки эта строчка оказалась спасительной. был неправ просматривал график загрузки канала в Мегабайтах, а нажно было Мбайт/сек, переключился и получил адекватный результат. VitalVas лучший +1 :) Чистой воды любопытство как узнал, что нужно прописать именно "inactive=20" и "active=40"? И может есть какие нибудь соображения почему предведущие настройки работали у других и не заработали у меня?
Название: Re: netgraph netflow
Отправлено: VitalVas от 08 Августа 2010, 20:50:02
Чистой воды любопытство как узнал, что нужно прописать именно "inactive=20" и "active=40"? И может есть какие нибудь соображения почему предведущие настройки работали у других и не заработали у меня?
личная практика показала, если "плющит" нетфлов, то иногда так можна решить проблему эта строка снята с работающего сервера
Название: Re: netgraph netflow
Отправлено: cnsh от 05 Октября 2010, 01:56:08
Подскажите есть разница: скомпилировать ядро с netgraph или подгружать модулем? ???
Название: Re: netgraph netflow
Отправлено: VitalVas от 05 Октября 2010, 09:55:06
Подскажите есть разница: скомпилировать ядро с netgraph или подгружать модулем? ???
там практически нет разницы но для надежности лутше вкомпилить в ядро
|