DD-WRT tarkvara paigaldamine WRT54GL seadmele
Sissejuhatus
Linksys WRT54GL ruuter http://en.wikipedia.org/wiki/Linksys_WRT54G_series on suhteliselt odav nö kodus või väikekontoris kasutamiseks mõeldud ruuter, mida tavaliselt kasutatakse kas kohtvõrgu välisühenduse ruuterina või siis olemasoleva kohtvõrgu tulemüüri taga Wifi levi korraldamisek s. Käesolevas tekstis tutvustatakse WRT54GL seadme kasutamist DD-WRT http://en.wikipedia.org/wiki/DD-WRT tarkvaraga. DD-WRT on vaba tarkvara, mis võimaldab seda ruuterit kasutada mitmekesisemalt ja paindlikumalt kui Linksys originaaltarkvara.
Seadme nimi väljendab, et
- WRT - seade sisaldab Wireless Receiver/Transceiver komponenti
- 54 - seade võimaldab Wifi kiirusi kuni 54 Mbit/s
- G - seade toetab Wifi protokolli 802.11g (ja ka protokolli 802.11b)
- L - seade töötab Linux tarkvaraga
DD-WRT sisaldab erinevalt tootja WRT54GL tarkvarast muu hulgas selliseid võimalusi
- logimine võrgus töötavale logiserverisse
- Wi-viz abil kaardistada WRT ruuteri läheduses olevaid wifi seadmeid ja hinnata signaali kvaliteeti
- WPA2 + AES protokollide tugi
Käesolevas tekstis käsitletakse konktreetselt WRT54GL v. 1.1 seadet, mis kuulub nn tootja Broadcom SoC (system-on-chip) seadmete rühma. Lisaks saab DD-WRT tarkvaraga kasutada suurt hulka muid sama ja muude tootjate sarnaseid seadmeid. Käesolevat teksti ei tohiks kasutada ainsa ja lõpl iku allikana seadmega tegelemisel, see on mõeldud tutvustuseks ja olulisemate asjasse puutuvate tegevuste meelespeaks. Tundub, et 2011 aastal on kõige olulisemad materjalid
- Peacock thread - http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486
- DD-WRT wiki - http://www.dd-wrt.com/wiki/
Mõisted
- WAP - wireless access point
- WAN - wide area network
- LAN - local are network
- WLAN - wireless local area network
- BBS - basic service set
- IBBS - Independent Basic Service Set
- WDS - Wireless Distribution System
- SPI - stateful packet inspection
- TKIP - Temporal Key Integrity Protocol
- CCMP - Counter Mode with Cipher Block Chaining Message Authentication Code Protocol
- VAP - Virtual Access Points
- ESSID - Extended Service Set Identifier
- WRT - Wireless Receiver/Transceiver
- TNC connector - Threaded Neill-Concelman connector
- CFE - Common Firmware Environment
- STA - station
Tööpõhimõte
WRT54GL sisaldab endas kolme võrgulist komponenti
____ ____ ____ | | | | | | |____| |____| |____|
Wireless LAN WAN suheteliselt suvaline arv kliente neli porti üks port
dd-wrt tarkvara abil saab neid kolme mitmel erineval viisil omavahel kokku ühendades WRT seadet kasutada, näiteks ühendades WAN pordi LAN portide hulka. Levinud on sellised töörežiimid
- Client Mode - ruuter töötab mingi muu wifi AP kliendina ja ei ole ise oma kasutajate AP; eesmärgiks on ühendada AP ja client mode seadmete küljes olevatele lan portidele vastavad subnetid ruutimise abil kokku; client mode seadme juures saab kasutada ainult lan porte, st mitte wifi s
eadmeid; AP ja client mode seadmete lan portide seadmed asuvad erinevates subnettides
- Client Bridged - sarnane Client Mode'ile, aga AP ja client bridged seadme lan portide seadmed asuvad samas subnetis
- Repeater - ruuter töötab mingi muu AP kliendina ja on praktiliselt oma kasutajate jaoks AP; AP ja repeater seadme wifi kliendid on erinevates subnettides
- Repeater Bridge - sarnane Repeaterile, aga AP ja repeater bridge seadme wifi kliendid pordid asuvad samas subnetis
- WDS (Wireless Distribution System) - TODO
Cliend Mode/Bridge kasutusalaks on kahe arvutivõrgu, nt asutuse üksuse üksteisele nähtavaks tegemine juhtumil kus ei ole võimalik füüsilist ühendust kasutada. Repeater/RB ja WDS kasutusalaks on wifi leviala suurendamine.
WRT sees on kaks füüsilist võrguseadmet
- eth0 - LAN võrguliides
- eth1 - wifi WLAN võrguliides
WRT füüsilisi võrguseadmeid, WRT switchi füüsilisi porte ning loogilisi võrguseadmeid kujutab selline joonis
WAN P0 P1 P2 P3 WLAN
| | | | | \ | /
______|____|____|____|____|__ \|/
|____|____|____|____|____|____| |
| |
| |
eth0 eth1
vlan0, vlan1, ... wl0.1, wl0.2, ...
br0 (vlan0, vlan1, eth1)
kus
- võib ette kujutada, et WRT seadmes on kasutusel kuue pordiline switch, mille viis porti on toodud välja korpusele ja mille kuues port on kasutusel sisemiselt ning millega on ühendatud üks WRT arvuti võrguseade
- switchi porte on võimalik kasutada nii nö mode access kui ka tagged režiimis
- pordid 3 ja 4 võtta kasutusele link aggregeeritult
- seadme sees saab moodustada sildu, nt br0 selliste komponentidega
- eth0 võrguseadmele saab moodustada vlan seadmeid
Tarkvara
WRT54GL seadmes on kasutusel kolm tarkvaralist komponenti
- CFE alglaadur
- nvram
- dd-wrt tuum
Wifi ruuteri ettevalmistamine
Esmalt tuleb teha kindlaks
- milline füüsiline ruuter on kasutada, nt WRT54GL v. 1.1, http://en.wikipedia.org/wiki/Linksys_WRT54G_series
- mis tarkvara seal peal parasjagu töötab (Linksys originaal, mõni teine alternatiivne tarkvara (nt Tomato) või mõni DD-WRT versioon)
Erinevad WRT54G* mudelid erinevad muu hulgas kasutada oleva mälu ja flash andmekandja mahu osas, protsessori mudeli ja kiiruse poolest jne.
Tarkvara paigaldamine
dd-wrt tarkvara valimine
Kasutaja saab kopeerida üsna erinevalt ettevalmistatud dd-wrt tarkvara (ingl. k. build)
- millal on tarkvara kompileeritud, nt 10/10/09
- kes on tarkvara kompileerinud, tavaliselt EKO või BrainSlayer
- millise riistvara jaoks on tarkvara kompileeritud (nt broadcom)
- kas tarkvara töötab v. 2.4 või v. 2.6 Linux tuumaga
- kas tarkvara töötab vana (VINT), uue (NEWD) või väga uue (NEWD2) wifi draiveriga
- kui palju programme tarkvara sisaldab (micro, mini, nokaid, standard, vpn, mega jt)
- kas tegu on generic või nn trailed buildiga (trailed build on mõeldud spetsiifilisteks juhtumiteks, üldiselt peaks sobima kasutada generic build)
Tarkvara valikul on oluline jälgida
- kas toimub originaalse LinkSys tarkvara vahetamine dd-wrt vastu või olemasoleva dd-wrt ühe buildi asendamine teisega
30-30-30 reset
Mitmetel juhtumitel on oluline teha nn 30-30-30 reset, mille käigus algväärtustatakse ruuteri seadistused, kusjuures seadmele paigaldatud tarkvara (sh dd-wrt) selle käigus iseenesest ei muutu, st see ei kustu, asendu ega lisandu
- algseisuks on töötav toitega ühendatud ruuter
- ruuteri taga asuv Reset nupp vajutatakse alla ja hoitakse all 30 sekundit
- Reset nuppu all hoides eemaldatakse 30 sekundiks toitekaabel
- Reset nuppu all hoides ühendatakse toitekaabel tagasi ja hoitakse all järgmised 30 sekundit
Seega kokku tuleb Reset nuppu all hoida järjest ja 90 sekundit. Protseduuri ajal ruuteri toite indikaatori tuli põleb, kustub, süttib ja vilgub mitmel korral. Tulemusena peab saama arvutist pöörduda haldusliidese poole aadressil http://192.168.1.1/ ning palutakse kirjeldada uus kasutajanimi ja parool.
Linksys tarkvara asendamine dd-wrt tarkvaraga
Üldiselt toimub Linksys originaal tarkvara asendamine sobiva DD-WRT tarkvaraga kahe sammuna
- Linksys asendatakse DD-WRT mini versiooniga nii nagu kirjeldatud tekstis http://www.dd-wrt.com/wiki/index.php/Linksys_WRT54GL
- DD-WRT mini asendatakse meelepärase DD-WRT versiooniga nii nagu kirjeldatud peacock threadis http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486
Tundub, et üks konkreetne viis on kasutada sellist tarkvara
# md5sum dd-wrt.v24-12548_NEWD_mini.bin dd-wrt.v24_std_generic.bin f524a31f8e0b53217369802959309c89 dd-wrt.v24-12548_NEWD_mini.bin c0a34c0e97742a1bb6b165a640a384b9 dd-wrt.v24_std_generic.bin (v24-sp2 (08/12/10) std, svn rev 14929)
DD-WRT tarkvara asendamine Linksys originaal firmwarega
Linksys veebikohast, nt adressilt http://support.linksys.com/en-us/support/routers/WRT54GL saab kopeerida WRT54GL v. 1.0 või v. 1.1 seadme originaal firmware. Selle saab laadida sobiva protseduuriga dd-wrt haldusliidesest. See võib olla vajalik nt ühe alternatiivse tarkvara asemel teisega katsetamiseks, st tavaliselt eeldab alternatiivne tarkvara, et lähtepunktiks on Linksys enda tarkvaraga töötav seade.
Mõne muu wrt54gl seadmele mõeldud firmwarega töötamine
- Nt Tomato asendamiseks DD-WRT firmwarega soovitatakse algul juurutada Linksys originaal firmware ja seejärel jätkata nö nagu tavaliselt.
dd-wrt tarkvara asendamine teise dd-wrt buildiga
dd-wrt tarkvara teise dd-wrt buildiga asendama õpetab nn Peacock thread, protseduur on selline
- seadistada nn haldusarvutile, nt töökohaarvuti operatsioonisüsteemi ip aadressiks WRT seadme vaikeaadressiga samast võrgust üks aadress, nt 192.168.1.8
- eemaldada ruuterilt etherneti kaablid
- teha ruuterile 30-30-30 reset ning vahetada veebiliideses kasutajanimi ja parool
- ruuteri veebiliidese abil uuendada dd-wrt tarkvara
- oodata vähemalt kolm minutit kuni ruuter on sisemised tegevused sooritab, lõpuks peavad põlema tuleb paneelil nö tavapäraselt
- teha ruuterile voolukatkestus, st eemaldada toide 30 sekundiks
- oodata kuni ruuter uuesti käivitub, nii paari minutiga
- teha ruuterile veelkord 30-30-30 reset ning vahetada veebiliideses kasutajanimi ja parool
- mitte kasutada seadistuste varundust ja seadistada ruuter uuesti käsitsi
- ühendada ruuterile tagasi etherneti kaablid
Tulemusena on seade kasutamiseks ettevalmistatud.
Wifi liikluse analüüs
- DA - destination address
- SA - source address
- BSSID -
kus nö tavalisele ethernetiga võrreldes on asendunud üks kiht ja lisandunud üks kiht
- Ethernet II -> IEEE 802.11
- LLC
Antenn
Vahel saab Wifi seadmele ühendada olemasoleva antenni asemele mõni muu antenni, tavaliselt eesmärgida parandada väljastatava signaali tugevust ja tundlikkust vastuvõetavale signaalile. Reeglina antenn iseenesest ei genereeri signaali, vaid muudab sisend-signaali vastuvõtja jaoks tugevamaks suunates signaali täpsemalt. Selliste antennide võimendustegur on tavaliselt 5 - 25 dBi. dBi mõõtühikutes väljendatud antenni võimendustegur näitab, kui palju kordi on suunatud antenni kiirgusvõimsus mingis suunas suurem kui oleks isotroopse st kõigis suundades võrdselt kiirgava antenni kiirgusvõimsus selles suunas.
Varundamine
Bootloader
Bootloaderi varundamiseks sobib bootloader kopeerida aadressilt
http://router_ip/backup/cfe.bin
Seejuures tuleb arvestada, et igal seadme eksemplaril on oma unikaalne bootloader (mac aadressi jms sisaldamise tõttu).
nvram
TODO
dd-wrt tõmmis
Tundub, et süsteemis parasjagu töötavast dd-wrt tarkvarast (st kernelist ehk tõmmisest mis vastab viimasti flashimisel kasutatud .bin failile) saab teha koopia JTAG tehnika abil.
tcpdump paigaldamine ja kasutamine
Vaikimisi DD-WRT generic std tarvkara ei sisalda tcpdump programmi. Üks võimalus tcpdump kasutamiseks on
- paigaldada nokaid tarkvara, millel on samaaegselt JFFS ja CIFS tugi (nt std variandil CIFS on, aga JFFS puudub)
- ühendada võrgust külge CIFS st Samba serveri ressurss
- paigaldada paketihaldusest libpcap teek ja tcpdump programm
Seejärel peale sisselogimist paistab selline pilt
root@DD-WRT:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 2816 2816 0 100% / /dev/mtdblock/4 128 128 0 100% /jffs //192.168.10.10/wrt 37156416 29271984 7884432 79% /tmp/smbshare
Paigaldamiseks sobib öelda
# mkdir -p /tmp/smbshare/tmp/ipkg # cd /tmp/smbshare/tmp/ipkg # wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk # ipkg -d smbfs install libpcap_0.9.4-1_mipsel.ipk # wget http://downloads.openwrt.org/whiterussian/packages/tcpdump_3.9.4-1_mipsel.ipk # ipkg -d smbfs install tcpdump_3.9.4-1_mipsel.ipk # LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/tmp/smbshare/usr/lib" # PATH="$PATH:/tmp/smbshare/usr/sbin"
Seejärel saab tcpdump programmi kasutada suhteliselt tavalisel viisil, sh salvestada smbfs peale kogutud andmeid, et neid mujal analüüsida. Vajadusel saab nimeserverit muuda öeldes GUI keskkonnas
echo nameserver 10.192.0.53 > /etc/resolv.conf
Kasulikud lisamaterjalid
- http://www.dd-wrt.com/phpBB2/viewtopic.php?p=407287
- http://www.dd-wrt.com/wiki/index.php/JFFS
- http://phoar.com/?p=140
Märkused
- WRT54GL ruuteri kasutamisel ei ole vaja tegeleda seadme CFE bootloaderi asendamisega, st mingit *kill* nimelist rakendust ei ole vaja kasutada.
- kui ruuter pingib ttl=100 väärtusega, siis ei ole tuum käivitunud, vastab cfe (tuum vastab ttl=64)
- Linksys originaal tarkvara resetiks tuleb Reset nuppu hoida all 30 sekundit
Alternatiivid
- http://en.wikipedia.org/wiki/List_of_wireless_router_firmware_projects
- http://www.easytomato.org/
- http://tomatousb.org/
- http://www.polarcloud.com/tomato
- https://openwrt.org/
