Полный конфигурационный файл приведен здесь.
Предполагается, что UDP–пакеты NetFlow идут с маршрутизатора, имеющего IP–адрес 192.168.1.1, и поступают на локальный UDP–порт номер 20001 (его и слушает NeTAMS).
ВАЖНО!
По определению, NetFlow учитывает только входящий на роутер трафик. Это вызывает проблемы учета при использовании трансляции адресов. Действительно, пакеты от машин внутренней сети приходят на роутер и учитываются верно, но обратные ответы извне поступают с адресом dst внешнего интерфейса. Поскольку трансляция адресов происходит после учета, то статистика всего входящего трафика будет содержать сумму всего трафика, пришедшего на адрес внешнего интерфейса, и нули для адресов внутренней локальной сети. Для корректного учета, вам необходимо использовать policy routing. Установленная на роутере операционная система должна поддерживать эту функцию. Вот пример конфигурации для Cisco 2514:
ip cef
!
interface Loopback0
ip address 192.168.10.1 255.255.255.0
ip route–cache policy
ip route–cache flow
!
interface Ethernet0
ip address 195.200.200.1 255.255.255.0
ip nat outside
ip route–cache policy
ip route–cache flow
ip policy route–map MAP
!
interface Ethernet1
ip address 192.168.1.1 255.255.255.0
ip nat inside
ip route–cache policy
ip route–cache flow
!
ip nat inside source list 1 interface Ethernet0 overload
ip classless
ip flow–export version 5
ip flow–export destination 192.168.1.254 20001
!
access–list 1 permit 192.168.1.0 0.0.0.255
access–list 101 permit ip any 192.168.1.0 0.0.0.255
route–map MAP permit 10
match ip address 101
set interface Loopback0
При использовании заруливания трафика через раутмап на CPU (loopback) Cisco довольно сильно грузиться CPU, что может существенно занизить производительность устройства начиная с IOS 12.3x в IOS добавились фичи позволяющие избавиться от ненужной нагрузки на CPU маршрутизатора.
Называется фича: Egress NetFlow Accounting
NeTAMS на PC–маршрутизаторе
В большинстве случаев схема подключения PC–роутера к сети следующая: в компьютере имеются две сетевые карты, одна из них ведет в локальную сеть офиса или домашней сети, другая к провайдеру Интернет. Между сетевыми интерфейсами настроена маршрутизация и (возможно) трансляция адресов. Необходимо учитывать трафик пользователей, и при необходимости блокировать некоторым из них доступ во внешнюю сеть.
Оставим процедуру установки и настройки операционной системы, MySQL, Apache, маршрутизацию, трансляцию адресов и прочее на совести администратора. Будем считать, что все (кроме учета трафика) уже работает. Программа NeTAMS скачана, скомпилирована, исполняемые файлы переписаны куда надо, но конфигурационного файла еще нет.
Допустим, что внутренний адрес интерфейса eth1 сервера 192.168.0.1, сетевая маска 255.255.255.0. Компьютеры внутренней сети могут иметь адреса с 192.168.0.2 по 192.168.0.254, в то время как реально пока установлены только три компьютера с адресами .10, .11 и .12.
Необходимо считать общий трафик, трафик только до российских сетей, и весь HTTP–трафик.
Конфигурационный файл /etc/netams.cfg выглядит следующим образом:
debug none
user name admin real–name Vasya_Pupkin
password aaa email root permit all
schedule time daily action «send report
to admin on LAN on NETWORK+»
service server 0
login local
listen 20001
max–conn 6
service processor 0
lookup–delay 20
flow–lifetime 120
policy name ip target proto ip
policy name www target proto tcp ports 80
policy name rus target file /etc/ru–networks.txt
restrict all drop local pass
unit group name NETWORK acct–policy ip tcp !rus
unit net name LAN ip 192.168.0.0 mask 255.255.255.0
no–local–pass acct–policy ip tcp !rus
unit host name server ip 192.168.0.1 parent NETWORK
acct–policy ip tcp !rus
unit user name petya ip 192.168.0.10 parent NETWORK password abc
acct–policy ip tcp !rus
unit user name fedya ip 192.168.0.11 parent NETWORK password def
acct–policy ip tcp !rus
unit user name masha ip 192.168.0.12 parent NETWORK password ghi
acct–policy ip tcp !rus
storage 1 all
service storage 1
type mysql
service data–source 1
type libpcap
source eth1