Rok / Year: 2013
Svazek / Volume: 15
Číslo / Issue: 1
Praktická ukázka konfigurace dohledového systému pro monitorování sítí IPv6 A practical example of the configuration of the monitoring system for monitoring IPv6 networks Lukáš Čepa, Jakub Kačer
[email protected],
[email protected] České vysoké učení technické v Praze, Fakulta elektrotechnická, Katedra telekomunikační techniky
Abstrakt: Tento článek se zabývá praktickou ukázkou konfigurace dohledového systému, který se skládá z nástrojů Nagios a NFDUMP tools s grafickou nadstavbou NfSen, pro monitorování IPv6 sítí na základě protokolu NetFlow. Článek dále poskytuje návod pro vytvoření jednotného webového rozhraní a skriptu, který bude provádět mapování IPv6 a MAC adres, což umožní jednoznačnou identifikaci koncových stanic v rámci lokální IPv6 sítě.
Abstract: This article deals with the practical example of the configuration of the monitoring system, which consists of the tool NAGIOS and NFDUMP tools with a graphical extension NfSen for monitoring IPv6 network based on NetFlow protocol. Article also provides instructions for creating a single Web interface and a script that will perform the mapping IPv6 and MAC addresses, which allow unambiguous identification of end stations in a local IPv6 network.
VOL.15, NO.1, FEBRUARY 2013
Praktick´ a uk´ azka konfigurace dohledov´ eho syst´ emu pro monitorov´ an´ı s´ıt´ı IPv6 ˇ Luk´ aˇs Cepa , Jakub Kaˇcer ˇ Cesk´ e vysok´ e uˇ cen´ı technick´ e v Praze, Fakulta elektrotechnick´ a, Katedra telekomunikaˇ cn´ı techniky Email: {cepaluka}@fel.cvut.cz, {kacerjak}@fel.cvut.cz
Abstrakt – Tento ˇcl´ anek se zab´yv´ a praktickou uk´ azkou konfigurace dohledov´eho syst´emu, kter´y se skl´ ad´ a z n´ astroj˚ u Nagios a NFDUMP tools s grafickou nadstavbou NfSen, pro monitorov´ an´ı IPv6 s´ıt´ı na z´ akladˇe protokolu NetFlow. ˇ anek d´ Cl´ ale poskytuje n´ avod pro vytvoˇren´ı jednotn´eho webov´eho rozhran´ı a skriptu, kter´y bude prov´ adˇet mapov´ an´ı IPv6 a MAC adres, coˇz umoˇzn´ı jednoznaˇcnou identifikaci koncov´ych stanic v r´ amci lok´ aln´ı IPv6 s´ıtˇe.
1
Konfigurace syst´ emu Nagios
Dohledov´ y syst´em Nagios, v tomto pˇr´ıpadˇe jeho volnˇe dostupn´a distribuce Nagios Core (verze 3.3.1), bˇeˇz´ı na lok´aln´ım serveru, a slouˇz´ı k monitorov´an´ı s´ıt’ov´ ych prvk˚ u. Topologie experiment´aln´ı s´ıtˇe je zobrazena na obr´ azku 1.
´ Uvod
Tento ˇcl´ anek je dalˇs´ım ze seri´ alu ˇcl´ ank˚ u, kter´e se zab´ yvaj´ı implementac´ı protokolu IPv6 v koncov´ ych s´ıt´ı. V pˇredchoz´ıch ˇcl´ anc´ıch byl pops´ an teoretick´ yu ´vod, kter´ y je nezbytn´ y pro spr´ avnou implementaci, vˇcetnˇe shrnut´ı z´asad adresace v s´ıt´ıch IPv6 [1, 2]. D´ ale byly demonstrov´any jednoduch´e pˇr´ıklady nastaven´ı automatick´e konfigurace, DNS serveru a koncov´ ych stanic s operaˇcn´ımi syst´emy Microsoft Windows XP, Microsoft Windows 7 a Ubuntu v experiment´ aln´ı s´ıti IPv6 se smˇerovaˇcem firmy Mikrotik (ˇrady RB1200) a servery zaloˇzen´ ymi na linuxov´e distribuci Scientific Linux [3, 4]. ˇ anek se zab´ Cl´ yv´ a praktickou uk´ azkou konfigurace dohledov´eho syst´emu, jehoˇz u ´kolem je monitorov´ an´ı s´ıt’ov´ ych ’ prvk˚ u a sledov´ an´ı s´ıt ov´eho provozu na z´ akladˇe protokolu NetFlow tak, aby dohledov´ y syst´em umoˇzn ˇoval sledovat i jednotliv´e s´ıt’ov´e toky. D´ ale poskytuje i n´ avod pro vytvoˇren´ı skriptu, kter´ y bude prov´ adˇet mapov´ an´ı IPv6 a MAC adres, coˇz umoˇzn´ı jednoznaˇcnou identifikaci koncov´ ych stanic v r´ amci lok´ aln´ı IPv6 s´ıtˇe. Mapov´ an´ı IPv6 a MAC adres je jeden z moˇzn´ ych zp˚ usob˚ u jak lze identifikovat koncov´e stanice, kter´e pouˇz´ıvaj´ı pro generov´an´ı sv´eho identifik´ atoru rozhran´ı standard RFC 4941.
2
2.1
Konfigurace monitorovac´ıch n´ astroj˚ u
Dohledov´ y syst´em se skl´ ad´ a ze dvou n´ astroj˚ u vyuˇz´ıvaj´ıc´ı jednotn´e webov´e rozhran´ı pro prezentov´ an´ı v´ ysledk˚ u a jejich ovl´ ad´ an´ı. Jedn´ a se o volnˇe dostupn´e n´ astroje Nagios a NFDUMPS tools s grafickou nadstavbou NfSen [2, 5]. Volba n´ astroj˚ u byla d´ ana jejich podporou protokolu IPv6 a moˇznost´ı jejich propojen´ı a vytvoˇren´ı tak jednotn´eho dohledov´eho syst´emu.
60
Obr´azek 1: Topologie experiment´aln´ı s´ıtˇe IPv6 (vˇsechny uveden´e IP adresy jsou smyˇslen´e z d˚ uvodu bezpeˇcnosti s´ıtˇe) Z´akladn´ı konfigurace Nagiosu spoˇc´ıv´a v editaci konfiguraˇcn´ıho souboru nagios.cfg, kter´ y se nach´ az´ı po instalaci v adres´aˇri /usr/local/nagios/etc. Konfiguraˇcn´ı soubor nagios.cfg obsahuje cesty k dalˇs´ım konfiguraˇcn´ım soubor˚ um, ve kter´ ych se konfiguruj´ı samotn´e sluˇzby a objekty, kter´e jsou subjektem monitorov´an´ı. Tedy ve v´ ychoz´ım stavu je nutno pouze definovat tyto cesty. Pˇr´ıklad konfigurace konfiguraˇcn´ıho souboru nagios.cfg je uveden na obr´azku 2. Konfigurace jednotliv´ ych monitorovac´ıch sluˇzeb spoˇc´ıv´ a v editaci konfiguraˇcn´ıho souboru commands.cfg, kter´ y se nach´az´ı v adres´aˇri /usr/local/nagios/etc/objects. Konfiguraˇcn´ı soubor je ve v´ ychoz´ım stavu nastaven´ y pro vˇetˇsinu monitorovac´ıch sluˇzeb, kter´e jsou obsaˇzeny v z´akladn´ım bal´ıku programu Nagios. V pˇr´ıpadˇe, ˇze je potˇreba nainstalovat dodateˇcn´e sluˇzby, potom je nutn´e tyto sluˇzby definovat i v tomto konfiguraˇcn´ım souboru. Obecn´ y tvar definice sluˇzby je uveden na obr´azku 3. Jm´eno pˇr´ıkazu z´aroveˇ n slouˇz´ı i k vol´an´ı t´eto sluˇzby.
VOL.15, NO.1, FEBRUARY 2013 liOBJECTiCONFIGURATIONiFILEpSv liTheseiareitheiobjecticonfigurationifilesiiniwhich liyouidefineihostskihostigroupskicontactskicontact ligroupskiserviceskietc:iYouicanisplitiyouriobject lidefinitionsiacrossiseveraliconfigifilesiifiyouiwish lipasishownibelowvkiorikeepithemialliiniaisingle liconfigifile:
Pˇri konfiguraci hostitel˚ u se v podstatˇe definuj´ı jednotliv´a zaˇr´ızen´ı (pˇrep´ınaˇc, smˇerovaˇc, atd.), kter´a maj´ı b´ yt podmˇetem monitorov´an´ı. K tomu slouˇz´ı cel´e ˇrada voleb definuj´ıc´ı vlastnosti hostitel˚ u:
liYouicanispecifyiindividualiobjecticonfigifilesias lishownibelow: cfg_file=_usr_local_nagios_etc_objects_commands:cfg cfg_file=_usr_local_nagios_etc_objects_contacts:cfg cfg_file=_usr_local_nagios_etc_objects_timeperiods:cfg cfg_file=_usr_local_nagios_etc_objects_templates:cfg
• use – slouˇz´ı k vol´an´ı pˇrednastaven´e ˇsablony, coˇz umoˇzn ˇuje hostitele konfigurovat implicitnˇe, ym hostitel vys• host name – zkr´acen´e jm´eno, pod kter´ tupuje,
liDefiniceicestyiproimonitorovaniismerovace cfg_file=_usr_local_nagios_etc_objects_router:cfg
• alias – kompletn´ı jm´eno hostitele,
liDefiniceicestyiproimonitorovaniilokalnihoistroje cfg_file=_usr_local_nagios_etc_objects_localhost:cfg
• address – IP adresa, pod kterou je hostitel dosaˇziteln´ y,
Obr´ azek 2: Konfiguraˇcn´ı soubor nagios.cfg define command { command_name command_line }
• hostgroups – hostitel m˚ uˇze b´ yt ˇclenem libovoln´e skupiny, do kter´e ho lze touto volbou pˇriˇradit.
"jméno příkazu" "příkaz"
Obecn´a definice hostitele je zobrazena na obr´azku 5. define host { use host_name alias address hostgroups }
Obr´ azek 3: Konfiguraˇcn´ı soubor nagios.cfg Pˇr´ıkladem m˚ uˇze b´ yt monitorov´ an´ı sluˇzby DNS, kter´a v z´ akladn´ım bal´ıku programu Nagios nen´ı obsaˇzena. Je tedy nutno ji nainstalovat pomoc´ı dodateˇcn´eho bal´ıku nagios-plugins-1.4.15.tar.gz. Ten obsahuje zkompilovan´ y skript check dns, kter´ y monitorov´ an´ı sluˇzby DNS zajist´ı. Definice monitorovac´ı sluˇzby je uvedena na obr´azku 4.
"jméno šablony"; "jméno hosta"; "alias hosta"; "IP adresa"; "jméno skupiny";
Obr´azek 5: Obecn´a definice hostitele D´ale obvykle n´asleduje definice skupin. Ta nen´ı nutn´ a, ale pˇri vˇetˇs´ım mnoˇzstv´ı monitorovan´ ych zaˇr´ızen´ı a sluˇzeb se pr´ace se syst´emem st´av´a v´ıce pˇrehledn´a. V´ yznam voleb je podobn´ y jako v pˇr´ıpadˇe konfigurace hostitel˚ u. Obecn´ a definice skupiny je zobrazena na obr´azku 6.
# 'check_dns' command definition define command { command_name check_dns command_line /usr/lib/nagios/plugins/check_dns -H testv6.ipv6.com }
define hostgroup { hostgroup_name alias }
"jméno skupiny"; "alias skupiny";
Obr´azek 6: Obecn´a definice skupiny
Obr´ azek 4: Definice monitorov´ an´ı sluˇzby DNS
Nakonec je potˇreba urˇcit samotn´e sluˇzby, kter´e se budou monitorovat. Jejich obecn´a konfigurace je uvedena na obr´azku 7. N´asleduje vysvˇetlen´ı nˇekter´ ych voleb:
Z obr´ azku 4 je tedy patrn´e, ˇze monitorovac´ı sluˇzba se bude volat pˇr´ıkazem check dns, kter´ y zavol´ a skript check dns v adres´ aˇri /usr/lib/nagios/plugins s parametry -H testv6.ipv6.com. T´ım se otestuje pˇreklad dom´enov´eho jm´ena testv6.ipv6.com. Toto dom´enov´e jm´eno bylo pˇriˇrazeno k IPv6 adrese 2001:718:4000:132::50 v r´ amci ˇcl´ anku [4]. Posledn´ı f´ az´ı konfigurace Nagiosu je konfigurace samotn´eho objektu, kter´ y bude subjektem monitorov´an´ı. Tento konfiguraˇcn´ı soubor se nach´ az´ı rovnˇeˇz v adres´aˇri /usr/local/nagios/etc/objects a jeho n´ azev m˚ uˇze b´ yt libovoln´ y. Mus´ı k nˇemu vˇsak b´ yt uvedena cesta v konfiguraˇcn´ım souboru nagios.cfg. V z´ akladn´ı konfiguraci obsahuje tento konfiguraˇcn´ı soubor v z´ asadˇe tˇri ˇca´sti:
• check command – jm´eno pˇr´ıkazu, kter´e je definov´ ano bˇehem definice monitorovac´ı sluˇzby, • normal check interval – interval mezi jednotliv´ ymi kontrolami, pokud byla pˇredchoz´ı kontrola u ´spˇeˇsn´ a, • retry check interval – interval mezi jednotliv´ ymi kontrolami, jestli byla pˇredchoz´ı kontrola ne´ uspˇeˇsn´ a. Pˇr´ıklad monitorov´an´ı dostupnosti smˇerovaˇce RB1200 v experiment´aln´ı s´ıti IPv6 je uveden na obr´ azku 8. Smˇerovaˇc je na jeho IPv6 adrese monitorov´an pomoc´ı programu ping6. Z konfigurace je patrn´e, ˇze je vytvoˇreno jedeno zaˇr´ızen´ı routerIPv6 s adresou 2001:718:4000:ffff::2, coˇz je adresa hraniˇcn´ıho smˇerovaˇce v experiment´aln´ı s´ıti IPv6. D´ ale lze vidˇet, ˇze hostitel routerIPv6 je souˇc´ast´ı skupiny Network Routers a je monitorov´an pomoc´ı sluˇzby ping6.
• konfigurace hostitel˚ u, • konfiguraci skupin, • a konfiguraci sluˇzeb.
61
VOL.15, NO.1, FEBRUARY 2013 defineýserviceý{ ýýuseýýýýýýýýýýýýýýýýýýýý"jménoýšablony"; ýýhost_nameýýýýýýýýýýýýýý"jménaýhostů"; ýýservice_descriptionýýýý"popisýslužby"; ýýcheck_commandýýýýýýýýýý"jménoýpříkazu"; ýýnormal_check_intervalýý"četnostýkontroly"; ýýretry_check_intervalýýý"četnostýkontrolyýpoývýpadku"; }
• p – ud´av´a port, na kter´em bude dan´ y kolektor naslouchat, • u – ud´av´a uˇzivatele, pod kter´ ym bude kolektor spuˇstˇen, • g – ud´av´a skupinu, pod kterou bude kolektor spuˇstˇen,
Obr´ azek 7: Obecn´ a definice sluˇzby
• B – nastavuje velikost vyrovn´avac´ı pamˇeti,
[root@ipvy-objects]I-cat-routerNcfg I-Define-the-router-that-we1ll-be-monitoring
• S – specifikuje ˇcasov´ y form´at, se kter´ ym se budou data ukl´adat; v´ yˇcet ˇcasov´ ych form´at˚ u je uveden v tabulce 1,
define-host-{ --use-------------------genericCswitch; --host_name-------------routerIPvy; --alias-----------------routerIPvy; --address---------------!RRG:7G8:%RRR:ffff::! --hostgroups------------routers; }
• P – nastavuje PID soubor, • z – zap´ın´a kompresi dat, • I – nastavuje identifikaˇcn´ı ˇretˇezec dat (ve v´ ychoz´ım stavu je nastaveno ‘none‘),
I-Create-a-new-hostgroup-for-routers define-hostgroup-{ --hostgroup_name--------routers; --alias-----------------Network-Routers; }
• l – nastavuje adres´aˇr, kam se budou ukl´adat z´ıskan´ a data.
I-Create-a-service-to-PING-to-router define-service-{ --use-------------------genericCservice; --host_name-------------routerIPvy; --service_description---PING; --check_command---------check_ping;!RRNR}!R2;yRRNR}yR2; --normal_check_interval-5; --retry_check_interval--G; }
ˇ Tabulka 1: Casov´ e form´aty 0 1 2 3 4 5 6 7 8
Obr´ azek 8: Pˇr´ıklad konfigurace monitorov´ an´ı smˇerovaˇce RB1200 v experiment´ aln´ı s´ıti IPv6 2.2
Konfigurace n´ astroj˚ u pro monitorov´ an´ı datov´ eho provozu
v´ ychoz´ı stav, ˇcasov´ y form´at nen´ı bl´ıˇze specifikov´ an rok/mˇes´ıc/den rok/mˇes´ıc/den/hodina rok/t´ yden v roce/den v t´ ydnu rok/t´ yden v roce/den v t´ ydnu/hodina rok/den v roce rok/den v roce/hodina rok-mˇes´ıc-den rok-mˇes´ıc-den/hodina
Po zapnut´ı kolektoru je nutn´e nakonfigurovat smˇerovaˇc, ˇci jin´ y s´ıt’ov´ y prvek, tak, aby exportoval netflow data na dan´ y port, na kter´em kolektor poslouch´a. V tomto pˇr´ıpadˇe se jedn´a pouze o smˇerovaˇc firmy Mikrotik ˇrady RB1200. Konfigurace Mikrotiku je zn´azornˇena na obr´ azku 10. Pro pˇrenos netflow dat je pouˇzit protokol IPv4, protoˇze operaˇcn´ı syst´em smˇerovaˇc˚ u Mikrotik, verze RouterOS 5.11, nepodporuje pˇrenos netflow dat prostˇrednictv´ım protokolu IPv6. Z tohoto d˚ uvodu bylo nutn´e v experiment´ aln´ı s´ıti zprovoznit i protokol IPv4. Za t´ımto u ´ˇcelem byl zvolen priv´atn´ı adresn´ı prostor 192.168.211.0/24. Postup konfigurov´an´ı smˇerovaˇc˚ u firmy Mikrotik naleznete na webov´e str´ance [6]. Samotn´a konfigurace dohledov´eho syst´emu se prov´ ad´ı bˇehem instalace frontendov´e ˇc´asti dohledov´eho n´ astroje NfSen [2]. Ten se obvykle v reposit´aˇr´ıch nenach´ az´ı, proto je nutno z´ıskat jeho zdrojov´e k´ody, napˇr´ıklad z webov´ ych str´anek dohledov´eho n´astroje NfSen [5]. Po jejich rozbalen´ı lze mezi zdrojov´ ymi soubory nal´ezt konfiguraˇcn´ı soubor nfsen-dist.cfg. Ten se nach´az´ı v podadres´ aˇri etc/. Tento konfiguraˇcn´ı soubor je nutn´e zkop´ırovat do stejn´eho podadres´aˇre a pˇrejmenovat na nfsen.conf. Pˇred instalac´ı je nutno tento konfiguraˇcn´ı soubor editovat podle vlastn´ıch potˇreb. Vˇetˇsinu konfiguraˇcn´ıho souboru lze ponechat nedotˇcenou, aˇz na cesty k z´akladn´ım adres´aˇr˚ um. Ty vˇsak
V prvn´ı f´ azi je nutno nainstalovat sadu n´ astroj˚ u NFDUMP tools. Tyto n´ astroje jsou obsaˇzeny v reposit´ aˇr´ıch vˇetˇsiny linuxov´ ych distribuc´ı, takˇze s instalac´ı by pr˚ umˇern´ y linuxov´ y uˇzivatel nemˇel m´ıt probl´emy. N´ astroje NFDUMP tools nen´ı tˇreba konfigurovat, ale je potˇreba zapnout kolektor pro sbˇer dat [2], v tomto pˇr´ıpadˇe jeden, a nastavit na jak´em portu m´ a naslouchat a kam z´ıskan´ a data ukl´adat. Kolektor lze spustit pˇr´ıkazem nfcapd, kter´ y lze bl´ıˇze specifikovat jednotliv´ ymi parametry. Spuˇstˇen´ı kolektoru je zobrazeno na obr´ azku 9. V´ yˇcet vˇsech moˇzn´ ych parametr˚ u lze z´ıskat zad´ an´ım pˇr´ıkazu nfcapd s parametrem -h. nfcapd_–w_–D_–p_9995_–u_nfsen_–g_apache_–B_200000_–S_1 __–P_/data/nfsen/run/p9995.pid_–z_–I_router_ipv6_k13132 __–l_/data/nfsen/profiles-data/live/router_ipv6_k13132
Obr´ azek 9: Spuˇstˇen´ı kolektoru pˇr´ıkazem nfcapd Popis pouˇzit´ ych parametr˚ u: • w – interval synchronizace souboru (ve v´ ychoz´ım stavu je nastaveno 5 minut), • D – urˇcuje, ˇze kolektor bˇeˇz´ı na pozad´ı operaˇcn´ıho syst´emu,
62
VOL.15, NO.1, FEBRUARY 2013
parametr˚ u: • protokol 3. vrstvy – inet a ipv4, pˇr´ıpadnˇe inet6 a ipv6, specifikuj´ı verzi IP protokolu, • protokol 4. vrstvy – TCP, UDP, ICMP, GRE, ESP, AH, RSVP nebo PROTO n´asledovan´e specifick´ ym ˇc´ıslem portu protokolu transportn´ı vrstvy, • IP adresa – IP, nebo HOST
; lze tak´e specifikovat pˇr´ımo zdrojovou, ˇci c´ılovou adresou pomoc´ı v´ yrazu SRC nebo DST, • port – PORT <ˇ c´ ıslo>, specifikuje ˇc´ıslo portu na transportn´ı vrstvˇe,
Obr´ azek 10: Konfigurace NetFlow na smˇerovaˇci firmy Mikrotik
• rozhran´ı – IF num <ˇ c´ ıslo>; t´ımto v´ yrazem lze specifikovat pˇr´ısluˇsn´e rozhran´ı, kter´ ym tok proˇsel a pokud se pˇredˇrad´ı v´ yraz IN | OUT, lze urˇcit vstupn´ı, ˇci v´ ystupn´ı rozhran´ı,
z´ avis´ı na linuxov´e distribuci, na kter´e je NfSen instalov´an. ˇ ast, kterou je nutno zmˇenit, je definice zdroj˚ C´ u netflow dat (Netflow sources). Ta se nach´ az´ı na konci konfiguraˇcn´ıho souboru nfsen.cfg. Konfigurace pouˇzit´ a v tomto pˇr´ıpadˇe je zn´ azornˇena na obr´ azku 11. Pˇri instalaci se pot´e jako argument pˇr´ıkazu uvede cesta ke konfiguraˇcn´ımu souboru pomoc´ı pˇr´ıkazu ./install.pl etc/nfsen.conf.
• pˇr´ıznaky – pouˇzit´ım v´ yrazu flags tcpglags lze filtrovat toky se specifick´ ymi TCP pˇr´ıznaky (A-ACK, S-SYN, F-FIN, R-Reset, P-Push, U-Urgent, X – vˇsechny pˇr´ıznaky),
9gNetflowgsources 9 9gSyntax: 9gggzidentzg=>g{gzportzg=>gz<portnum>z. 9gggzcolzg=>gzz.gztypezg=>gzzg} 9gIdentgstringsgmustgbeg6gtog69gcharactersglong 9gonly.gcontaininggcharactersg[a%zA%Zv%9](
• typ sluˇzby – v´ yraz tos value <0-255>, • poˇcet paket˚ u – v´ yraz packets <ˇ c´ ıslo> num <ˇ c´ ıslo urˇ cuj´ ıc´ ı rozsah>, • poˇcet bit˚ u – bytes <ˇ c´ ıslo> num <ˇ c´ ıslo urˇ cuj´ ıc´ ı rozsah>,
[sourcesg=gA ggzrouter_ipv)_k6363kzg=>g{gzportzg=>gz9995z. ggzcolzg=>gz9vvvvffzg}. Z;
• poˇcet paket˚ u za sekundu – v´ yraz pps <ˇ c´ ıslo> num <ˇ c´ ıslo urˇ cuj´ ıc´ ı rozsah>, Obr´ azek 11: Pˇr´ıklad konfigurace dohledov´eho n´ astroje NfSen
• poˇcet bit˚ u v paketu – v´ yraz bpp <ˇ c´ ıslo> num <ˇ c´ ıslo urˇ cuj´ ıc´ ı rozsah>,
Z konfigurace je patrn´e, ˇze jako jm´eno zdroje bylo zvoleno router ipv6 k13132. Volba port urˇcuje port, na kter´em bude dohledov´ y syst´em naslouchat. Typicky je zvolen v´ ychoz´ı port 9995, ale lze pochopitelnˇe vyuˇz´ıt i jin´ y voln´ y port. Volba col urˇcuje barvu, kter´ a bude vyuˇzita pˇri vykreslov´ an´ı graf˚ u pro tento zdroj. Dodateˇcnˇe lze pouˇz´ıt i volbu type, kter´ a m˚ uˇze nab´ yvat hodnot sflow, nebo netflow a urˇcuje protokol vyuˇzit´ y pˇri sbˇeru dat. Ve v´ ychoz´ım stavu je nastaven protokol NetFlow. 2.2.1
• ˇc´ıslo autonomn´ıho syst´emu – AS num <ˇ c´ ıslo>, lze pouˇz´ıt kombinaci se SRC | DST a t´ım specifikovat zdrojov´e, nebo c´ılov´e ˇc´ıslo AS, • oper´atory – vˇsechny pˇredchoz´ı v´ yrazy lze pouˇz´ıt s n´asleduj´ıc´ımi oper´atory =, ==, <, >, EQ (equal), LT (lower then), GT (greater then). Pouˇzit´ım uveden´ ych v´ yraz˚ u a jejich logick´ ym kombinov´an´ım lze filtrovat toky dle velmi specifick´ ych poˇzadavk˚ u. Typick´ ym pˇr´ıkladem filtrov´ an´ı s´ıt’ov´ ych tok˚ u IPv6 m˚ uˇze b´ yt v´ yraz ipv6 and ip 2001:718:4000:132::50 and port 80. Pokud se do filtru zad´a zm´ınˇen´ y pˇr´ıklad, n´astroj NfSen zobraz´ı pouze IPv6 toky obsahuj´ıc´ı IPv6 adresu 2001:718:4000:132::50 a port 80. V´ yhodou n´astroje NfSen je, ˇze se ˇcasto pouˇz´ıvan´e filtry daj´ı uloˇzit a s´ıt’ov´ y administr´ator tedy nemus´ı cel´ y v´ yraz ps´at pokaˇzd´e, kdyˇz chce s´ıt’ov´e toky filtrovat. To je realizov´ano pomoc´ı n´astroje NfProfile [2]. Pomoc´ı tohoto n´astroje lze tedy jednotliv´e filtry pˇrednastavit pro budouc´ı pouˇzit´ı, coˇz zjednoduˇs´ı pr´aci administr´atora.
Syntaxe filtru
Silnou zbran´ı n´ astroje NfSen jsou jeho moˇznosti filtrov´an´ı. Jak bylo zm´ınˇeno v literatuˇre [2], n´ astroj NfSen umoˇzn ˇuje vyhled´ avat jednotliv´e s´ıt’ov´e toky, kter´e s´ıt´ı teˇcou ˇci tekly. V produkˇcn´ı s´ıti je tˇechto tok˚ u obrovsk´e mnoˇzstv´ı, a proto je nutn´e jednotliv´e toky filtrovat dle jejich specifick´ ych vlastnost´ı. Syntaxe filtru je pˇr´ımoˇcar´ a a logick´ a. Skl´ ad´ a se z jednotliv´ ych v´ yraz˚ u, kter´e se daj´ı kombinovat logick´ ymi operacemi konjunkce (and), disjunkce (or) a negace (not). Jednotliv´e v´ yrazy se pot´e skl´ adaj´ı z kl´ıˇcov´ ych slov a jejich
63
VOL.15, NO.1, FEBRUARY 2013
3
Tvorba syst´ emu
jednotn´ eho
dohledov´ eho coˇz m˚ uˇze v´est k naruˇsen´ı bezpeˇcnosti s´ıtˇe. Tento probl´em lze ˇreˇsit napˇr´ıklad pomoc´ı mapov´an´ı IPv6 a MAC adres.
V pˇr´ıpadˇe vˇetˇs´ıho mnoˇzstv´ı monitorovac´ıch syst´em˚ u by pr´ ace s nimi mohla b´ yt nepˇrehledn´ a. Z tohoto d˚ uvodu je ˇz´ adouc´ı vˇsechny monitorovac´ı syst´emy vhodn´ ym zp˚ usobem propojit. To v koneˇcn´em d˚ usledku m˚ uˇze v´est i k u ´spoˇre ˇcasu administr´ atora pˇri jeho pr´ aci. Jak syst´em Nagios, tak i sada n´ astroj˚ u pro sledov´an´ı s´ıt’ov´eho provozu maj´ı odliˇsnou koncepci. Spojovat tedy jejich backendov´e ˇc´ asti by nebylo pˇr´ıliˇs efektivn´ı [2]. Co naopak maj´ı oba programy podobn´e je jejich webov´e rozhran´ı, pˇres kter´e prezentuj´ı svoje v´ ysledky. Pro tvorbu dynamick´ ych webov´ ych str´ anek se dnes pouˇz´ıv´a jazyk PHP. Tento jazyk byl vyuˇzit i pro tvorbu jednotn´eho webov´eho rozhran´ı obou zm´ınˇen´ ych dohledov´ ych n´ astroj˚ u. Webov´e rozhran´ı Nagiosu je tvoˇreno r´amem (index.php), kter´e obsahuje dvˇe webov´e str´ anky. V lev´e ˇc´ asti (side.php) jsou odkazy na jednotliv´e str´ anky, kter´e jsou pot´e zobrazov´ any v prav´e ˇc´ asti (main.php). Webov´e str´ anky programu Nagios jsou um´ıstˇeny v adres´aˇri /usr/local/nagios/share. Pˇri spojov´ an´ı webov´ ych rozhran´ı obou program˚ u tedy staˇc´ı pˇridat vhodn´ y z´aznam do zdrojov´eho k´ odu webov´ ych str´ anek side.php a t´ım tak vytvoˇrit odkaz na webov´e str´ anky programu NfSen. Zdrojov´ y HTML k´ od s odkazy na webov´e str´ anky programu NfSen a mapov´ an´ı IPv6 adres na MAC adresy je zobrazen na obr´ azku 12. Ty se budou potom zobrazovat v prav´e ˇc´ asti webov´eho rozhran´ı programu Nagios. Webov´e str´ anky programu NfSen jsou um´ıstˇeny v adres´aˇri /var/www/html/nfsen. T´ımto jednoduch´ ym zp˚ usobem jsou webov´ a rozhran´ı obou program˚ u propojena a jev´ı se jako jeden celek. V´ ysledn´ a podoba webov´eho rozhran´ı je zobrazena na obr´ azku 16.
Bpromenne myIyipI%IDip_adresa_sitoveho_prvkuDg myIyusernameI%IDuzivatelske_jmenoDg myIypasswordI%IDhesloDg myIyusernamedbiI%IDrootDg myIypassdbiI%IDroot_hesloDg myIydatabaseI%IDiptomacDg myIytablenameI%IDmapovaniDg BzjisteniIsystemovehoIcasu myI_yseczyminzyhourzymdayzymonzyzearzywdayz IIIIyydayzyisdstdIjIlocaltime_timedg ymonkkg yyearIk%I)E,,g myIyfilenameI%IDyyearIymonIymdayIyhourDg BvytvoreniItelnetIspojeni myIytelnetI%INet''Telnetj3new_qrrmodeI%3I"return"dg ytelnetj3open_yipdg ytelnetj3login_yusernamezypassworddg BstazeniIdat myI{outputI%Iytelnetj3cmd_D'putI[(ipv0IneighborIprint IIIIbriefIwithoutjpaging]Ddg ytelnetj3close_dg BodstraneniIneboInahrazeniInevhodnýchIznaků BIzInactenychIdat myI$changeI%I_I"+0m"I%3I""zI"3"I%3I""zI"mI"I%3I""z IIII")m"I%3I""zI")B"I%3I"B"zI"cepa{ipv0wk)+)+-"I%3I""dg myI$goodI%ImapI{y_%3)}I_Ez),z)+z+-ww)-fdg myIylist_itemg forIylist_item_{outputd { IIylist_itemI%~Is(_wd(ygood{ord_y)dI2Iy)I'I""(eg}g IIylist_itemI%~Itr("["((dg IIylist_itemI%~Itr("]"((dg IIfor_keysI$changed II{ IIIIylist_itemI%~Is(y_(ychange{y_}(gs II} } BvytvoreniIspojeniIsIdatabazi myIydbhI%I?7Rj3connect_D?7R'mysql'database%iptomacDz IIIIIyusernamedbizIypassdbidIorIdieID~ouldInot IIIIIconnectItoIdatabase'Iy?7R''errstrDg BvyhledaniIexistujiciIipv0IneboImacIadresy foreachIylist_item_{outputd { IIif_ylist_itemI%~I(ww'ww'ww'ww'ww'ww(d II{ IIIImyI_yazIybzIyczIyddI%Isplit_(\sk(zIylist_itemdg IIIIBvytvoritIdotazIvIdatabazi IIIImyIymyqueryI%Iydbhj3prepare_DRNSqRTIRNTOIytablename IIIIIIII_ipv0zImacdIV}LUqSI_2z2dgDd IIIIorIdieIydbhj3errstrg IIIIymyqueryj3executeI_yczyddg II} } ydbhj3disconnect_dg printIDScriptIhasIfinishedIsuccessfuly\nDg
xxP>NetFlow xxP>IPxtoxMACxmapping
Obr´ azek 12: HTML k´ od s odkazy na webov´e str´ anky programu NfSen a mapov´ an´ı IPv6 adres na MAC adresy V uveden´em k´ odu jsou dva odkazy, prvn´ı vede na str´anky programu NfSen a druh´ y vede na str´ anky, pomoc´ı kter´ ych je realizov´ ano mapov´ an´ı IPv6 a MAC adres. 3.1
[root{ipv0Icepa]BIcatIiptomacwpl BX(usr(bin(perl useINet''Telnetg useIPOSRXg useI?7Rg
Obr´azek 13: Zdrojov´ y k´od skriptu iptomac.pl V pˇredchoz´ım ˇcl´anku [2] byl podrobnˇe pops´an n´ astroj, kter´ y sleduje s´ıt’ov´ y provoz na z´akladˇe protokolu NetFlow. Tento n´astroj m˚ uˇze b´ yt pˇri vhodn´em vyuˇz´ıv´ an´ı velice siln´ ym pomocn´ıkem, nebot’ pomoc´ı nˇej lze pˇresnˇe sledovat komunikaci jednotliv´ ych koncov´ ych stanic. T´ım lze zjistit koncovou stanici, kter´a vyuˇz´ıv´a datovou s´ıt’ pro nevhodn´e u ´ˇcely, nebo se j´ı snaˇz´ı napadnout. To je vˇsak moˇzn´e pouze ve chv´ıli, kdy koncov´a stanice pouˇzila pro komunikaci adresu, jej´ıˇz identifik´ator rozhran´ı byl vytvoˇren pomoc´ı EUI-64. Pot´e lze z IPv6 adresy urˇcit fyzickou MAC adresu s´ıt’ov´eho rozhran´ı, kterou pro komunikaci vyuˇz´ıv´ a.
Mapov´ an´ı IPv6 a MAC adres
V okamˇziku, kdy se koncov´e stanice konfiguruj´ı podle automatick´e konfigurace, dojde k vygenerov´ an´ı identifik´atoru rozhran´ı, tedy hostitelsk´e ˇc´ asti adresy IPv6, podle modifikovan´eho standardu EUI-64 [7] nebo n´ ahodnˇe podle RFC 4941 [8]. Pouˇzit´ı standardu z´ avis´ı na typu operaˇcn´ıho syst´emu [1]. V pˇr´ıpadˇe generov´ an´ı podle RFC 4941, je identifik´ ator rozhran´ı n´ ahodn´ y a v ˇcase promˇenn´ y. To m˚ uˇze zp˚ usobit probl´emy pˇri zpˇetn´e identifikaci koncov´e stanice,
64
VOL.15, NO.1, FEBRUARY 2013
Jestliˇze si ale koncov´ a stanice identifik´ ator rozhran´ı urˇcila n´ ahodnˇe a jeˇstˇe ho v ˇcase mˇenila, je velmi tˇeˇzk´e koncovou stanici zjistit. Aby bylo moˇzn´e v ˇcase mapovat aktu´ aln´ı IPv6 adresy na MAC adresy jednotliv´ ych koncov´ ych stanic, byl vytvoˇren, pomoc´ı jazyka Perl [9], skript iptomac.pl, kter´ y se pravidelnˇe pˇripojuje na smˇerovaˇc firmy Mikrotik a stahuje cache soused˚ u [7]. Skript iptomac.pl je zobrazen na obr´ azku 13. Cache soused˚ u je tabulka obsahuj´ıc´ı aktivn´ı sousedy, jejich IPv6 adresy a MAC adresy. Tuto tabulku si mus´ı udrˇzovat kaˇzd´ y aktivn´ı prvek komunikuj´ıc´ı protokolem IPv6. Skript iptomac.pl se tedy pravidelnˇe kaˇzdou hodinu pˇripojuje na smˇerovaˇc a pomoc´ı pˇr´ıkazu :put [/ipv6 neigbhor print brief without-paging], kter´ y se vloˇz´ı do pˇr´ıkazov´eho ˇr´adku, stahuje obsah cache soused˚ u. Staˇzen´ a data jsou vloˇzena do promˇenn´e @output. Pot´e vytvoˇren´ y algoritmus nalezne pomoc´ı regul´ arn´ıch v´ yraz˚ u, pouˇz´ıvan´ ych podle standardu POSIX [10], pˇr´ısluˇsn´e p´ ary IPv6 a MAC adres a ty uloˇz´ı do odpov´ıdaj´ıc´ıch promˇenn´ ych. Tyto promˇenn´e jsou odesl´any do MySQL datab´ aze, kter´ a se naz´ yv´ a textttiptomac a obsahuje tabulku s dvˇema sloupci nazvanou mapovani. Do prvn´ıho sloupce jsou ukl´ ad´ any adresy IPv6 a do druh´eho MAC adresy. Pro pˇripojen´ı Perlu k MySQL datab´azi je nutno nainstalovat modul DBI (DataBase Interface), kter´ y toto pˇripojen´ı umoˇzn´ı. Pˇred samotn´ ym pˇripojen´ım skriptu iptomac.pl k MySQL datab´ azi, je nutn´e spustit datab´ azov´ y server na pozad´ı operaˇcn´ıho syst´emu. Bliˇzˇs´ı informace o MySQL (instalace, spuˇstˇen´ı a z´ akladn´ı pr´ace s MySQL) naleznete na webov´e str´ ance [11]. Z´ıskan´e v´ ysledky lze zobrazit pomoc´ı webov´e str´anky mapovani.html, kter´ a je dostupn´ a pˇres spoleˇcn´e webov´e rozhran´ı. Tato webov´ a str´ anka umoˇzn ˇuje z´ aroveˇ n i vyhled´ avat z´ aznamy na z´ akladˇe zadan´e adresy IPv6, ˇci MAC adresy. Samotn´e vyhled´ av´ an´ı v MySQL datab´ azi realizuje skript search.php, na kter´ y se webov´ a str´ anka pˇresmˇeruje po zad´ an´ı hledan´ ych u ´daj˚ u. Tento skript je zobrazen na obr´ azku 15. V´ ystup se pot´e zobraz´ı do tabulky na webov´e str´ ance mapovani.html. Zdrojov´ y k´ od webov´e str´anky mapovani.html je uveden na obr´ azku 14. Vˇsechny uveden´e webov´e str´ anky a skripty se v tomto pˇr´ıpadˇe nach´ az´ı v adres´ aˇri /var/www/html/iptomac. S rostouc´ım mnoˇzstv´ım dat vˇsak m˚ uˇze b´ yt vyhled´av´an´ı v datab´ azi n´ aroˇcnˇejˇs´ı. Proto je nezbytn´e v pˇr´ıpadˇe vˇetˇs´ıch s´ıt´ı provozovat dohledov´ y syst´em na v´ ykonnˇejˇs´ım hardwaru. Tento dohledov´ y syst´em je vhodn´ y pro s´ıtˇe s ˇr´adovˇe stovkami koncov´ ych stanic.
4
Z´ avˇ er
Tento ˇcl´ anek poskytl ˇcten´ aˇri praktickou uk´ azku konfigurace n´ astroj˚ u Nagios a NfSen, kter´e slouˇz´ı k monitorov´ an´ı s´ıt’ov´ ych prvk˚ u, respektive s´ıt’ov´ ych tok˚ u, pro prostˇred´ı IPv6, a n´ avod k vytvoˇren´ı jednotn´eho dohledov´eho syst´emu, kter´ y kombinuje webov´ a rozhran´ı obou n´ astroj˚ u. D´ ale poskytl n´ avod na vytvoˇren´ı skriptu, kter´ y prov´ ad´ı mapov´ an´ı IPv6 a MAC adres, coˇz umoˇzn ˇuje jed-
[root@ipv6Piptomac]CPcatPmapovani;html PP PPPPSearchPthePDatabase<xtitle> PP<xhead> PP PPPP PPPPPP PPPPPPVyberetePIPv6PneboPMACPaPzadejtePhledanouPadresu; PPPPPP PPPPPP PPPPPPPP<selectPname=AvolbaA> PPPPPPPPPPIPv6<xoption> PPPPPPPPPPMAC<xoption> PPPPPPPP<xselect> PPPPPPPP PPPPPPPP PPPPPP<xform> PPPP<xcenter> PP<xbody>
Obr´azek 14: Zdrojov´ y k´od webov´e str´anky mapovani.html [root@ipvF)iptomac]!)cat)searchSphp 1Aphp )){con)>)mysql_connectuflocalhostfPfrootfPfroot_heslof:% ))ifu;{con: )){ ))))dieuCCould)not)connectk)C)S)mysql_erroru::% ))} ))mysql_select_dbufiptomacfP){con:% )){term)>){_POST[CtermC]% )){volba)>){_POST[CvolbaC]% )){result)>)mysql_queryufSELECT)DISTINCT)})FROM ))))mapovani)where){volba)like)CdtermdCf:% ))echo)f1table)border>CLC/1tr/1th/IPvF1Tth/ ))))1th/MAC1Tth/1Ttr/f% ))whileu{row)>)mysql_fetch_arrayu{result:: )){ ))))echo)f1tr/f% ))))echo)f1td/f)S){row[CipvFC])S)f1Ttd/f% ))))echo)f1td/f)S){row[CmacC])S)f1Ttd/f% ))))echo)f1Ttr/f% ))} ))echo)f1Ttable/f% ))mysql_closeu{con:% A/
Obr´azek 15: search.php
Zdrojov´ y
k´od
vyhled´avac´ıho
skriptu
noznaˇcnou identifikaci koncov´ ych stanic v dan´e s´ıti IPv6. Mapov´an´ı IPv6 a MAC adres je jeden z moˇzn´ ych zp˚ usob˚ u jak lze identifikovat koncov´e stanice, kter´e pouˇz´ıvaj´ı pro generaci sv´eho identifik´atoru rozhran´ı standard RFC 4941. Budouc´ı pr´ace bude zamˇeˇrena na rozˇs´ıˇren´ı dohledov´eho syst´emu o dalˇs´ı uˇziteˇcn´e vlastnosti, pˇredevˇs´ım na vylepˇsen´ı skriptu, kter´ y prov´ad´ı mapov´an´ı IPv6 a MAC adres. D´ ale bude pr´ace zamˇeˇrena na streamov´an´ı a smˇerov´ an´ı IPv6 multicastu, testov´an´ı protokolu SIP v prostˇred´ı IPv6 a v neposledn´ı ˇradˇe na IPv6 mobilitu zaˇr´ızen´ı. V d˚ usledku toho budou vznikat dalˇs´ı ˇcl´anky, kter´e se budou zab´ yvat touto popsanou problematikou.
Podˇ ekov´ an´ı Tento pˇr´ıspˇevek vznikl v souvislosti s ˇreˇsen´ım projektu Fondu rozvoje sdruˇzen´ı CESNET Implementace pro” tokolu IPv6 do experiment´aln´ı a v´ yzkumn´e s´ıtˇe katedry
65
VOL.15, NO.1, FEBRUARY 2013
ˇc. 2012090004, [cit. 2012-11-29]. Dostupn´e z: http://access.feld.cvut.cz/view.php?cisloclanku=20120 90004. [5] NfSen – Netflow Sensor [online]. http://nfsen.sourceforge.net/.
Dostupn´e z:
[6] Manual: TOC – MikroTik Wiki [online]. Dostupn´e z: http://wiki.mikrotik.com/wiki/Manual:TOC. [7] SATRAPA, P. IPv6: internetov´y protokol verze 6 [online]. 3., aktualiz. a dopl. vyd. Praha: CZ.NIC, c2011, 407 s. [cit. 2012-11-30]. CZ.NIC. ISBN 978-80-904248-4-5 (BROˇz.). Dostupn´e z: http://ii.iinfo.cz/r/kd/internetovy-protokol-ipv6-tretivydani.pdf. [8] NARTEN, T. – DRAVES, R – KRISHNAN, S. Privacy Extensions for Stateless Address Autoconfiguration in IPv6 [online]. c2007, [cit. 2012-11-30]. Dostupn´e z: http://www.ietf.org/rfc/rfc4941.txt. [9] SATRAPA, P. Perl pro zelen´ aˇce [online]. 2. vyd. Praha: Neocortex, c2001, 224 s. Bestseller for all. ISBN 80-863-3002-8. Dostupn´e z: http://www.neo.cz/books/perl green.html.
Obr´ azek 16: Webov´e rozhran´ı dohledov´eho syst´emu (zobrazen´ı mapov´ an´ı IPv6 a MAC adres)
[10] PHP a regul´ arn´ı v´yrazy (PHP POSIX funkce) [online]. Dostupn´e z: http://www.regularnivyrazy.info/serialphp-posix.html.T-rQ pGd6 I.
Telekomunikaˇcn´ı techniky a jej´ı metodick´e zobecnˇen´ı“ ˇ a projektu Studentsk´e grantov´e soutˇeˇze CVUT v Praze ˇc. SGS11/124/OHK3/2T/13.
Literatura ˇ ˇ [1] CEPA, L. – KACER, J. Konfigurace adres pˇri implementaci IP verze 6 v koncov´ych s´ıt´ıch. Access server [online]. 2012, roˇc. 10, ˇc. 2012060001, [cit. 2012-11-29]. Dostupn´e z: http://access.feld.cvut.cz/view.php?cisloclanku=20120 60001. ˇ ˇ [2] CEPA, L. – KACER, J. Implementace protokolu DNS a moˇznosti monitorov´ an´ı s´ıt’ov´ych prvk˚ u a datov´eho provozu v koncov´e s´ıti s IPv6. Access server [online]. 2012, roˇc. 10, ˇc. 2012070002, [cit. 2012-11-29]. Dostupn´e z: http://access.feld.cvut.cz/view.php?cisloclanku=20120 70002. ˇ ˇ [3] CEPA, L. – KACER, J. Praktick´y postup adresace koncov´e s´ıtˇe IP verze 6 a nastaven´ı automatick´e konfigurace. Access server [online]. 2012, roˇc. 10, ˇc. 2012080001, [cit. 2012-11-29]. Dostupn´e z: http://access.feld.cvut.cz/view.php?cisloclanku=20120 80001. ˇ ˇ [4] CEPA, L. – KACER, J. – KOCUR, Z. – ´ ˇ VODRAZKA, J. Praktick´e proveden´ı konfigurace DNS serveru a koncov´ych stanic v s´ıti IP verze 6. Access server [online]. 2012, roˇc. 10,
66
[11] Pˇrehled ˇcl´ ank˚ u na Linuxsoft.cz v kategorii MySQL [online]. Dostupn´e z: http://www.linuxsoft.cz/article list.php?id kategory= 232.