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
rule 11 "ip"
service alerter 0
report oid 06100 name rep1 type traffic period day detail simple
smtp-server 127.0.0.1
service html 0
path /var/www/traffic
language en
run 5min
htaccess yes
client-pages all
Ïîëåçíî ðàçîáðàòü âåñü êîíôèãóðàöèîííûé ôàéë ïî ñòðî÷êàì.
1 debug none
2 user name admin real-name Vasya_Pupkin password
aaa email root permit all
3 schedule time daily action "send report to admin on LAN on NETWORK+"
Ýòèìè êîìàíäàìè íàñòðàèâàåòñÿ ñåðâèñ main, ïðè÷åì ÿâíî ïèñàòü "service main" íå íóæíî. Âíà÷àëå îòêëþ÷àåòñÿ âûâîä âñåé îòëàäî÷íîé èíôîðìàöèè - ýòî íóæíî äëÿ óìåíüøåíèÿ ðàçìåðà ëîã-ôàéëà. Äàëåå, çàâîäèòñÿ ïîëüçîâàòåëü ñèñòåìû NeTAMS, èìåþùèé â íåé àäìèíèñòðàòèâíûå ïðàâà (permit all). Óêàçàííûé ïàðîëü "aaa" ïîòîì áóäåò õðàíèòüñÿ â çàøèôðîâàííîì âèäå. Íà àäðåñ "root" áóäóò îòñûëàòüñÿ óâåäîìëåíèÿ î òðàôèêå. Òðåòüåé ñòðîêîé ïëàíèðóåòñÿ îòñûëêà åæåäíåâíûõ óâåäîìëåíèé î òðàôèêå ïîëüçîâàòåëþ admin íà àäðåñ root@, ïî þíèòàì LAN è NETWORK (âìåñòå ñî âñåìè âõîäÿùèìè â ãðóïïó þíèòàìè).
Ïóñòàÿ ñòðîêà çà íîìåðîì 4 îòäåëÿåò íàñòðîéêè ðàçíûõ ñåðâèñîâ (â äàííîì ñëó÷àå main è server)
5 service server 0
6 login local
7 listen 20001
8 max-conn 6
Ýòèìè êîìàíäàìè íàñòðàèâàåòñÿ ñåðâèñ server, êîòîðûé îáåñïå÷èâàåò ïîäêëþ÷åíèå àäìèíèñòðàòîðà è ñêðèïòîâ ê ðàáîòàþùåìó ýêçåìïëÿðó NeTAMS ïî ïðîòîêîëó telnet. Âõîäÿùèå ñîåäèíåíèÿ ïðèíèìàþòñÿ òîëüêî íà ëîêàëüíûé àäðåñ 127.0.0.1, ïîðò 20001, è âîçìîæíî íå áîëåå øåñòè îäíîâðåìåííûõ ñîåäèíåíèé. Ñîãëàñíî ïðåäûäóùèì ñòðîêàì, ïîäêëþ÷èòüñÿ ñìîæåò òîëüêî îäèí ïîëüçîâàòåëü ñ ëîãèíîì "admin" è ïàðîëåì "aaa" - äðóãèõ ïðîñòî íåò.
9
Ïóñòàÿ ñòðîêà, îòäåëÿåò êîìàíäû ñåðâèñîâ server è processor äðóã îò äðóãà.
10 service processor 0
11 lookup-delay 20
12 flow-lifetime 120
13 policy name ip target proto ip
14 policy name www target proto tcp ports 80
15 policy name rus target file /etc/ru-networks.txt
16 restrict all drop local pass
Íàñòðàèâàåòñÿ ãëàâíûé ñåðâèñ - processor.  ñòðîêàõ 10 è 11 çàäàþòñÿ ïàðàìåòðû, êàê ÷àñòî áóäåò ïðîâåðÿòüñÿ ñïèñêè þíèòîâ è îòêëàäûâàòüñÿ çàïèñè â áàçó äàííûõ. Äëÿ áîëüøèíñòâà çàäà÷ óêàçàííûå çíà÷åíèÿ ïàðàìåòðîâ îïòèìàëüíû. Òðè ñëåäóþùèå ñòðîêè çàäàþò ïîëèòèêè, ïî êîòîðûì áóäåò èäòè ó÷åò òðàôèêà. Ïîëèòèêà "ip" çàäàåò âåñü IP-òðàôèê, "www" - òîëüêî òîò, êîòîðûé èäåò ïî ïîðòó TCP 80, "rus" - òîò, êîòîðûé ïîëó÷àåòñÿ ïðè ñîâïàäåíèè àäðåñîâ ñ òàáëèöåé ðóññêèõ ñåòåé, ñîäåðæàùåéñÿ â ôàéëå ïðåôèêñîâ /etc/ru-networks.txt. Èçíà÷àëüíî ýòîò ôàéë èäåò â äèñòðèáóòèâå NeTAMS, â êàòàëîãå addon/. Ïîñëåäíÿÿ, 16-àÿ ñòðîêà îïðåäåëÿåò, êàê ïîñòóïàòü ñ ïàêåòàìè, êîòîðûå ïðîøëè ÷åðåç ó÷åò ïî ñïèñêó þíèòîâ è ñîâïàëè (èëè íå ñîâïàëè) ñ êàêèì-ëèáî þíèòîì. Óêàçàííàÿ êîíôèãóðàöèÿ ïðîïóñêàåò ïàêåòû, êîòîðûå ïðèíàäëåæàò èìåþùèìñÿ â êîíôèãóðàöèîííîì ôàéëå þíèòàì, è íå ïðîïóñêàåò îñòàëüíûå. Ïîëåçíî èñïîëüçîâàòü èìåííî óêàçàííîå ñî÷åòàíèå, ò.ê. ýòî ïîìîæåò íå ïóñêàòü â ñåòü "íåçàêîííûå" êîìïüþòåðû.
17 unit group name NETWORK acct-policy ip tcp !rus
18 unit net name LAN ip 192.168.0.0 mask 255.255.255.0
no-local-pass acct-policy ip tcp !rus
19 unit host name server ip 192.168.0.1 parent NETWORK
acct-policy ip tcp !rus
20 unit user name petya ip 192.168.0.10 parent NETWORK
password abc acct-policy ip tcp !rus
21 unit user name fedya ip 192.168.0.11 parent NETWORK
password def acct-policy ip tcp !rus
22 unit user name masha ip 192.168.0.12 parent NETWORK
password ghi acct-policy ip tcp !rus
Çäåñü îïðåäåëÿþòñÿ þíèòû, èëè ó÷¸òíûå îáúåêòû.  íà÷àëå ñîçäàåòñÿ ãðóïïà, êîòîðàÿ áóäåò ðîäèòåëüñêîé ïî îòíîøåíèþ ê âêëþ÷åííûì â íåå þíèòàì. Çàòåì ñëåäóåò þíèò, îáîçíà÷àþùèé âñþ ïîäñåòü. Äàëåå, èäóò þíèòû, ïðåäñòàâëÿþùèå îòäåëüíûå êîìïüþòåðû. Äëÿ êàæäîãî þíèòà óêàçàí îäèíàêîâûé íàáîð ïîëèòèê ó÷åòà, îáðàòèòå âíèìàíèå íà ôëàã inverse, â âèäå çíàêà "!", äëÿ ïîëèòèêè "rus". Äëÿ þíèòà LAN óêàçàí òàêæå ïàðàìåòð no-local-pass, êîòîðûé çàñòàâëÿåò ñ÷èòàòü íå-ëîêàëüíûìè âñå ïàêåòû, ïðèíàäëåæàùèå ñåòè, è íå îïèñàííûå äëÿ äðóãèõ þíèòîâ - ýòèì ìû îòñåêàåì "íåèçâåñòíûå ïîäêëþ÷åíèÿ". Äëÿ ïîñëåäíèõ òðåõ þíèòîâ óêàçàí òàêæå ïàðîëü, êîòîðûé ìîæåò áûòü èñïîëüçîâàí äëÿ äîñòóïà ê èíäèâèäóàëüíîé ñòàòèñòèêå â âèäå HTML-ñòðàíèö.
23 storage 1 all
Óêàçûâàåò ñåðâèñó processor íà íåîáõîäèìîñòü ñîõðàíÿòü ñòàòèñòèêó â õðàíèëèùå, îïèñàííîì ñåðâèñîì storage çà íîìåðîì 1. Ïðè ýòîì çàïèñü áóäåò èäòè â îáå òàáëèöû îäíîâðåìåííî - raw è summary.
25 service storage 1
26 type mysql
Îïðåäåëÿåò õðàíèëèùå äëÿ ñòàòèñòèêè. Òèï õðàíèëèùà - MySQL, äëÿ äîñòóïà ê áàçå áóäóò èñïîëüçîâàíû ñòàíäàðòíûå íàñòðîéêè: èìÿ ïîëüçîâàòåëÿ root, ïóñòîé ïàðîëü, ðàáîòàþùèé íà òîé æå ìàøèíå SQL-ñåðâåð (ïîäêëþ÷åíèå ÷åðåç unix socket). Èìÿ áàçû äàííûõ - netams.
27 service data-source 1
28 type libpcap
29 source eth1
30 rule 11 "ip"
Îïðåäåëÿåò, êàêèì îáðàçîì äàííûå î òðàôèêå áóäóò ïîïàäàòü â NeTAMS. Äëÿ ýòîãî áóäåò èñïîëüçîâàí èíòåðôåéñ eth1 (ÎÑ Ëèíóêñ), è áóäåò çàõâà÷åí âåñü IP-òðàôèê, ïðîõîäÿùèé ÷åðåç íåãî (ìåõàíèçì libpcap, íà áàçå êîòîðîãî ñäåëàí, íàïðèìåð, tcpdump). Íîìåð ïðàâèëà, "11", â äàííîì ñëó÷àå ñìûñëà íå íåñåò.
32 service alerter 0
33 report oid 06100 name rep1 type traffic period day detail simple
34 smtp-server 127.0.0.1
Äëÿ òîãî ÷òîáû ïîëüçîâàòåëè è àäìèíèñòðàòîð ìîãëè ïîëó÷àòü óâåäîìëåíèÿ î ñòàòèñòèêå ïî ýëåêòðîííîé ïî÷òå, íàñòðàèâàåòñÿ ñåðâèñ alerter è óêàçûâàåòñÿ òèï îò÷åòà, è àäðåñ smtp-ñåðâåðà (â äàííîì ñëó÷àå ýòî ëîêàëüíûé êîìïüþòåð, ãäå âûïîëíÿåòñÿ NeTAMS). Ïðîñëåäèòå, ÷òîáû íà óêàçàííîé ìàøèíå áûë çàïóùåí è íàñòðîåí íà ïðèåì âàø sendmail/postfix/exim/etc.  íàñòîÿùèé ìîìåíò òèï îò÷åòà çàäàòü íåëüçÿ, è âìåñòî ýòîãî ïðèäåòñÿ ïèñàòü âñþ 33þ ñòðî÷êó öåëèêîì.
36 service html 0
37 path /var/www/traffic
38 language en
39 run 5min
40 htaccess yes
41 client-pages all
Ñåðâèñ html ïîçâîëÿåò àâòîìàòè÷åñêè ãåíåðèðîâàòü HTML-ñòðàíèöû ñ îò÷åòàìè. Ïðîöåññ netams áóäåò àâòîìàòè÷åñêè ñîçäàâàòü ýòè ñòðàíèöû ðàç â 5 ìèíóò è ñêëàäûâàòü èõ â êàòàëîã /var/www/traffic. Ïðè ýòîì ÿçûê ñòðàíèö – àíãëèéñêèé (äðóãîãî ïîêà íåò). Áóäåò ñîçäàâàòüñÿ êàê àäìèíèñòðàòîðñêàÿ ÷àñòü äåðåâà ñòðàíèö, òàê è êëèåíòñêàÿ. Äîñòóï ê ñòàòèñòèêå áóäåò çàùèùåí ïàðîëåì (íà àäìèíèñòðàòîðñêóþ – admin:aaa, êëèåíòàì – èõ ëîãèíû-ïàðîëè). Åñëè íàñòðîèòü àïà÷ òàê:
ServerName www.company.ru
<Directory /var/www/traffic>
Options FollowSymLinks ExecCGI Indexes
AllowOverride All
</Directory>
Alias /stat/ /var/www/traffic/
òî àäìèíèñòðàòîð ïîëó÷èò äîñòóï ïî ññûëêå http://www.company.ru/stat/ , à Ôåäÿ ïî ññûëêå http://www.company.ru/stat/clients/fedya/ (ñïðîñèòñÿ ôåäèí ëîãèí-ïàðîëü)