Sporočila programa Link Logger

Možnosti je kar nekaj, najbolj priljubljene pa smo nakazali že v pretekli številki. Zdaj že vemo, da ena od nadgradenj, DD-WRT (www.dd-wrt.com), ponuja več možnosti za nadaljnjo nadgradnjo, vsaka od »polnih« različic pa ima določene posebnosti. Gotovo se marsikomu samo po sebi postavlja vprašanje, zakaj ne bi uporabnik vedno namestil najbogatejše različice, ki ponuja največ možnosti. Enega od razlogov smo omenili že v pretekli številki: zaradi omejenosti bliskovnega (flash) pomnilnika je potrebno sklepanje kompromisov. Nesmiselno je izbrati polno različico, ki nam ponuja nekaj, česar ne potrebujemo. Tako namreč izgubimo dragocen prostor, ki bi ga lahko sicer uporabili za nameščanje paketov, ki jih v resnici potrebujemo.

ŠE ENKRAT: ZAKAJ?

Eden od razlogov za nadgradnjo je tudi ta, da z njo pridemo »bližje« do usmerjevalnika. Z nadgradnjo oziroma zamenjavo originalne strojnoprogramske opreme (firmware) s prilagojeno pridobimo možnost dostopa do usmerjevalnika prek telneta oziroma protokola SSH (Secure Shell). Ta nam daje bistveno več možnosti kot dostop prek grafičnega vmesnika (spletni brskalnik). Tako dostopamo do operacijskega sistema (Linux), kar nam omogoča tudi uporabo netipičnih usmerjevalniških funkcij (npr. dostop do zunanje particije), ki se bodo v nadaljevanju pokazale kot nadvse koristne. Možnost dostopa prek ukazne vrstice omogoča tudi prihranek pomnilniškega prostora, seveda, če ste mojster njene uporabe in se boste odrekli grafičnemu vmesniku.
Da bomo spoznali filozofijo, ki jo uporablja večina modificirane strojnoprogramske opreme, bomo v sistem najprej namestili skromnejšo različico (mini). Ta nam omogoča, da del bliskovnega pomnilnika uporabimo kot disk oziroma datotečni sistem JFFS (Journalling Flash Files System). Najlaže ga aktiviramo prek spletnega vmesnika (meni Administration – JFFS enabled in Clean JFFS), isto opravilo pa lahko storimo tudi iz ukazne vrstice. V tem primeru se prek telneta ali protokola SSH prijavimo v usmerjevalnik in vnesemo:

nvram set jffs_mounted=1
nvram set enable_jffs2=1
nvram set sys_clean_jffs2=1
nvram commit

Na koncu ponovno zaženemo usmerjevalnik. Uspešnost svojega početja lahko preverimo po zagonu s prijavo v usmerjevalnik in z vnosom ukaza df. Ta nam mora izpisati, koliko prostora imamo na voljo v /jffs za svoje podvige. Če je informacija o zasedenosti 100 %, izvedete še en ponoven zagon. Če je informacija spet ista, ste nekje naredili napako. Pri aktiviranju JFFS smo na koncu vnesli ukaz nvram commit, s katerim smo nastavitve shranili v usmerjevalnikov (bliskovni) pomnilnik. Če na ta ukaz pozabimo, usmerjevalnik ob izklopu te nastavitve izgubi. Datotečni sistem JFFS lahko uporabimo za namestitev lastnih paketov oziroma shranjevanje ustreznih nastavitev usmerjevalnika.

Link Logger ima tudi zmogljivo statistiko.

PAKETI
Čeprav lahko uporabnik sam pripravi določene pakete za namestitev v usmerjevalnik, večina verjetno ne bo izbrala te možnosti. Razlog je preprost: najzanimivejši paketi so že pripravljeni in optimirani za delovanje v našem okolju. Delu s paketi je namenjen ipkg, do katerega lahko dostopamo neposredno iz ukazne vrstice ali posredno prek spletnega vmesnika posamezne distribucije (npr. OpenWRT – www.openwrt.org). Paketi za posamezne distribucije niso enaki, načeloma pa velja, da je večina paketov OpenWRT na voljo tudi za DD_WRT. Ko se odločimo za namestitev paketov, to storimo z ukazom ipkg install ime_paketa. Pakete posodobimo z ukazom ipkg upgrade. Če ne vemo, kateri paketi so na voljo, nam ukaz ipkg update osveži seznam možnih paketov. Izpis teh pa dobimo z ukazom ipkg list. Če želimo izvedeti, katere datoteke pripadajo določenemu paketu, dobimo njihov izpis z ukazom ipkg files ime_paketa. Če nam določen paket ne ustreza ali ga ne potrebujemo več, ga odstranimo z ukazom ipkg remove ime_paketa.
Razmeroma majhen prostor, ki ga imamo na voljo, pa nas hitro pripelje do tega, da nam ne zadošča. Uporabniki se zato odločajo za različne rešitve. Spretnejši na tiskano vezje prispajkajo kartico SD/MMC in jo uporabljajo kot dodaten disk, drugi se odločajo za konkurenčne modele (npr. Asus WL-500g), ki ponujajo USB-vmesnik, na katerega lahko dodamo USB-ključek v vlogi diska. Tretja preprosta možnost pa je, da sami ročno (ipkg install samba) ali prek zmogljivejše distribucije namestimo odjemalec Samba. V DD-WRT ga najdemo v meniju Administration. Samba nam omogoča, da WRT54GL prek omrežja uporablja imenik v skupni rabi, in sicer kot »lastni« datotečni sistem.

Tudi brezplačni Flow Collector ni od muh

Povečanje prostora v praksi
Poglejmo si primer, ko imamo v strežniku z IP.naslovom 192.168.200.1 imenik Share v skupni rabi in ima do njega dostop uporabnik »mojmikro« z geslom 123. Pri točki priklopa ne smemo pozabiti, da imajo samo določeni imeniki pravico pisanja, in sicer /jffs, /tmp in /dev. Podatke vpišemo v usmerjevalnikov spletni vmesnik pod Administration – Management − Samba FS Automount.
Ročen priklop izvedemo v imenik /tmp/ ali v podimenik z ukazom

smbmount //192.168.200.1 /tmp/Linksys -o username=mojmikro, password=123

Če imenika Linksys še nismo imeli, ga pred opisanim ukazom naredimo z

mkdir /tmp/Linksys.

Imenika v skupni rabi odklopimo iz usmerjevalnika z ukazom

umount /tmp/Linksys.

Tako lahko tudi pri manj zmogljivih modelih usmerjevalnikov zagotovimo potreben prostor za namestitev poljubnega števila želenih paketov. Vseeno pa moramo ostati v razumnih mejah, saj še vedno ostaja omejitev pri delovnem pomnilniku usmerjevalnika in procesorski moči. Seznam že pripravljenih paketov pa je nadvse bogat. Od podpore usmerjevalniški funkcionalnosti pa vse do Asteriska (sistem VoIP PBX).

VIRTUALNE POVEZAVE

V današnjem času so izredno priljubljena tako imenovana navidezna zasebna omrežja (Virtual Private Network − VPNU, ki omogočajo, da uporabnik prek javnega omrežja zagotovi zasebnost povezave z oddaljeno lokacijo. Ena od večjih dodanih vrednosti nadgradnje usmerjevalnika je tudi ta, da z nadgradnjo pridobimo različne možnosti povezav VPN. Originalna strojnoprogramska oprema ponuja le prepuščanje (passthrough), ne pa prave funkcionalnosti. V našem primeru si bomo ogledali dve najpreprostejši.
Pri uporabi protokola PPTP (Point to Point Tunneling Protocol) si bomo ogledali najprej možnost uporabe WRT54GL v vlogi PPTP s VPN- strežnika. Preko grafičnega vmesnika ga aktiviramo z Administration – Services – PPTP server – Enable in shranimo nastavitve. Po osvežitvi zaslona se nam pod nastavitvami odprejo strežniške nastavitve. V polje Server IP vpišemo (WAN oz. javni ) IP-naslov (npr. 193.77.34.39) ali pa ime strežnika (npr. marko.homelinux.net). V polje Client IP(s) vpišemo interne IP-naslove (npr. 192.168.200.100-105), ki morajo biti znotraj naslovnega prostora krajevnega omrežja, vendar še ne smejo biti zasedeni z uporabniki ali biti v okviru naslovnega prostora strežnika DHCP. Uporabnike skupaj z uporabniškimi imeni vpišemo v naslednji obliki: (vsak uporabnik v svojo vrstico)

uporabnik * geslo *.

Ne smemo pozabiti niti na nastavitev požarnega zidu. Omogočiti moramo prepustnost za protokol PPTP (Security – VPN – PPTP Passthrough - Enable).

Nastavitve strežnika PPTP lahko preverimo tudi iz ukazne vrstice z ukazom

nvram show | grep pptpd

ali pa z urejevalnikom vi v imeniku /tmp/pptpd, odpremo datoteke chap-secrets, options.pptpd in pptpd.conf.
Na strani odjemalca moramo pripraviti le še povezavo VPN, nato pa se lahko prek te prijavimo v oddaljeno omrežje.

Če imamo dve podobni napravi (na primer usmerjevalnika, v katera je nameščen DD-WRT) in ju želimo povezati, lahko naredimo korak naprej. V tem primeru obe napravi hkrati definiramo kot PPTP-strežnik in PPTP-odjemalec. Prva naprava je PPTP-strežnik za drugo napravo, hkrati pa sama dostopa kot o PPTP-djemalec do druge naprave. Podobno pa je druga naprava PPTP-strežnik za prvo napravo in PPTP-odjemalec dostopa do prve. V praksi zadeva deluje dobro, natančnejši opis najdete na spletni strani www.dd-wrt.com/wiki/index.php/Point-to-Point_PPTP_Tunneling_with_two_DD-.... Opozoriti velja le na to, da pri tovrstni konfiguraciji ne uporabljajte trenutno aktualne različice v23SP2, saj ta ne deluje tako, kot bi morala. Sam sem to ugotovil šele po dobrem dnevu tuhtanja in iskanja napake. Ja saj vem, Google lahko prihrani precej dragocenega časa ...

Preprosto do podatkov o omrežju − ntop

POCENI ALTERNATIVA
Druga zanimiva možnost je uporaba paketa OpenVPN (http://openvpn.net). Uporabili ga bomo kot alternativo tunelu IPSec med usmerjevalniki oziroma dvema omrežjema. O možnostih OpenVPN-a smo v preteklosti že pisali, zato si oglejmo konkreten testni primer. V usmerjevalnik nismo namestili različice DD-WRT VPN, temveč okrnjeno različico OpenWRT. Tako smo pridobili JFFS, ki smo ga potrebovali za shranitev konfiguracije (in ključev). Ročno smo namestili še paket openvpn.

Vmesnike WAN obeh usmerjevalnikov vmo priključili v krajevno omrežje (IP-naslovni prostor 192.168.200.x), s katerim smo simulirali javni internet. Preko protokola DHCP sta bila usmerjevalnikoma dodeljena naslova 192.168.200.201 oziroma 192.168.200.203. Za prvim usmerjevalnikom smo imeli prek sistema NAT skrito omrežje 192.168.2.0, za drugim pa omrežje 192.168.1.0. Usmerjevalnikoma smo dodelili prvi IP-naslov omrežja – 192.168.2.1 oziroma 192.168.1.1. Zaradi različnih naslovov krajevnih omrežij smo uporabili tako imenovani usmerjeni (routed) način (način premostitve, oz. bridged, bi bil, če bi uporabljali/delili isti naslovni prostor na obeh straneh).
V prvem usmerjevalniku (OpenWRT1) najprej ustvarimo potrebni ključ, ki ga bomo shranili v datoteko pod imenom static.key v /jffs. To storimo z ukazom

openvpn --genkey --secret /jffs/static.key

Ta ključ bomo potrebovali na obeh usmerjevalnikih, zato vsebino datoteke odpremo z urejevalnikom vi ali ukazom cat

cat /jffs/static.key (da nam izpis, podoben spodnjemu)

Ukaz nam izpiše datoteko static.key, vsebino pa prenesemo v drug usmerjevalnik (OpenWRT2):

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
f410e1efd3e840f461577d31b9d3d9f7
9bea00f0b553bebfd96f8c4fd021f428
3f85029ad09ea6368ca0976dda5aa598
52325553d1f2b5dbe4f6a2ac74fdda5f
be2112e45cc02cd7c7c569cee379098f
2f5184bf9f32184cfde74a92c2c7482b
81a62c90df12cc5b6921085bbab3b759
a76556908c2e1809eba4a1c47eb794ee
1ba23e2fae9f5bb663874e6ade6552b1
008aaf1ef5219c5537cd9ada2d15774c
96edaffa10cd3a2cebebe9e8ea434977
c236adc97a239aeea0e4d9622d544884
d7017dec48a7d918b3b55de75e669228
f33e2356891c85b02a31ba1b8b45c3f9
37dc5ea3dc7b717491e1b88a63e1571e
d155da85478a385913d82e5b9a568235
-----END OpenVPN Static key V1-----

V obeh usmerjevalnikih moramo spremeniti še pravice glede uporabe datoteke static.key
chmod 700 /jffs/static.key

Za lažje delo naredimo še skriptno datoteko z imenom vpnscript, ki poskrbi za aktiviranje povezave VPN ter potrebne parametre.To storimo z ukazom

vi /jffs/vpnscript

in vnosom naslednjih vrstic:

cp /usr/sbin/openvpn /tmp/vpndoma
iptables -I INPUT 2 -p udp --dport 1194 -j ACCEPT
/tmp/vpndoma --mktun --dev tun0
ifconfig tun0 10.0.0.1 netmask 255.255.255.252 promisc up
route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.2
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
/tmp/vpndoma --dev tun0 --secret /jffs/static.key --comp-lzo --port 1194 --proto udp --verb 3

V drugem usmerjevalniku je datoteka vpnscript podobna:

cp /usr/sbin/openvpn /tmp/vpndoma
iptables -I INPUT 2 -p udp --dport 1194 -j ACCEPT
/tmp/vpndoma --mktun --dev tun0
ifconfig tun0 10.0.0.2 netmask 255.255.255.252 promisc up
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
/tmp/vpndoma --dev tun0 --secret /jffs/static.key --comp-lzo --port 1194 --proto udp --verb 3 --remote 192.168.200.203

Ko je povezava prek programa OpenVPN aktivna, lahko uporabnik iz enega omrežja dostopa transparentno v drugega. Prav tako sta prek pinga vidna tudi oba uporabljena naslova VPN-tunela 10.0.0.1 oziroma 10.0.0.2.
Če želimo, da se povezava OpenVPN aktivira samodejno ob zagonu usmerjevalnika, lahko to datoteko pokličemo iz datoteke *.startup. Datoteke s končnico startup se zaženejo samodejno ob zagonu sistema in jih shranimo v imeniku /jffs/etc/config.

Hiter dostop do izpisa obiskanih strani

VEČ INFORMACIJ

Prilagojeni usmerjevalnik poleg novih možnosti ponuja tudi preprost dostop do več informacij. S pomočjo dodatne programske opreme v osebnem računalniku lahko dobimo precej koristnih informacij. Uporabnik lahko izbira med različnimi komercialnimi in brezplačnimi izdelki. Med najbolj znane komercialne izdelke sodi Link Logger (www.linklogger.com/).
Usmerjevalnik pripravimo za delo tako, da aktiviramo možnost zajemanja (Administration – Log − Enable). Stopnjo nastavimo na najvišjo vrednost (high), vse pripadajoče možnosti pa vključimo. V servisnem meniju (Administration − Services) nato vpišemo IP-naslov računalnika, v katerem imamo nameščen Link Logger, ki mu bo syslog pošiljal podatke. Računalniku z Link Loggerjem omogočimo začetek pridobivanja podatkov o prometu takoj po njegovem zagonu. Poleg nadzora nad prometom usmerjevalnika nam Link Logger ponuja tudi različne statistične informacije. Hitro lahko najdemo najpogosteje obiskane strani, rekorderje glede prometa, deleže posameznih protokolov ...

BREZPLAČNA ORODJA

Komur komercialni Link Logger »ne diši«, lahko poseže po drugih orodjih. S spletne strani www.dd-wrt.com/dd-wrtv2/rflow.php lahko prenesemo program RFlow Collector. Ko vse datoteke namestimo v novem imeniku, program poženemo z datoteko Rflowcollector.exe in izberemo možnost Network. Za omrežje 192.168.1.0 vpišemo le omrežni del (192.168.1) in shranimo nastavitve. Prek grafičnega vmesnika DD-WRT v meniju Administration - Services − Rflow omogočimo Rflow in MACupd. Pod oba naslova vpišemo računalnik, v katerem imamo nameščen RFlow Collector (v našem primeru 192.168.1.2). Če v RFlow Collectorju vrednosti vrat nismo spreminjali, ostanejo tudi tu vrednosti nespremenjene. Tudi s tem programom lahko dobimo precej informacij (sicer res ne toliko kot pri Link Loggerju) zato bo verjetno marsikdo posegel po njem.
Druga zanimiva možnost je namestitev programa NTop-XTRA (www.openxtra.co.uk/freestuff/ntop-xtra.php). Ta je prava zakladnica statističnih informacij, ki jih prikazuje v obliki grafikonov in tabel. S prikazom določenih možnosti lahko na »gledalce« naredimo globok vtis. Po mojem mnenju je v določenih pogledih celo boljši kot Link Logger. Res pa je, da nima podprtih vseh funkcionalnosti tekmeca, kot je opozarjanje prek zvočnega signala ali elektronske pošte glede na postavljene kriterije.

ZA KONEC

Možnosti za nadgradnjo je, kot smo lahko spoznali, precej (opisal sem le majhen del). Orientirali smo se predvsem na DD-WRT, ki brez posebnega truda ponuja precej (tudi slovenski uporabniški vmesnik) ter OpenWRT, ki ga odlikuje precejšna fleksibilnost. Obstajajo seveda tudi druge možnosti (http://xwrt.berlios.de/xwrt.asp, www.freewrt.org ...), ki se bolj ali manj spogledujejo z omenjenima. Jasno pa je, da gredo razvijalci včasih tudi popolnoma svojo pot in razvijajo pakete po svojih potrebah in v skladu s svojo vizijo. Prav zato lahko najdemo tudi pakete, ki niti od daleč nimajo »zveze« z usmerjevalniki. Glavni razlog je, da lahko usmerjevalnik WRT54GL uporabimo kot poceni (majhno in neslišno) nadomestilo za računalniško strojno opremo.
Ne glede na to, ali se boste odločili za programsko nadgradnjo usmerjevalnika ali ne, pa je pred nakupom vredno razmisliti, ali ni morda bolje odšteti nekaj evrov več za usmerjevalnik in izbrati takšnega, ki tako nadgradnjo omogoča, s tem pa zagotoviti odprta vrata v prihodnost. Linksysov WRT54GL seveda ni edina možnost.

Marko Koblar