Linux alapú firmware-t futtató router használata otthoni és KKV környezetben



Hasonló dokumentumok
Fábián Zoltán Hálózatok elmélet

X. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK. Mérési utasítás

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Opensuse automatikus telepítése

IPv6 alapú otthoni LAN hálózat kialakítása

WLAN router telepítési segédlete

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

WLAN router telepítési segédlete

WLAN router telepítési segédlete

Netis Vezetékes ADSL2+, N Modem Router Gyors Telepítési Útmutató

Netis vezeték nélküli, N típusú, router

WLAN router telepítési segédlete

Gyors üzembe helyezési kézikönyv

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

6.2. TMS320C64x és TMS320C67xx DSP használata

Gyors telepítési kézikönyv

Netis vezeték nélküli, N típusú Router Gyors Telepítési Útmutató

Forgalmi grafikák és statisztika MRTG-vel

Biztonságos wireless megoldás OpenWRT alapokon

ROUTER beállítás otthon

MS Windows XP Professional SP2 telepítés virtuális gépre.

Magyar Gyors felhasználói útmutató A GW-7100PCI driver telepítése Windows 98, ME, 2000 és XP operációs rendszerek alatt

Amennyiben argumentumként megadunk egy interfész nevet, úgy csak a megadott interfészt fogja kilistázni.

Gyors Telepítési Útmutató N típusú, Vezeték Nélküli, ADSL2+ Modem DL-4305, DL-4305D

Az alábbi állítások közül melyek a forgalomirányító feladatai és előnyei?

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

FELHASZNÁLÓI KÉZIKÖNYV. WF-2322 Vezetéknélküli Hozzéférési Pont

Hálózati architektúrák laborgyakorlat


Vodafone HomeNet Huawei B315

Hálózatok építése és üzemeltetése

TI TMDSEVM6472 rövid bemutatása

Testnevelési Egyetem VPN beállítása és használata

A telepítési útmutató tartalma

Debian mint Desktop Operációs rendszer

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

3G185 router Li-ion akkumulátor Usb kábel Telepítési útmutató.

G Data MasterAdmin 9 0 _ 09 _ _ # r_ e p a P ch e T 1

GIRO GSM MODEM/VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

III. előadás. Kovács Róbert

Kommunikációs rendszerek programozása. Switch-ek

Linux fájlrendszerek. Papp Zsolt. Rendszermérnök, Novell PSH.

A telepítés nyelvének kiválasztása

Cisco Catalyst 3500XL switch segédlet

Hálózatok építése és üzemeltetése

A készülék fő egységei X1 X1 (kizárólag vezeték nélküli kamera esetében X1 X1 X1 X1 X1

BaBér bérügyviteli rendszer telepítési segédlete év

DI-604 Express Ethernetwork Szélessávú Router. Ethernet (CAT5 UTP/Egyenes) kábel. 5V 2A váltóáram adapter

300 Mbps vezetékmentes szélessávú router BR 6428nS Gyors telepítési útmutató 1.0 s változat/2010 október

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

IP150 frissítés 4.20-ra

Hálózatok építése és üzemeltetése

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

ClusterGrid for Windows

ÜGYVÉDI IRODA Telepítési útmutató

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Előadás témája: DVR-ek és hálózati beállításuk Szentandrási-Szabó Attila Műszaki és kereskedelmi igazgató

Médiatár. Rövid felhasználói kézikönyv

M2M Pro3 450MHz LTE Telepítési útmutató - kivonat

Gyors telepítési útmutató AC1200 Gigabit kétsávos WLAN hatótávnövelő

NVR-7308P8-H2 NVR-7316P8-H2 NVR-7524P8-H4

Oktatási cloud használata

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Gyorsindítási útmutató

1.2. NFS kliens telepítése és beállítása

S, mint secure. Nagy Attila Gábor Wildom Kft.

LINUX Hálózat beállítása. Forrás:

DWL-G650+ AirPlus G+ 2,4GHz Vezeték

IPv6 Elmélet és gyakorlat

ALKALMAZÁSOK ISMERTETÉSE

Ha a parancs argumentuma egy interfész, akkor csak a megadott interfészt beállításait jeleníti meg.

DSL Internet telepítése opensuse-ra (Tesztelve: opensuse 10.0-tól 10.3-ig)

C2000 Manager 1.02 Verzió Használati Utasítás

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz

lizengo használati utasítás A Windows egy USB stick-re való másolása

Általános rendszergazda Általános rendszergazda

Az alábbi útmutató ahhoz nyújt segítséget, hogy hogyan üzemelje be a TP-Link TL-WR740N eszközt.

Tisztelt Telepítő! 2. Ellenőrizze, hogy a modul engedélyezve van-e: Szekció [382] Opció 5 (alternatív kommunikátor) BE.

Debian mint Desktop Operációs rendszer

NHDR-3104AHD-II NHDR-3108AHD-II NHDR-3116AHD-II NHDR-5004AHD-II NHDR-5008AHD-II NHDR-5016AHD-II NHDR-5204AHD NHDR-5208AHD. Telepítői Segédlet

Windows XP. és Ubuntu. mi a különbség? Mátó Péter <mato.peter@fsf.hu> Windows XP vs Ubuntu Mátó Péter <mato.peter@fsf.

HÁLÓZATI ISMERETEK GNS 3

(1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power)

Rövid telepítési útmutató

PTPi adatgyűjtő V1.5

DI-624+ AirPlus G+ 2,4GHz

Gyakorlati vizsgatevékenység. Graf Iskola

Telenor Webiroda. Kezdő lépések

Avemia IP és Hibrid rögzítők beüzemelése

Tájékoztató a Budapesti Gazdasági Főiskolán üzemelő vezeték nélküli (WiFi) hálózat használatához

Fábián Zoltán Hálózatok elmélet

Mikrotik 6.22 telepítés

Gyors üzembe helyezés

Felhő alapú hálózatok (VITMMA02) OpenStack Neutron Networking

Gyors Indítási Útmutató

Átírás:

DUNAÚJVÁROSI FŐISKOLA INFORMATIKAI INTÉZET Linux alapú firmware-t futtató router használata otthoni és KKV környezetben Szerző: Kovács Dávid Konzulensek: Hadarics Kálmán, Leitold Ferenc 2012

Tartalomjegyzék Absztrakt... 3 Bevezető... 4 1. Történelem... 5 1.1. HyperWRT... 5 1.2. OpenWRT... 5 2. TP-Link 1043nd... 6 2.1. WiFi... 6 2.2. Gombok... 6 2.3. Csatlakozók... 6 3. Az OpenWRT bemutatása... 7 3.1. Flash felépítés... 9 3.2. Boot... 10 3.2.1. Rendszerbetöltő... 10 3.2.2. Kernel... 10 3.2.3. Init... 10 3.2.4. Alapértelmezett rc scriptek... 10 3.3. Leállás... 11 3.4. A közösség... 11 4. Saját OpenWRT firmware fordítása... 12 4.1. Alapbeállítások visszaállítása, más beállítások betöltése... 14 5. Az OpenWRT beállítása... 15 5.1. Hálózati beállítások... 16 5.2. Csomagkezelő... 16 5.3. Webes felület telepítése... 16 5.4. Wifi beállítása... 17 5.5. Fájlrendszerek használata... 17 5.6. Helyreállítás... 18 6. Átviteli sebesség a hálózaton... 19 6.1. Közös VLAN... 20 6.2. Külön VLAN... 22 6.2.1. Grafikonok... 24 7. Számítási kapacitás... 26 8. VPN megoldások... 27 1

8.1. PPTP... 27 8.2. IPsec... 27 8.3. Cisco VPN... 27 8.4. OpenVPN... 27 9. OpenVPN... 28 9.1. TUN... 28 9.2. TAP... 28 9.3. Telepítés OpenWRT-n... 29 9.4. Statikus kulcs... 30 9.5. TLS használata... 31 9.6. Két hálózat összekötése... 32 9.7. Roadwarrior... 33 9.7.1. A bridge törlése... 35 Végszó... 36 Irodalomjegyzék... 37 2

Absztrakt A dolgozat célja bemutatni, hogy mennyire sokrétűen használható egy otthoni vagy kisvállalati router, hogyan bővíthető olyan funkciókkal, melyekre a gyári szoftverrel nem, vagy csak korlátozottan képes. Ezen eszközök rengeteg módon használhatók fel kisvállalati környezetben is, mivel bővíthetőek, biztonságossá tehetők. Ennek egy megoldása kerül bemutatásra Linux alapokon. A Linux alapú firmware-k történeleme elsődlegesen a Linksys WRT54G routerekre vezethető vissza. Ezek operációs rendszere Linux alapú. Az OpenWRT egy olyan disztribúció, amely ehhez hasonló megoldást kínál. A munkaeszközöm egy TP-Link 1043nd típusú router, erre telepítem az OpenWRT firmware 10.03.1-es Backfire verzióját. Ezt követően ismertetem, hogy miként kell saját firmware-t építeni és fordítani, személyre szabva a telepítendő programokat. Megmutatom a firmware hálózati beállításait, csomagkezelőjét, az USB port lehetőségeit. Sebességteszteket végzek, melyekből kiderül az, mire képes a router és firmware kombinációja különböző adatátviteli protokollokat használva teszt környezetben. OpenSSL tesztekkel megvizsgálom az eszköz számítási kapacitását. Ezen teszteredmények segítik egy vállalati infrastruktúra OpenWRT alapokon történő tervezését. Egy cég életében kiemelten fontos a biztonság, ezért VPN lehetőséggel is bővítem a routert. Erre az OpenVPN nevű nyílt forrású megoldást használom fel. Itt bemutatom a népszerűbb VPN használati eseteket, úgymint távoli hozzáférés biztosítása belső hálózatba, road warrior beállítás, két telephely hálózatának összekötése interneten keresztül. 3

Bevezető Kisvállalatok hálózati infrastruktúrájának tervezésekor több szempontot is szem előtt kell tartanunk. Az egyik, hogy korlátozott a költségvetés, ezért nem használhatunk egy nagyvállalati routert, ráadásul nem feltétlenül kell a rengeteg funkció, amit egy komoly eszköz tud. Valahol meg kell húznunk egy határvonalat, ha viszont olcsó routert választunk, a gyári szoftveréből hiányozhatnak biztonsági, kényelmi, tűzfallal kapcsolatos funkciók. A középút valamilyen közepes árú és tudású router, viszont így még mindig nem integrálhatjuk bele a saját megoldásainkat. Erre szeretnék egy megoldást nyújtani a nyílt forrású szoftverek segítségével. A dolgozat témájául ezért a Linux alapú OpenWRT firmware-t választottam, melyet egy népszerű és olcsó routerre telepítek. Ennek segítségével mutatom meg, hogyan szabhatjuk személyre, illetve vállalatra az olcsó, Linux által támogatott routereket. A rendszergazdáknak ezzel könnyebbé válik egy kisvállalati hálózat megtervezése, és tisztában lesz azzal, hogy mely célokra elégséges egy ilyen router. 4

1. Történelem A Linksys cég 2002 decemberében kiadta a WRT54G típusú routert, mely szoftvere nyílt forráskódú (GNU GPL licenc alá tartozó) komponenseket tartalmazott. Mivel a GPL licenc megköveteli a forrás megnyitását, a közösség ezért nyomást gyakorolt a cégre, az pedig engedett, és nyilvánossá tette a WRT54G router firmware-ét. Ezzel a szoftverfejlesztők, rendszergazdák, kísérletezők, hobbi Linuxosok hatalmas segítséget kaptak a beágyazott eszközökre való fejlesztéshez. A cég a WRT54G vonalon később Linux helyett VxWorks-re váltott az 5.0-s változatban. 1.1. HyperWRT A HyperWRT projekt célja az volt, hogy bővítsék a WRT54G routerek képességeit, közben pedig minél közelebb maradjanak az eredeti, hivatalos forráshoz. A Linksys routerének későbbi változatai (2006- tól kezdve) már nem Linux alapon működtek, ezért ezekkel már nem kompatibilis. A Linksys a harmadik féltől származó firmware-ek futtatására kiadta a WRT54GL router típust. Később ez a projekt lett a Tomato. 1.2. OpenWRT Az OpenWRT egy Linux alapú disztribúció beágyazott rendszerekre. A fejlesztők rengeteget tanultak a Linksys rendszerénél használt ötletekből. Ezt a firmware-t főleg routerekben alkalmazzák, de robotoknál, VoIP rendszereknél, céges irányítási rendszereknél, intelligens otthon megoldásoknál is használható. Ennek oka, hogy a mérete kicsi, a rá telepíthető programokat úgy fordították és csomagolták, hogy minél kisebb helyet foglaljanak, és minél kevesebb felesleges funkciót tartalmazzanak. Az eredmény egy gyors, minimalista Linux rendszer, amiben mégis megtalálható a legtöbb népszerű nyílt forrású szoftver. 5

2. TP-Link 1043nd SoC (system on chip): Atheros AR9132 rev 2 CPU: 400 MHz MIPS 24Kc V7.4 32MB RAM, 8MB flash memória multifunkciós USB 2.0 port Realtek gigabit switch (10/100/1000Mbps) Atheros WiFi QSS gomb, reset gomb Fogyasztás: 7-9W GPL licenc 2.1. WiFi Az eszköz egy Atheros chipet tartalmaz, képes az IEEE802.11b/g/n szabványokra, melyekkel 11/54/300Mbps átviteli sebességet biztosít. Három antennát csatlakoztathatunk rá, illetve léteznek különböző fejlesztések, antennatípusok a hatótávolság növelésére. 2.2. Gombok A QSS a Quick Security Setup rövidítése, ez megkönnyíti a biztonságos vezeték nélküli hálózat (WLAN) létrehozását. A kliensre telepítenünk kell ehhez egy programot, ezután a QSS gomb megnyomásával, vagy egy PIN kóddal csatlakozhatunk a routerhez, amely automatikusan beállítja nekünk a hálózatot. A reset gombbal értelemszerűen alapbeállításokra állíthatjuk vissza a routert. Linuxos firmware esetén ez nem kap túl nagy hangsúlyt, mivel átveszi a helyét a QSS gomb. 2.3. Csatlakozók Balról jobbra sorban a tápcsatlakozó, reset gomb, USB port, WAN port, és négy LAN port található. Az USB portot gyári firmware esetén használhatjuk például nyomtató csatlakoztatására, ebben az esetben hálózaton keresztül nyomtathatunk. Ha háttértárat csatlakoztatunk ide (például USB HDD, pendrive, digitális fényképezőgép, akkor annak tartalmát meg tudja osztani a hálózaton keresztül. OpenWRT esetén két feltételnek kell teljesülnie: - legyen a csatlakoztatni kívánt eszközhöz működő driver - mivel a router tápellátása limitált, csak olyan eszköz működik, amely nem igényli túl nagy áram felvételét. A legtöbb kis USB-s HDD működik vele. Az USB rengeteg dologra használható, például csatlakoztatható hozzá háttértár, hangkártya, bluetooth eszköz, 3G stick, USB billentyűzet/egér, monitor. 6

3. Az OpenWRT bemutatása A disztribúció két alapító tagja Gerry Rozema (groz) és Mike Baker (mbm/embeem). Az első verziója 2004 januárjában jelent meg, alapjául a Linksys WRT54G firmware szolgált, illetve az uclibc projekt buildroot nevű patch gyűjteménye, amit azért készítettek, hogy könnyebb legyen létrehozni egy beágyazott rendszerekkel kompatibilis Linux firmware-t. Ezzel az eszközzel lefordíthatjuk a célrendszerre (x86, ARM, MIPS, PowerPC, stb) a kívánt szoftvereket (kernel, fájlrendszerek, bootloader). Az OpenWRT a hivatalos Linux kernelt használja, és ezt patcheli. Verziókezelő rendszerként subversiont (svn) használnak. A különböző kiadások kódneveket kapnak, ezek koktélok nevei. Ha SSH-n keresztül bejelentkezünk, ki is írja a rendszer a koktél receptjét, az általam használt, jelenleg stabil Backfire verzió receptje:.-----.-----.-----..----. _ - _ - _ _ W I R E L E S S F R E E D O M Backfire (10.03.1, r29592) ------------------------ * 1/3 shot Kahlua In a shot glass, layer Kahlua * 1/3 shot Bailey's on the bottom, then Bailey's, * 1/3 shot Vodka then Vodka. --------------------------------------------------- A verziói: - Buildroot-NG, Kamikaze (2006 október) - Backfire 10.03 (2010 április) - Backfire 10.03.1 (2011 december) ez egy karbantartási, frissítési alverzió - Attitude Adjustment 12.09 Az Attitude Adjustment verziónak jelenleg nincs stabil kiadása, 2012 októberére tervezték, de szeptemberben megjelent az első béta, október végén pedig a második béta verziója, és úton van a stabil kiadás. A webes felület egy Luci nevű LUA nyelven megírt szoftver, egy frontendként szolgál az UCI beállítórendszeréhez, mellyel szöveges felületen is mindent be tudunk állítani. Luci bejelentkezés előtt: 3.1. ábra 7

Bejelentkezés után hasonlót láthatunk: 3.2. ábra A status fül alapvető információkat tartalmaz a rendszerről, mint például név, kernel, mióta bootolt, memóriafoglalás, tárhelyek, csatlakozott gépek IP címei, tűzfalszabályok, útvonalak, naplók, grafikonok a terhelésről és a hálózati forgalomról. A system fülön találhatók a rendszerrel kapcsolatos beállítások, a programokat menedzselhetjük itt (telepítés, törlés, stb). A távoli elérés beállításai is itt vannak: SSH, webes felület, root felhasználó jelszava. A services fül az első indulásnál nincs ott, viszont bizonyos szolgáltatások telepítése után megjelenik, és itt foglalkozhatunk a beállításaikkal. A network fül a hálózati beállításoknak van dedikálva, itt az interfészeket, alhálózatokat állíthatjuk be, a portokat hozzárendelhetjük ezekhez, valamint itt találhatóak a WiFi beállításai. A logout opcióval természetesen kijelentkezhetünk. 8

3.1. Flash felépítés A táblázat csak a TP-Link 1043nd típusú routerre vonatkozik, más eszközökre más méretek érvényesek. A mértékegységek bájtban értendőek, tehát 1K = 1 kilobájt. A Layerek rétegeket jelentenek, a felépítést több szinten vizsgáljuk, az egyszerűbbtől a bonyolultabb felé haladva. TP-Link WR1043ND Flash felépítés Layer 0 Flash 8192K Layer 1 u-boot 128K firmware 8000K art 64K Layer 2 - kernel1280k rootfs 6720K - Mount - - / - FS mini_fo Mount Méret FS - - /rom 1536K SquashFS /overlay 5184K JFFS2 - Az eszköz 8192 KB-s flash memóriája ezekre a részekre van felosztva. Az u-boot egy univerzális, nyílt forrású rendszerbetöltő, a gyári TP-Link firmware is ezt használja, és amikor Openwrt kerül rá, ehhez nem nyúl. Maga a rendszer a firmware oszlopban kernellel és fájlrendszerrel 8000K-t foglal, ezt további részekre osztjuk. Az ART az Atheros Radio Test rövidítése, a WiFi kalibrációs beállításait tartalmazza. A kernel 1280K-ban fér el, értelemszerűen ez a Linux kernel, a hardverhez tartozó patchekkel. A rootfs 6720K, ennek egy mini_fo nevű fájlrandszere van. A mini_fo úgy működik, hogy két részre osztja a rendelkezésre álló helyet: - olvasható rész: /rom, 1546K, Squashfs - írható rész: /overlay, 5184K, JFFS2 A SquashFS egy csak olvasható, tömörített fájlrendszer, fájlokat, inode-okat, és könyvtárakat tömörít, beágyazott rendszereken való használatra szánták. Itt helyezkednek el az eszköz alapbeállításai, telepítés után indul ki az eszköz. Ha helyreállítást végzünk, akkor innen tölti vissza a fájlokat. A JFFS2 egy tömörített, naplózó fájlrendszer, NAND flash eszközökre optimalizálva. Ez már írható, és ide kerülnek az új beállítások, telepített programok. 9

3.2. Boot A rendszer indulása három fő fázisból áll. Az u-boot betöltése az első, a kernelé a második, végül pedig végrehajtódik az init, elindulnak a szolgáltatások. 3.2.1. Rendszerbetöltő - Végrehajtódik a rendszerbetöltő - elvégzi a POST-ot, ami egy alacsony szintű hardver inicializáció - kitömöríti a kernelt a flash tárhelyről a RAM-ba - végrehajtódik a kernel az init= paraméterrel 3.2.2. Kernel - A kernel további műveleteket végez, hogy működőképessé váljon - /etc/preinit elvégzi az init előtti feladatokat, például létrehoz könyvtárakat, felcsatol fájlrendszereket, /proc, /sys, stb. - felcsatolja a root fájlrendszert (/) - végrehajtja a /sbin/init-et 3.2.3. Init Az init futtatása folytatódik ebben a részben, ez kiolvassa a /etc/inittab tartalmát és megkeresi a sysinit bejegyzést. Az alapbeállítás: ::sysinit:/etc/init.d/rcs S boot Ezután elkezdi elindítani az itt található scripteket a start opcióval. Ha ezzel végzett, a rendszerünk működőképes. 3.2.4. Alapértelmezett rc scriptek S05defconfig S10boot S39usb S40network S45firewall S50cron S50dropbear S50telnet S60dnsmasq S95done S96led S97watchdog S99sysctl Az init szolgáltatás mindig fut. "default config" elindítja a hotplugot, fájlrendszert csatol, naplózást indít mount -t usbfs none /proc/bus/usb a hálózat indítása a tűzfalszabályok beállítása elindítja a crond-t elindítja a dropbear SSH szervert megvizsgálja, hogy be van-e állítva root jelszó, nemleges válasz esetén elindítja a telnetd-t elindítja a dnsmasq-t végrehajtja az /etc/rc.local tartalmát ledek konfigurációja problémák figyelésére és jelentésére szolgál értelmezi a /etc/sysctl.conf tartalmát 10

3.3. Leállás Leállításkor beolvassa és végrehajtja a /etc/inittab shutdownra vonatkozó tartalmát: ::shutdown:/etc/init.d/rcs K stop K99umount K98boot K90network K50dropbear kiírja a cache-k tartalmát a flashre, lecsatolja a fájlrendszereket elvégzi a leállás előtti feladatokat hálózat leállítása SSH leállítása 3.4. A közösség Három fő weboldal van, ahol megtalálhatók információk az OpenWRT-vel kapcsolatban: - openwrt.org - wiki.openwrt.org - forum.openwrt.org Ha valós időben szeretnénk beszélgetni a közösség tagjaival, akkor IRC csatorna is rendelkezésünkre áll. Ez a freenode hálózaton található, a neve #openwrt. 11

4. Saját OpenWRT firmware fordítása Előfordulhat, hogy nekünk nem elég a hivatalos OpenWRT firmware, mert speciális célokra szeretnénk használni a routerünket. Otthon még nem megterhelő napokat eltölteni a rendszer hangolásával, viszont komolyabb projekteknél ez kevés. Tökéletes példa, ha egy nagyobb infrastruktúrát szeretnénk egy cégnél kialakítani ilyen routerekkel, és szükség van egyedi szoftverbeállításokra, vagy olyan programokra, amik eredetileg nincsenek feltelepítve. Ilyenkor megépíthetünk magunknak egy firmware-t, ami megfelel a céljainknak, és ezt akár nagy mennyiségben, automatizálva is feltehetjük az eszközeinkre. Ehhez szükségünk van egy Linux disztribúcióra, ez fogja biztosítani a fordítási környezetet. Nagyon egyszerű például egy Debian, vagy Ubuntu rendszeren a fordítás, ezért ezen mutatom be. Szükségesek programok a fordításhoz, ezeket a következő paranccsal telepíthetjük: sudo apt-get install g++ libncurses5-dev zlib1g-dev bison flex unzip autoconf gawk make gettext gcc binutils patch bzip2 libz-dev asciidoc subversion A gcc/g++ a C/C++ fordító, a libncurses a grafikus menü felületéhez kell, a többi program a csomagok kitömörítéséhez, fordítás előtti konfigurálásához kell, végül a subversion a forráskód tükrözéséhez, mivel az OpenWRT ezt a verziókezelő rendszert használja. A backfire verzió tükrözése a következő paranccsal történik: svn checkout svn://svn.openwrt.org/openwrt/branches/backfire Ha a legújabb (béta) verziót szeretnénk, erre is van lehetőség: svn checkout svn://svn.openwrt.org/openwrt/trunk/ Ez viszont instabil, fejlesztői változat, ezért éles környezetbe semmiképp, tesztelésre is csak óvatosan szabad használni, mert tönkretehetjük vele a routerünket. A stabil ághoz tartozó forráskód 120-130MB helyet foglal, és körülbelül 17 ezer fájlból áll. Mivel ez csak maga a firmware, a hozzá tartozó programcsomagokat is le kell töltenünk. Az előbb létrejött egy backfire könyvtár, ebbe kell belépnünk, és az itt található feeds.conf.default fájlt át kell másolnunk a feeds könyvtárba feeds.conf néven. Ezután végrehajtjuk ezt a két parancsot:./scripts/feeds update a./scripts/feeds install a Alapértelmezetten ez letölti nekünk a backfire verzióhoz tartozó felhasználói programokat, az xwrt és luci webes felületeket. A feeds.conf-ot bővíthetjük a saját csomagforrásainkkal. A backfire könyvtár mostmár 300-310MB-ra nőtt, és 52 ezer fájlt tartalmaz. A konfigurálás és fordítás hasonlít a Linux kernel fordításának műveleteihez: make defconfig make package/symlinks make menuconfig 12

A make menuconfig után: 4.1. ábra Ekkor bejön egy menü ahol be lehet állítani, hogy miket fordítson le rá. Érdemes csak azokat beállítani, amik a router működéséhez feltétlenül szükségesek, és azokat, melyeket mindegyik routerünkön használni fogunk, mert a telepítésre később is lesz lehetőség. Beállíthatjuk például itt az OpenVPN-t, az SSH elérést, ha nem feltétlenül szükséges a webes felület, akkor azt kihagyhatjuk. Ami a TP-Link 1043nd típusú routerhez mindenképp kell: - Target System: Atheros AR71xx/AR7240/AR913x - Target Profile: TP-LINK TL-WR1043ND Ha mindennel megvagyunk a végén elmentjük és kilépünk belőle. A firmware fordításához a következő parancs szükséges: make V=99 illetve ha több szálon szeretnénk: make j4 V=99 Ezután elkezdődik a fordítás, ami több óráig is eltarthat (egy négymagyos gépen 4-6 óra). A végeredményt a bin/ar71xx könyvtárban fogjuk találni. Ha végeztünk a fordítással, a router webes felületére belépve frissíthetjük a régi firmwaret (akár gyáriról, akár OpenWRT-ről frissítünk). Ezután újraindul a router, és be tudunk lépni webes felületen (ha telepítettük), illetve ssh-n. 13

4.1. Alapbeállítások visszaállítása, más beállítások betöltése Ha újra akarjuk kezdeni, érdemes törölni, amit eddig csináltunk: make clean Innen újrakezdhetjük a make defconfig make package/symlinks make menuconfig parancsokkal. A beállításokat a rendszer egy.config nevű fájlba menti a menüconfigból való kilépéskor, ezt a fájlt áttehetjük máshova, és bármikor visszamásolhatjuk az ott levő helyére, így nem feltétlenül kell az elejéről kezdenünk a beállítást. Vigyázzunk, hogy ne keverjük a különböző firmware verziók konfigurációs fájljait. 14

5. Az OpenWRT beállítása A router címe alapesetben 192.168.1.1, SSH szerverként pedig a dropbear nevű minimalista program funkcionál. Természetesen a kulcsos azonosítás ezzel is működik, ha beállítjuk. Ha a root felhasználónak nincs beállítva jelszó, akkor két lehetőségünk van: - Webes felületen lépünk be, ilyenkor szól nekünk, hogy nincs beállítva jelszó, és ezt mindenképp meg kell tennünk. - Bejelentkezünk telneten keresztül, ilyenkor azonosítás nélkül beléptet a rendszer, és a passwd paranccsal beállíthatjuk a jelszót. Ezután a telnet már nem fog elindulni, csak SSH-n keresztül érhető el a rendszer. Néhány linuxos parancs kimenete: root@openwrt:~# free total used free shared buffers Mem: 29428 18876 10552 0 1824 Swap: 0 0 0 Total: 29428 18876 10552 root@openwrt:~# mount /dev/root on /rom type squashfs (ro,relatime) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=14716k) tmpfs on /dev type tmpfs (rw,relatime,size=512k,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) /dev/mtdblock3 on /overlay type jffs2 (rw,relatime) mini_fo:/overlay on / type mini_fo (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) none on /proc/bus/usb type usbfs (rw,relatime) root@openwrt:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% /rom tmpfs 14.4M 124.0K 14.3M 1% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock3 4.7M 2.9M 1.8M 63% /overlay mini_fo:/overlay 1.9M 1.9M 0 100% / Itt láthatóak a flash felépítés részben bemutatott bemutatott fájlrendszerek, csatolási pontok. 15

5.1. Hálózati beállítások A hálózati beállításokat a /etc/config/network fájlban találjuk. config 'interface' 'port1' option 'proto' 'static' option 'ifname' 'eth0.1' option 'netmask' '255.255.255.0' option 'ipaddr' '192.168.11.1' option 'gateway' '192.168.11.1' option 'broadcast' '192.168.11.255' Az interface kulcsszóval definiálhatunk hálózati interfészeket (esetünkben ez a port1), a proto jelzi a protokollt, ifname a nevét, és ha nem DHCP, akkor IP címeket is meg kell adnunk. A proto lehet: static, dhcp, ppp, pppoe, none, stb. config 'switch_vlan' option 'device' 'rtl8366rb' option 'vlan' '1' option 'ports' '1 2 3 4 5t' A routernek öt portja van, ebből négy LAN-hoz, egy pedig WAN-hoz tartozik. A switch_vlan beállítással a ezeket rendelhetjük interfészekhez. 0 jelzi a WAN, 1-4 pedig a LAN portot. 5.2. Csomagkezelő A telepítés az opkg nevű csomagkezelővel történik. Ez az ipkg csomagkezelőn alapul, nagyon hasonló az egyéb Linuxos eszközökhöz, például apt-get, aptitude, pacman, yum. Második argumentumnak azt kell megadnunk, mit csináljon, ezután pedig csomagneveket. Mindent érdemes az opkg update paranccsal kezdeni, ez frissíti az elérhető csomagok adatbázisát. Az opkg list parancs megmutatja, milyen csomagok elérhetőek jelenleg. Az opkg search keres köztük, az opkg install, illetve az opkg remove telepít és töröl. 5.3. Webes felület telepítése Ha nem fordítottunk a firmware-be webes felületet, és úgy döntenénk, hogy mégis szükségünk van rá, akkor a következőképp telepíthetjük a népszerű Luci felületet: opkg install luci-admin-full luci-theme-openwrt luci-fastindex luci-app-firewall luci-app-qos luci luci-app-initmgr Ha a Luci nem tetszene, több alternatív lehetőségünk is van. Az egyik az X-Wrt, a másik pedig a Gargoyle. 16

5.4. Wifi beállítása Ha nem működik a wifi (nem ismeri fel a router), akkor elfelejtettünk kernelmodult telepíteni hozzá. Ezt később is megtehetjük: opkg install kmod-ath kmod-ath9k hostapd Ezután beállíthatjuk akár webes felületen, akár ssh-n bejelentkezve. A konfigurációs fájl a /etc/config/wireless. Tartalma: config 'wifi-device' 'radio0' option 'type' 'mac80211' option 'channel' '11' option 'macaddr' 'b0:48:7a:d2:ea:fe' option 'hwmode' '11ng' option 'htmode' 'HT20' list 'ht_capab' 'SHORT-GI-40' list 'ht_capab' 'DSSS_CCK-40' option 'disabled' '0' Érdemes az interfésznek beállítani a DHCP-t is, hogy a WiFire felcsatlakozó kliensek kapjanak IP-t. 5.5. Fájlrendszerek használata A legtöbb Linuxos fájlrendszer használható OpenWRT-n, például btrfs, ext2/3/4. Hálózati fájlrendszerek is elérhetőek: cifs, nfs. Ha a Windowst preferáljuk, akkor használható vfat, illetve ntfs is. Az ntfs használata Linuxon az ntfs-3g driverrel történik: opkg install ntfs-3g A fájlrendszerek kernelmoduljai a kmod-fs- előtaggal kezdődnek, bármelyiket is szeretnénk, ezzel kell telepíteni. Mindegyik ext fájlrendszer használható a kmod-fs-ext4 modullal. Ha formázni szeretnénk ext fájlrendszerre bármilyen háttértárat, akkor szükségünk van az e2fsprogs csomagra, mert ez tartalmazza az mkfs.ext2, mkfs.ext3 és mkfs.ext4 programokat. USB háttértár használatához szükségünk van a kmod-usb-storage, block-mount, block-hotplug modulokra. Nyelvi csomagokat, kódlapokat a kmod-nls- modulok tartalmaznak. 17

5.6. Helyreállítás Előfordulhat, hogy nem figyelünk arra, mennyi hely van az eszközön. Ha túl sokat telepítünk, akkor megtelik, és nem tudjuk letörölni sem a telepített programokat. Nem csak a csomagkezeléssel vannak ilyenkor problémák, hanem a beállításokat sem tudja jól elmenteni. Ha furcsán viselkedik a routerünk, javasolt először a szabad helyet megvizsgálni, mert ez lehet sok probléma gyökere. Az OpenWRT indulásakor lehetőség van ún. failsafe módba lépni, ilyenkor elindul egy minimális, helyreállításhoz szükséges környezet, és vissza tudjuk állítani a rossz beállításokat, vagy törölhetjük a telepített szoftvereket. A routeren ehhez egyrészt lennie kell egy hardveres gombnak (tehát reset, QSS, stb.), másrészt ennek beállíthatónak kell lennie, hogy hozzárendelhessünk saját funkciókat. A TP-Link 1043nd típusú router esetén a QSS gombot használhatjuk erre a célra. A failsafe mód indításához szükséges lépések: - a routerhez csatlakoztatott gép IP címét állítsuk 192.168.1.2-re, az alhálózati maszkot 255.255.255.0-ra - indítsuk újra a routert (áramtalanítsuk, majd csatlakoztassuk újra a tápegységet - a megfelelő pillanatban nyomjuk meg, vagy tartsuk nyomva az előre beállított gombot. Ez a pillanat a TP-Link routeren az, amikor elkezd villogni a sys LED. Miután megnyomtuk a QSS gombot, a sys LED elkezd sokkal gyorsabban villogni, erről tudjuk, hogy sikerült belépni a helyreállító módba. Ezután telnet segítségével csatlakoznunk kell a routerhez, mely a 192.168.1.1-es alapértelmezett IP címre állt vissza. Sem felhasználónevet, sem jelszót nem kér, hanem rootként beléptet. Bejelentkezéskor ugyanúgy kiírja az OpenWRT verziószámát, a kódnevet, a receptet, illetve figyelmeztet, hogy állítsunk be jelszót a root felhasználónak. A telnet parancs: telnet 192.168.1.1 Ezután fel kell csatolnunk a root fájlrendszert, hogy azon műveleteket tudjunk végezni mount_root A jelszó beállítása: passwd Ha túl sok programot telepítettünk, és szeretnénk letörölni ezeket, akkor lehetőség van egy parancs segítségével visszaállni a legelső indulás állapotába (alapértelmezett OpenWRT konfigurációra). firstboot Illetve törölhetjük a /overlay fájlrendszert is, de ez a parancs egyértelműbb. Ha végeztünk mindennel, indítsuk újra a routert: reboot -f 18

6. Átviteli sebesség a hálózaton Hálózati infrastruktúrák tervezéséhez szükség van arra, hogy tudjuk, mire képes a router, milyen sebességet tud elérni, és mikor lesz instabil a működése. Erről próbáltam teszteket készíteni. A teszthálózat a 6.1-es ábrán látható. PC1 4GB ramdisk Gigabit ethernet TP-Link 1043nd OpenWRT PC2 4GB ramdisk Gigabit ethernet 6.1. ábra. teszthálózat PC1 és PC2 névvel láttam el két számítógépet, ezeken vegyesen windows és linux operációs rendszer van. Rajtuk kialakítottam egy ramdisket, ez linuxon a tmpfs nevű fájlrendszerrel egyszerűen megtehető, Windowson a Dataram RAMdisk nevű szoftvere állt rendelkezésemre. A RAMdrive/RAMdisk technológia lényege, hogy egy kijelölt memóriaterületet úgy kezel, mintha fizikai lemez lenne, itt egy fájlrendszert alakít ki, ahova fájlokat másolhatunk. A virtuális változat mellett léteznek hardveres RAMdrive eszközök is, ezek legnépszerűbb képviselője az SSD. A VLAN beállításoknál láthatjuk, hogy alapértelmezetten a Port1 tartozik a WAN-hoz, a többi pedig a LAN-hoz. 6.2. ábra A ramdisk létrehozása Linuxon a tmpfs fájlrendszerrel adott (ez Ubuntun a /run/shm könyvtárba van csatolva), Windowson a Dataram nevű cég szoftverét használtam, ez külön meghajtóként mutatja, és alapértelmezetten FAT32 fájlrendszert hoz létre, de létrehozható vele üres, ilyenkor formázhatjuk NTFS-re is. Az adatot, amit másoltam a gépek között, Linuxon a következőképpen generáltam: dd if=/dev/sda of=/run/shm/d.img bs=500k count=7000 Ez kiolvasta a HDD tartalmának egy részét, és beleírta a d.img nevű fájlba. 7000+0 beolvasott rekord 7000+0 kiírt rekord 3584000000 bájt (3,6 GB) másolva, 16,9233 mp, 212 MB/s 19

Hogy a későbbiekben ne legyen megtévesztő, megjegyzem, hogy különböző fájlméretekkel is próbálkoztam, de ez a sebességre nem volt hatással. A másik tesztfájl egy Debian Linux telepítő képfájl volt többször összefűzve. 6.1. Közös VLAN Ehhez nem tartozik különösebb beálítás, alapesetben úgy van beállítva az OpenWRT, hogy a LAN portjai egy VLAN-ba tartoznak (kivéve a WAN), a router IP-je 192.168.1.1, a gépek pedig 192.168.1.100-192.168.1.150 intervallumban kapnak IP-t a DHCP szervertől. VLAN1 PC1 PC2 Router 6.3. ábra. közös VLAN A VLAN1 alhálózathoz az eth0.1 interfész tartozik eth0.1 Link encap:ethernet HWaddr B0:48:7A:D2:EA:FE inet addr:192.168.1.1 Bcast:192.168.11.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1898 errors:0 dropped:0 overruns:0 frame:0 TX packets:1692 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:279565 (273.0 KiB) TX bytes:782956 (764.6 KiB) Több módon vizsgáltam az átvitelt, mindig ramdiskből ramdiskbe: a PC1 gépen webszervert (apache/lighttpd) beállítva listáztam a /run/shm tartalmát, és a PC2-n letöltöttem böngészővel a d.img-t. PC1 gépen ftp szervert (vsftpd) indítottam, PC2 géppel csatlakoztam erre SSH szervert indítottam, SFTP/SCP klienssel csatlakoztam 20

6.4. ábra 85-88 MB/s sebességet jelzett a böngésző, illetve ftp protokollon is ugyanennyi volt az eredmény. Vegyük figyelembe, hogy a Firefox átlagsebességet számol. Az SCP/SFTP méréseket a WinSCP nevű programmal teszteltem, itt már jobban lelassult az átvitel, mindössze 10-10MB/s-t tudott elérni. 6.5. ábra 21

6.2. Külön VLAN Két-két portot rendeltem külön VLAN-hoz, és beállítottam, hogy elérjék egymást a gépek. A HTTP/FTP/SSH szolgáltatásokon nem változtattam. VLAN1 192.168.1.x VLAN2 192.168.2.x PC1 PC2 Router 192.168.1.1 192.168.2.1 6.6. ábra. külön VLAN Az Openwrt VLAN beállításainál látható minden, a VLAN ID jelzi az interfész számát, ilyenkor ha bejelentkezünk a routerbe, és kiadjuk az ifconfig parancsot, akkor láthatjuk a két alhálózathoz tartozó interfészeket: eth0.1, eth0.2 Az eth0.3 a WAN-hoz tartozik, ez a mérés szempontjából lényegtelen. eth0 eth0.1 eth0.2 Link encap:ethernet HWaddr B0:48:7A:D2:EA:FE UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5452 errors:0 dropped:0 overruns:92734 frame:0 TX packets:3880 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2663204 (2.5 MiB) TX bytes:2425944 (2.3 MiB) Interrupt:4 Link encap:ethernet HWaddr B0:48:7A:D2:EA:FE inet addr:192.168.1.1 Bcast:192.168.11.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2528 errors:0 dropped:0 overruns:0 frame:0 TX packets:2137 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:407209 (397.6 KiB) TX bytes:2118028 (2.0 MiB) Link encap:ethernet HWaddr B0:48:7A:D2:EA:FE inet addr:192.168.2.1 Bcast:192.168.12.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:406 (406.0 B) 22