Установка и настройка NetAms
Добавлено: 19 апр 2010, 12:52
Код: Выделить всё
# tar -xvf netams-3.4.1rc1.tar.bz
# cd netams-3.4.1rc1
Код: Выделить всё
# ee configure.sh
Код: Выделить всё
#!/bin/sh
# Configuration script for NeTAMS project
# $Id: configure.sh,v 1.58 2008-02-23 08:35:05 anton Exp $
##########################################################
PATH=/usr/local/sbin:/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin
export PATH
makefile=Rules.make
##########################################################
paths="/usr/lib /usr/local/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql4/lib/mysql
/usr/local/include/mysql /usr/local/include /usr/include /usr/include/mysql /usr/local/mysql4/include/mysql
/opt/csw/include /usr/pkg/include/mysql /usr/pkg/lib/mysql $ORACLE_HOME/lib32 $ORACLE_HOME/lib /usr/include/libipq
/usr/pkg/include /usr/pkg/lib /usr/lib64/mysql /usr/lib64 /usr/include/postgresql "
locate_file(){
for val in $paths; do
to_test="$val/$1"
#echo " try: $to_test"
if [ -f $to_test ]; then
var=$val
return
fi
done
var=""
}
##########################################################
warn_on_mysql3xx(){
if [ -f "$v1/libmysqlclient.so.10" ]; then
echo "!!! Looks like you have MYSQL=3.xx which is NOT supported !!!"
echo "!!! I will continue making but ensure you have 4.XX or above !!!"
fi
}
##########################################################
llu_to_qu_patch(){
cp src/st_sql_mysql.c src/st_sql_mysql.c.orig
sed -e "s/llu/qu/g" src/st_sql_mysql.c.orig > src/st_sql_mysql.c
cp src/st_sql_postgres.c src/st_sql_postgres.c.orig
sed -e "s/llu/qu/g" src/st_sql_postgres.c.orig > src/st_sql_postgres.c
cp src/st_hash.c src/st_hash.c.orig
sed -e "s/llu/qu/g" src/st_hash.c.orig > src/st_hash.c
}
##########################################################
prepare_for_freebsd() {
echo "FreeBSD operating system..."
echo "DEFINE += -DFREEBSD" >> $makefile
echo "LIB += -lpcap -lcrypt -pthread -lnetgraph" >> $makefile
echo "INSTALL = /usr/bin/install" >> $makefile
# paths
echo "PATH_TO_ETC=/usr/local/etc" >> $makefile
echo "PATH_TO_WWW=/usr/local/www/netams" >> $makefile
echo "PATH_TO_CONFIG=/usr/local/etc" >> $makefile
echo "PATH_TO_LOG=/var/log/netams.log" >> $makefile
echo "PATH_TO_SCRIPTS=/usr/local/etc/rc.d" >> $makefile
echo "DAEMONDIR=/usr/local/libexec" >> $makefile
echo "SBINDIR=/usr/local/sbin" >> $makefile
echo "MANDIR=/usr/local/man" >> $makefile
echo "STARTUP_SCRIPT=netams-startup-freebsd6.sh" >> $makefile
#check for FreeBSD-4.xx and patch
var=`uname -r | cut -b 1`
if [ $var -lt 5 ]; then
echo "With FreeBSD 4 patch the sources..."
llu_to_qu_patch
else
echo "With FreeBSD 5 and above will have netgraph module..."
echo "FREEBSD_KMOD = ng_netams.ko" >> $makefile
echo "FREEBSD_KMOD_CLEAN = clean_ng_netams.ko" >> $makefile
fi
echo "PROG += flowprobe ipfw2netflow" >> $makefile
}
##########################################################
prepare_for_netbsd() {
echo "NetBSD operating system..."
echo "DEFINE += -DNETBSD" >> $makefile
echo "LIB += -lpcap -lcrypt -pthread " >> $makefile
echo "INSTALL = /usr/bin/install" >> $makefile
# paths
echo "PATH_TO_ETC=/usr/pkg/etc" >> $makefile
echo "PATH_TO_WWW=/usr/local/www/netams" >> $makefile
echo "PATH_TO_CONFIG=/usr/pkg/etc" >> $makefile
echo "PATH_TO_LOG=/var/log/netams.log" >> $makefile
echo "PATH_TO_SCRIPTS=/usr/pkg/etc/rc.d" >> $makefile
echo "DAEMONDIR=/usr/pkg/libexec" >> $makefile
echo "SBINDIR=/usr/pkg/sbin" >> $makefile
echo "MANDIR=/usr/pkg/man" >> $makefile
echo "STARTUP_SCRIPT=netams-startup.sh" >> $makefile
llu_to_qu_patch
echo "PROG += flowprobe" >> $makefile
}
##########################################################
prepare_for_openbsd() {
echo "OpenBSD operating system..."
echo "DEFINE += -DOPENBSD" >> $makefile
echo "LIB += -lpcap -pthread" >> $makefile
echo "INSTALL = /usr/bin/install" >> $makefile
# paths
echo "PATH_TO_ETC=/usr/local/etc" >> $makefile
echo "PATH_TO_WWW=/usr/local/www/netams" >> $makefile
echo "PATH_TO_CONFIG=/usr/local/etc" >> $makefile
echo "PATH_TO_LOG=/var/log/netams.log" >> $makefile
echo "PATH_TO_SCRIPTS=/usr/local/etc/rc.d" >> $makefile
echo "DAEMONDIR=/usr/local/libexec" >> $makefile
echo "SBINDIR=/usr/local/sbin" >> $makefile
echo "MANDIR=/usr/local/man" >> $makefile
echo "STARTUP_SCRIPT=netams-startup.sh" >> $makefile
echo "PROG += flowprobe" >> $makefile
}
##########################################################
prepare_for_linux() {
echo "Linux operating system..."
echo "DEFINE += -DLINUX -D_BSD_SOURCE -I/usr/include/pcap -I/usr/libipq -I../lib/libipulog/include" >> $makefile
echo "LIB += -pthread -lpcap -lcrypt " >> $makefile
echo "INSTALL = /usr/bin/install" >> $makefile
#paths
echo "PATH_TO_ETC=/etc" >> $makefile
echo "PATH_TO_WWW=/var/www/netams" >> $makefile
echo "PATH_TO_CONFIG=/etc" >> $makefile
echo "PATH_TO_LOG=/var/log/netams.log" >> $makefile
echo "PATH_TO_SCRIPTS=/etc/init.d" >> $makefile
echo "DAEMONDIR=/usr/local/sbin" >> $makefile
echo "SBINDIR=/usr/local/sbin" >> $makefile
echo "MANDIR=/usr/local/man" >> $makefile
echo "STARTUP_SCRIPT=netams-startup.sh" >> $makefile
#ipq
locate_file "libipq.a" && v1=$var && locate_file "libipq.h" && v2=$var
if [ "X$v1" != "X" -a "X$v2" != "X" ]; then
echo "Will have LIBIPQ support"
ipv=`iptables -V`
ipvn=`echo $ipv | sed -e "s/iptables v1.2.//g" -e "s/iptables v1.3./3/g" -e "s/[a-z]//g "`
if [ $ipvn -lt 5 ]; then
echo " LIBIPQ is <=1.2.4 (yours is .$ipvn)"
echo "DEFINE += -DIPTBL_OLD" >> $makefile
fi
echo "LIB += -lipq -L$v1 -lipulog" >> $makefile
echo "DEFINE += -I$v2" >> $makefile
echo "NLIB += libipulog" >> $makefile
echo "PROG += ulog2netflow" >> $makefile
else
echo "No LIBIPQ support - install \"iptables-devel\" if needed"
echo "DEFINE += -DIPTBL_NONE" >> $makefile
fi
echo "PROG += flowprobe" >> $makefile
}
##########################################################
prepare_for_solaris() {
echo "Solaris operating system..."
#paths
echo "PATH_TO_ETC=/etc" >> $makefile
echo "PATH_TO_WWW=/opt/www/netams" >> $makefile
echo "PATH_TO_CONFIG=/etc" >> $makefile
echo "PATH_TO_LOG=/var/log/netams.log" >> $makefile
echo "PATH_TO_SCRIPTS=/etc/init.d" >> $makefile
echo "DAEMONDIR=/usr/local/sbin" >> $makefile
echo "SBINDIR=/usr/local/sbin" >> $makefile
echo "MANDIR=/usr/local/man" >> $makefile
echo "INSTALL = /usr/sbin/install" >> $makefile
echo "DEFINE += -DSOLARIS" >>$makefile
echo "LIB += -R/usr/local/lib -lnsl -lsocket -lresolv -lpthread" >> $makefile
echo "SYSLIB += -lnsl -lsocket -lresolv" >> $makefile
#LIBPCAP support
if [ -f /usr/local/lib/libpcap.so -a -f /opt/csw/include/pcap.h ]; then
echo "LIB += -L/opt/csw/lib -lpcap" >> $makefile
echo "DEFINE += -I/opt/csw/include" >> $makefile
echo "PROG += flowprobe" >> $makefile
else
echo "NO libPCAP"
echo "DEFINE += -DNOPCAP" >> $makefile
fi
}
##########################################################
add_common() {
# mysql
locate_file "libmysqlclient.so" && v1=$var && locate_file "mysql.h" && v2=$var
if [ "X$v1" != "X" -a "X$v2" != "X" ]; then
echo "Will have MYSQL support"
echo " [ $v1 $v2 ]"
warn_on_mysql3xx
echo "DEFINE += -DUSE_MYSQL -I$v2" >> $makefile
echo "LIB += -lmysqlclient -L$v1" >> $makefile
fi
#postgres
locate_file "libpq.so" && v1=$var && locate_file "libpq-fe.h" && v2=$var
if [ "X$v1" != "X" -a "X$v2" != "X" ]; then
echo "Will have POSTGRESQL support"
echo " [ $v1 $v2 ]"
echo "DEFINE += -DUSE_POSTGRES -I$v2" >> $makefile
echo "LIB += -lpq -L$v1" >> $makefile
fi
# oracle
# XXX Should check for oci.h presence.
# Oracle moves oci.h around the world, this
# is include paths for 8i/9i. YMMV.
locate_file "libclntsh.so" && v1=$var
if [ "X$v1" != "X" ]; then
use_oracle=`echo $CONFIGURE_ARGS | awk " /--no-oracle/ { print $1 } " | wc -l`
if [ $use_oracle -eq 0 ]; then
echo "Will have ORACLE support"
echo " [ $v1 ]"
echo "DEFINE += -DUSE_ORACLE -I$ORACLE_HOME/rdbms/demo -I$ORACLE_HOME/rdbms/public" >> $makefile
echo "LIB += -L$v1 -R$v1 -lclntsh" >> $makefile
echo "( if you are building MySQL or PostgreSQL version on the "
echo " same computer where Oracle is installed, clean and "
echo " invoke this with \"CONFIGURE_ARGS=--no-oracle\" option ) "
fi
fi
#service billing
if [ -f src/billing.c -o -f src/billing.o ]; then
echo "Will have BILLING service"
echo "DEFINE += -DHAVE_BILLING" >> $makefile
echo "SRC += billing.c s_billing.c" >> $makefile
echo "HEADERFILES += billing.h" >> $makefile
fi
#debug (on by default)
if [ ! "x$1" = "x-nodebug" ]; then
echo "Will have DEBUG flag set"
echo "DEFINE += -DDEBUG" >> $makefile
echo "FLAGS += -g -Wall" >> $makefile
fi
#memory debug (off by default)
if [ "x$1" = "x-memory" ]; then
echo "Will have MEMORY DEBUGGING"
echo "DEFINE += -DMEMORY_DEBUG" >> $makefile
fi
#radius
locate_file "openssl/md5.h" && v1=$var
if [ "X$v1" != "X" ]; then
echo "Will have RADIUS support"
echo "DEFINE += -DUSE_LIBRADIUS" >> $makefile
echo "NLIB += libradius" >> $makefile
echo "LIB += -lradius" >> $makefile
else
echo "No RADIUS support - install \"openssl-devel\" (md5.h)"
fi
#PAM
locate_file "security/pam_appl.h" && v1=$var && locate_file "libpam.so" && v2=$var
if [ "X$v1" != "X" -a "X$v2" != "X" ]; then
echo "Will have PAM support (experimental)"
echo "DEFINE += -DHAVE_PAM" >> $makefile
echo "LIB += -lpam -L$v2" >> $makefile
echo "PROG += pam_netams.so" >> $makefile
fi
echo "## Configuration file was built. ##"
echo "##########################################################"
}
#check if file exist
if [ -s $makefile ] ; then exit; fi
##########################################################
echo "##########################################################"
echo "## Configuring NeTAMS for build targets... ##"
#header
rm -f $makefile
echo "#/*************************************************************************" > $makefile
echo "#*** Authentication, authorization, accounting + firewalling package" >> $makefile
echo "#*** Copyright 1998-2002 Anton Vinokurov <anton@netams.com>" >> $makefile
echo "#*** Copyright 2002-2008 NeTAMS Development Team" >> $makefile
echo "#*** This code is GPL v3" >> $makefile
echo "#*** For latest version and more info, visit this project web page" >> $makefile
echo "#*** located at http://www.netams.com" >> $makefile
echo "#*** " >> $makefile
echo "#*************************************************************************/" >> $makefile
echo "# This is automatically generated Makefile for NeTAMS" >> $makefile
echo "# Created `date`" >> $makefile
echo >> $makefile
echo "PROG += netamsctl ascii2netflow" >> $makefile
echo "CONFIG_FILE_NAME = netams.conf" >>$makefile
system=`uname`
if [ $system = "FreeBSD" ]; then
prepare_for_freebsd
fi
if [ $system = "OpenBSD" ]; then
prepare_for_openbsd
fi
if [ $system = "NetBSD" ]; then
prepare_for_netbsd
fi
if [ $system = "Linux" ]; then
prepare_for_linux
fi
if [ $system = "Solaris" -o $system = "SunOS" ]; then
prepare_for_solaris
fi
echo "#Optional params - uncomment if needed" >> $makefile
echo -n "Optional features: "
echo -n "BW_limit " && echo "DEFINE += -DHAVE_BW" >> $makefile
#echo -n "Memory_debug " && echo "DEFINE += -DMEMORY_DEBUG" >> $makefile
#echo -n "Mutex_debug " && echo "DEFINE += -DMUTEX_DEBUG" >> $makefile
#echo -n "Timer_ticks " && echo "DEFINE += -DUSE_TICKS" >> $makefile
echo -n "Fast_FW_checks " && echo "DEFINE += -DFAST_FW_CHECK" >> $makefile
echo -n "Layer7_filter " && echo "DEFINE += -DLAYER7_FILTER" >> $makefile
#echo -n "Hash_database " && echo "DEFINE += -DUSE_HASH" >> $makefile
echo " "
add_common $1 $2
Код: Выделить всё
echo "PATH_TO_WWW=/usr/local/www/netams" >> $makefile
создадим в корне моей директории веб-сервера папку stat
Код: Выделить всё
# mkdir /usr/local/www/apache22/stat
Код: Выделить всё
echo "PATH_TO_WWW=/usr/local/www/apache22/stat" >> $makefile
Код: Выделить всё
# ./configure.sh
Код: Выделить всё
#*************************************************************************
#*** Authentication, authorization, accounting + firewalling package
#*** Copyright 1998-2002 Anton Vinokurov <anton@netams.com>
#*** Copyright 2002-2008 NeTAMS Development Team
#*** This code is GPL v3
#*** For latest version and more info, visit this project web page
#*** located at http://www.netams.com
#***
#*************************************************************************/
#/* $Id: Makefile,v 1.98 2009-08-01 09:23:54 anton Exp $ */
RELEASE=3.4.3
include Rules.make
#Optional for profiler support
#LIB += -pg -static -lssl -lm -lintl -lz -liconv
#FLAGS += -pg
#
all: config lib
cd src && make all
config:
sh configure.sh
distclean: clean
rm Rules.make; touch Rules.make; rm -rf *.[0-9] ;
lib: config
cd lib && make library
clean:
cd lib && make cleanlibrary
cd src && make clean
webinstall:
$(INSTALL) -d -m 755 $(PATH_TO_WWW)/cgi-bin/admin $(PATH_TO_WWW)/stat $(PATH_TO_WWW)/images
$(INSTALL) -m 755 cgi-bin/*.cgi cgi-bin/*.pl cgi-bin/*.tmpl cgi-bin/*.res $(PATH_TO_WWW)/cgi-bin
$(INSTALL) -m 755 cgi-bin/admin/*.cgi cgi-bin/admin/*.tmpl cgi-bin/admin/*.res $(PATH_TO_WWW)/cgi-bin/admin
$(INSTALL) -m 644 cgi-bin/admin/.htaccess $(PATH_TO_WWW)/cgi-bin/admin
$(INSTALL) -m 644 cgi-bin/images/*.gif cgi-bin/images/*.jpg $(PATH_TO_WWW)/images
$(INSTALL) -m 644 addon/index.html $(PATH_TO_WWW)
$(INSTALL) -m 644 addon/netams-apache $(PATH_TO_ETC)apache2/sites-available/netams
ln -fs $(PATH_TO_ETC)/apache2/sites-available/netams $(PATH_TO_ETC)/apache2/sites-enabled/010-netams
install: all webinstall
$(INSTALL) src/netams $(DAEMONDIR)
cd src ; $(INSTALL) $(PROG) $(SBINDIR) ; cd ..
$(INSTALL) -d -m 644 $(MANDIR)/man8
$(INSTALL) -m 644 doc/*.8 $(MANDIR)/man8
sed -e "s#PATH_TO_WWW#$(PATH_TO_WWW)#g" addon/netams.conf > /tmp/netams.conf
$(INSTALL) -m 644 /tmp/netams.conf $(PATH_TO_ETC)/netams.conf.sample
rm -f /tmp/netams.conf
$(INSTALL) -m 644 addon/.netamsctl.rc $(PATH_TO_ETC)/.netamsctl.rc
$(INSTALL) -m 644 addon/ru-networks.txt $(PATH_TO_ETC)/ru-networks.txt.sample
sed -e "s#DAEMONDIR#$(DAEMONDIR)#g" -e "s#PATH_TO_ETC#$(PATH_TO_ETC)#g" addon/$(STARTUP_SCRIPT) > /tmp/netams-startup.sh
$(INSTALL) -m 755 /tmp/netams-startup.sh $(PATH_TO_SCRIPTS)/netams.sh
rm -f /tmp/netams-startup.sh
@echo
@echo
@echo NeTAMS is now installed.
@echo
@echo Sample configuration file is $(PATH_TO_ETC)/netams.conf.sample
@echo Edit, rename it and check startup at $(PATH_TO_SCRIPTS)/netams.sh
@echo
@echo Web interface and CGI scripts are in $(PATH_TO_WWW)
@echo Apache Web Server configuration file is at $(PATH_TO_ETC)/apache2/sites-available/netams
@echo
@echo "PLEASE READ THE DOCUMENTATION!"
@echo "http://www.netams.com"
@echo
distrib:
rm -rf TEMP; mkdir TEMP; mkdir TEMP/netams-$(RELEASE)
cp -Rp src doc lib cgi-bin Makefile GPL configure.sh Rules.make INSTALL addon TEMP/netams-$(RELEASE)
cd TEMP ; find . -type f -exec dos2unix -p {} \;
cp -Rp cgi-bin/images TEMP/netams-$(RELEASE)/cgi-bin
cd TEMP ; tar -z -c -v --exclude *CVS* --exclude *.o --exclude *.bak --exclude *~ \
--exclude .cvs* -f ../netams-$(RELEASE).tar.gz netams-$(RELEASE)
rm -rf TEMP
Код: Выделить всё
$(INSTALL) -m 644 addon/netams-apache $(PATH_TO_ETC)apache2/sites-available/netams
ln -fs $(PATH_TO_ETC)/apache2/sites-available/netams $(PATH_TO_ETC)/apache2/sites-enabled/010-netams
Код: Выделить всё
# ls /usr/local/etc/ | grep apache
apache22
Код: Выделить всё
# ls /usr/local/etc/apache22
envars.d httpd.conf magic Includes
extra mime.types
Код: Выделить всё
$(INSTALL) -m 644 addon/netams-apache $(PATH_TO_ETC)/apache22/extra/netams
ln -fs $(PATH_TO_ETC)/apache22/extra/netams $(PATH_TO_ETC)/apache22/Includes/010-netams.conf
Итак, все готово, можем компилировать
Код: Выделить всё
# make && make install
Далее подготовим MySQL для правильной работы с NetAms.
Создаем базу в которой будет копошиться NetAms
Код: Выделить всё
# mysql –u root –p
Enter password:
mysql> create database netams;
mysql> connect netams;
Код: Выделить всё
mysql> grant SELECT,INSERT,DELETE,UPDATE,CREATE on netams.* to netams
mysql> grant SELECT,INSERT,DELETE,UPDATE,CREATE on netams.* to netams@localhost;
Код: Выделить всё
mysql> connect mysql;
mysql> set password for 'netams'@'localhost'=password('pass_for_netams');
mysql> set password for 'netams'@'%'=password('pass_for_netams');
Код: Выделить всё
mysql> flush privileges;
mysql> exit
Код: Выделить всё
# cp /usr/local/etc/netams.conf.sample /usr/local/etc/netams.conf
Вот исходный конфиг:
Код: Выделить всё
#NeTAMS version 3.4.1 (template config)
#begin
#global variables configuration
debug none
user name admin real-name Admin password aaa email root@localhost permit all
#services configuration
service server 0
login local
listen 20001
max-conn 6
service processor 0
lookup-delay 60
flow-lifetime 180
policy name ip target proto ip
policy name www target proto tcp ports 80 81 8080 3128
policy name mail target proto tcp ports 25 110
restrict all pass local pass
unit group name CLIENTS acct-policy ip www mail
unit host name server ip 192.168.0.1 acct-policy ip www mail
unit user name client1 ip 192.168.0.10 parent CLIENTS email client1@domain.ru acct-policy ip www mail
unit net name LAN ip 192.168.0.0/24 acct-policy ip www mail
storage 1 all
service storage 1
type mysql
service data-source 1
type libpcap
source eth0
rule 11 "ip"
service quota 0
policy ip
notify soft {owner}
notify hard {owner} admin
notify return {owner}
storage 1
service alerter 0
report oid 06100 name rep1 type traffic period day detail simple
smtp-server localhost
service html 0
path PATH_TO_WWW/stat
run 10min
htaccess yes
client-pages all
url http://192.168.0.1/netams/
language ru
service scheduler
oid 08FFFF time 10min action "html"
# $Id: netams.conf,v 1.1 2008-01-03 12:44:53 anton Exp $
#end
Как видите, далеко не идеален. Будем выпрямлять, для чего мне придется обьяснить значения некоторых директив этого конфига. Разберем файл построчно. Обращаю внимание, что в пределах одного сервиса пустые строки недопустимы. Дело в том, что с точки зрения NeTAMS после пустой строки должно идти начало нового сервиса, и в случае обнаружения пустой строки, за которой не идет определение сервиса, NeTAMS будет аварийно завершать работу. Строка debug none отключает вывод отладочной информации. Следующая строка определяет пользователя:
• user name admin – логин;
• real-name Admin – реальное имя;
• email root@localhost – email;
• password aaa – пароль (незашифрованный);
• permit all – разрешено все.
Следующая строка начинает описание сервиса server. Этот сервис обеспечивает возможность подключения к работающей программе с помощью telnet:
• service server 0 – начало описания сервиса. Каждый сервис должен иметь номер. Это нужно для того, чтобы можно было описать несколько одинаковых сервисов. Например, несколько сервисов storage, которые будут хранить разную информацию в разных БД.
• login any – пустить всех.
• listen 20001 – слушать tcp-порт 20001.
• max-conn 6 – максимальное число одновременных подключений.
• service processor 0 – ядро системы, в нем определяются объекты, по которым будет идти учет.
• policy acct name all-ip target ip – определяет политику, по которой будет производиться подсчет трафика, в данном случае политика с именем all-ip (параметр name) будет считать весь IP-трафик. Параметр target может принимать следующие значения:
• ip – весь IP-трафик;
• icmp – весь icmp-трафик;
• tcp – весь tcp-трафик;
• udp – весь udp-трафик;
• tcp-http – весь tcp-трафик, входящий или исходящий, порты которого 80, 808, 8080, 3128, 442;
• tcp-ports – весь tcp-трафик на указанные порты;
• udp-ports весь udp-трафик на указанные порты.
• unit host name client1 ip 192.168.0.10 parent CLIENTS email client1@domain.ru – определяет объект, для которого будет производиться подсчет трафика. В данном случае объект host с именем client1, IP-адресом 192.168.0.10 (внешний адрес маршрутизатора) и определенной выше политикой all-ip.
Таким образом, с помощью этого правила мы считаем весь IP-трафик, поступающий из Интернета на наш маршрутизатор.
• storage 1 all – передает все данные сервису storage 1.
• service storage 1 – сервис, определяющий тип и параметры доступа к БД, в которой будет сохраняться статистика.
• service data-source 1 – обеспечивает поступление данных о трафике внутрь программы. В данном случае определен источник данных
• service html 1 – организует автоматическое периодическое создание статических html-страниц, содержащих информацию о прошедшем трафике. Периодичность создания задается параметром run, в данном случае она равна 10 минутам.
В первую очередь меняем пароль на необходимый нам
Код: Выделить всё
password aaa
Код: Выделить всё
password 1q2w3e
Код: Выделить всё
service storage 1
type mysql
Код: Выделить всё
host localhost
user netams
password pass_for_netams
accept all
Код: Выделить всё
service data-source 1
type ip-traffic
source divert 199
layer7-detect urls
Приведу часть своего конфига IPFW:
Код: Выделить всё
${IPFW} add divert 199 ip from ${LAN}/${LAN_MSK} to any out via ${EXT}
${IPFW} add divert natd ip from ${LAN}/${LAN_MSK} to any out via ${EXT}
${IPFW} add divert natd ip from any to ${EXT_IP} in via ${EXT}
${IPFW} add divert 199 ip from any to ${EXT_IP} in via ${EXT}
Последняя секция достойная нашего внимания в конфиге - секция service html. Отредактируем ее:
Код: Выделить всё
service html 0
path /usr/local/www/apache22/stat/stat
run 10min
htaccess yes
client-pages all
url http://stat.svyaznoy.kg:8088/
language ru