Mini-ITX router/tűzfal BOX házilag

Bevezető

Üdvözlök minden kedves olvasót! Első cikkemben szeretném bemutatni nektek a nemrég épített Mini-ITX router/tűzfal gépem.

Előzmények:

Pár éve szereztem be egy Linksys WRT320N routert egy Synology DS210j NAS-al együtt, amikor a 8/0.5Mb-es T-netet leváltotta a 80/25Mb-es Digi. Ekkor még bőven elégnek bizonyult töltögetéshez, viszont elégedetlen voltam a NAS teljesítményével, mert pár száz kapcsolat felett nagyon belassult, ezért a helyére összeraktam egy home servert. Ezután, ahogy szépen megtelt a szerver és növekedett a router igénybevétele, elkezdtek megjelenni a hálózati problémák. Új letöltések hozzáadásánál rendszeresen lefagyott a router és dobta a netet, majd amint helyreállt és elért egy bizonyos kapcsolatmennyiséget, újra szakadt.
Átmenetileg a kapcsolatok korlátozásával, "teknős mód" (Transmission) aktiválásával orvosoltam a gondokat és megoldás után kutattam, amit meg is találtam itt a fórumon egy custom firmware, a Tomato személyében.
Nagy előrelépés volt a gyári szoftverrel szemben és megoldottnak látszódott a probléma, de mivel az igénybevétel azóta is folyamatosan nőtt, újra a router lett a gyenge láncszem. Ilyenkor már nincs mit tenni, elfogyott a hardver, ennyit bír.
Megjegyzem, nem volt könnyű dolga, a szerverről és 2 asztali gépről egyszerre több ezer aktív kapcsolat ment a routeren át teljes sávszélen.
Az átlagos 3-4 MB/s forgalomnál még elég volt, de ha beindult a letöltés 400-500%-os túlterhelést jelzett és belassult a rendszer, ami az egész hálózaton érezhető volt.

Követelmények:

Hirdetés

Teljesítmény

Lényegében ez volt a fő ok, hogy valami erős cuccot rakjak össze, és ne megint egy gyári megoldást keressek, mert egy erős hardverrel rendelkező márkás routerért igencsak mélyen zsebbe kell nyúlni. Akkor inkább csinálok magamnak egy komolyabb gépet, amit több célra is tudok használni és még szerelgethetek is kicsit.

Felügyelet

Először is jó lett volna látni, hogy mégis mi történik a hálózaton, hová tűnik el a sávszél, melyik gép hova csatlakozik, mit és mikor csinál a neten, szóval felügyeleti eszközök minden mennyiségben, valamint nem hátrány az sem, ha szép grafikonokon mutatja, hogy mikor mi volt a helyzet, hogy lássam a hálózat kihasználtságát, és kell-e valahol állítani valamin.

Biztonság

Kellett egy védelmi rendszer, ami a gépektől függetlenül végzi a dolgát, mert vannak itthon más aktív nethasználók is, akik ki tudja mikre kattintgatnak … Tehát kell valami, ami azt mondja nekik, hogy márpedig te ezt az oldalt nem fogod megnézni. Ha mégis olyan lenne ami kell, azt majd engedélyezzük, miután megnéztük, hogy miért is lett letiltva. A bejövő kapcsolatokat pedig vizsgálja át az utolsó bitig, és blokkoljon minden gyanús forgalmat. A mai világban azért van már bőven védeni való adat a gépeken.

Lássuk tehát miből épül fel kis gépünk...

Hardver

Sok időbe telt eldönteni hogy hogyan valósítsam meg a gépet. Kezdetben még egy régi PC újrafelhasználását terveztem, amibe csak egy hálókártyát kellett volna venni, de a 100 watt feletti fogyasztása nem lett volna ideális egy 24/7-ben üzemelő routerhez. Egy másik lehetőség a virtualizáció volt: a már meglévő szerverbe veszek egy hálókártyát, és virtuális gépet használok, de mivel azon a gépen Ubuntu Server fut 24/7 több éve, így nem volt szívem belepiszkálni és desktoppá varázsolni. Ami jó azt ne rontsuk el. Tehát új gépet kellet építeni, ami talán jobb megoldás is erre a célra.

Hozzávalók:

Több hetes kutatómunka után sikerült teljesen tisztázni mire lesz szükségem a kívánt rendszer futtatásához, figyelembe véve a hardvertámogatási listákat és fórumon lévő teljesítménytapasztalatokat különböző erősségű rendszereken.

Alaplap
Lehetőség szerint minél kisebb méretű gépet akartam összerakni, így a bővítőkártyák lehetőségét elvetettem, tehát mindenképp kellett legalább 2db gigabites port, méghozzá a hardvertámogatás miatt nem árt, ha Intel vezérlős. Processzornál az Atom és az i3 jött szóba, végül az olvasott tesztek alapján megbizonyosodtam róla, hogy elegendő lesz a kisebb is. Kellett még ezen kívül legalább 4GB rendszermemória támogatása, valamint 1-2 SATA, USB, meg valamilyen VGA kimenet telepítéshez.


Intel® Desktop Board D2500CC

Végül sikerült leszűkíteni a listát egy lapra, ami technikailag tökéletesen megfelelt az elvárásoknak, valamint találtam a kiszemelt rendszert ezzel a lappal használó felhasználókat, így biztos voltam benne, hogy nem lesz gond a driverekkel. Egy kivétel volt, mégpedig a 64 bites VGA driver hibája, aminek köszönhetően nem látszódik csak az alsó sor a képernyőből telepítés közben, de voltak rá megoldások, így belenyugodtam.

Memória
Itt már könnyű dolgom volt, a lap korlátait figyelembe véve egy egyszerű 4GB-os, min. 1066MHz-es modult kellett szereznem.


Kingston SODIMM DDR3 4GB 1066MHz pdf

Jogosan merülhet fel a kérdés, hogy mi a francnak kell egy routerbe 4 GB RAM, mikor a leváltani kívánt router ~20 MB-ot használt. Nos, emiatt ne aggódjunk, el fog fogyni.

Ház
Kellett egy igazán kis méretű ház, ami masszív, nem műanyag, jól szellőzik, legyen benne legalább egy 2.5" hely, egy pár venti hely (ha szükség lenne rá) és persze, emellett legyen olcsó is.


M350 Universal Mini-ITX enclosure pdf

Hamar előkerült a fórumokon egy a kinézett laphoz ideális ház, ami kielégített minden igényt, sőt, két 2.5" hely is van plusz egy keret beszerzése esetén, valamint 5db 4cm-es ventit lehet belerakni, ha nyáron sülne a cucc. Ezenfelül nagyon praktikusan az előlap mögött két USB foglalat van, amiről lehet rendszert telepíteni, futtatni, vagy épp wifi modult elrejteni.

Táp
Mivel a házba csak PicoPSU fér el, és van is rajta megfelelő kivezetés, már csak a méretét kellett megválasztani.


PicoPSU-80 12V DC-DC ATX power supply pdf

Ezt a modellt külön ajánlják is ehhez az alaplaptípushoz, nincs rajta semmi felesleges csatlakozó, és van benne elég tartalék hogy elegendő legyen a gépre kötött eszközökhöz.


AC-DC 12V, 5A / 60 Watt Switching Power Adapter (110/220V) pdf

Kellett még egy külső adapter is hozzá, amiből csak egy kisebb, 60w-os modellt választottam, mert ez is bőségesen elég lesz.

Adattároló
Az embedded rendszerhez elegendő egy pendrive is, ez a legolcsóbb megoldás és könnyen cserélgethető lesz a rendszer, valamint megszabadulunk pár kábeltől és lesz helye később ventinek is a házban.

Következzen pár saját kép a hardver összeállításáról...

Szerelés

M350 ház:

A házikó burkolatát egy a hátlapon lévő csavar rögzíti, de mellékelnek még kisebb csavarokat is, amiket pluszban két oldalra lehet betekerni. A csavar eltávolítása után hátratoljuk, majd leemeljük a tetőt.

A burkolat alatt van egy HDD/SSD rögzítő keret, gyárilag ebből egyet adnak, de lehet kapni külön is. Ha nem rögzítünk rá adattárolót akkor pedig 2db 4cm-es ventilátor kerülhet rá. A keret pozíciója bal/jobb/közép állásban tetszőlegesen változtatható, 2 csavarral rögzíthető. Esetemben jobb oldalra helyezve a hátsó ventilátor pont a CPU borda és a PicoPSU fölé esik, itt valószínűleg lesz is egy venti később, ami leszívja a hőt.

Az előlap lepattintása után látni két USB csatlakozót, power gombot, hozzá való jumpereket, amivel a viselkedését szabályozhatjuk, valamint még egy 4cm-es venti helyet.
Bent pedig USB, powerled, powerswitch csatlakozók.

Összerakás:

A lap berakásához leszedtem a kábeleket, mivel eléggé szűkös a hely, de miután bement a helyére már egyszerűen rögzíthető.

Ezután visszadugdostam a kábeleket, majd bepattintottam a RAM-ot. Ezen a lapon elég közel voltak a csatlakozók, és nem is volt útban semmi, így nem kellett különösebben bűvészkedni a kábelekkel.

Végül beraktam a helyére a PicoPSU-t. Igen, ez ekkora, és csak 1 tápkábel van, ami a házon lévő kivezetésre van rögzítve. Volt ugyan rajta még egy ág, de mivel nincs a gépben HDD/SSD így nem volt rá szükség, és a táp modularitását kihasználva lehúztam róla.

Így néz ki a kész ITX gép, minden a helyén. Kábelrendezésre való trükköket itt elfelejthetjük, de nem is nagyon van rá szükség.

Működés közben:

Végül egy friss kép a végleges kinézetéről, helyéről. Itt már élesben működik a router az itthoni hálózaton. A mellette látható Huawei terminálba van bekötve a gép egyik portja.

A túlsó végén a géphez vásárolt 8-as Gigabit switch található, amire csatlakozik minden gép, valamint a régi router mint Wifi AP, második switch.

További képek a Galériában.

Miután összeállt a gép, nézzük akkor a szoftvert.

Szoftver, Telepítés

pfSense OS:

Röviden
Ez egy FreeBSD alapú tisztán tűzfal/router operációs rendszer. A követelményeknek maximálisan megfelel, és rengeteg extra szolgáltatása is van, amiknek csak töredékét sikerült idáig kipróbálni. A feature lista elég hosszú, de ne keressünk benne olyan extrákat mint ftp,torrent stb. mert ez egy nagy sebességű, biztonságos, megbízható működésre kihegyezett rendszer, aminek nem az a dolga hogy helyettesítse a házi szerverünket, hanem hogy kiszolgálja azt, de nagyon.

Verziók
Telepítőfájlokból hatalmas választék van, külön verzió minden hordozótípusra, méretre, architektúrára stb.
Én magam jópár telepítésen túl vagyok, így volt már hagyományos HDD-re full install lemezről, USB-ről, live USB, embedded 2/4GB USB-n, ezekből mindből 32 és 64 bit-es verziót is kipróbáltam.

Végül számomra a pfSense-2.0.1-RELEASE-4g-amd64-nanobsd_vga verzió lett a nyertes. Ez ugye tudja kezelni a 4GB RAM-ot, valamint futtatáshoz elég egy pendrive, mivel az egész cucc a memóriából fut és nem is nyúl a tárolóhoz csak a konfig mentésénél, csomagok telepítésénél, tehát nem kell félnünk az adattároló elhasználódásától.

Előkészületek
A telepítő img adathordozóra juttatásához többféle módszer is van, én az itt található Windows alatt futó programot használtam. Itt arra kell nagyon figyelni, hogy a megfelelő számot válasszuk ki, ugyanis ha rosszat választunk a program felülírja a tárolót az img fájllal, habár 2GB fölötti méretnél egyszer azért rákérdez hogy biztosak vagyunk-e a dolgunkban. Erre jó megoldás egyszer az adattároló nélkül elindítani, és megjegyezni az ott lévő meghajtókat, mert nem mindegyiknél írja ki a nevét. Majd újra elindítva és berakva a céleszközt, és az újonnan megjelenő meghajtó számát válasszuk ki. Mérettől függően pár percig eltart, amíg átpakolja.

Telepítés
Az elkészült telepítőt bedugjuk a gépbe, és indíthatjuk is. (BIOS-ban beállítottam, hogy mindig USB-ről induljon, ne keressen, ne foglalkozzon semmi mással).
Ha minden jól sikerült, akkor elindul a pfSense bootolás, majd egy kis menü, ahol az idő lejárta után alapértelmezett opcióban el is kezd betölteni a rendszer.

Említettem egy bizonyos VGA driver bugot az alaplapnál 64 bites rendszer esetén, na itt kezdődik.
A driver hiba miatt nem látni a konzolból csak a legalsó sort, de azt sem lehet kiolvasni, teljesen random dobálja be a karaktereket, a fenti részen pedig beakad a betöltés előtti menü.
De aggodalomra azonban semmi ok, pont annyit látni a telepítésből, amennyi szükséges, vagyis hogy van-e valami aktivitás, a visszaszámlálásokat és a beírt szöveg egy részét. Előtte megcsináltam 32bit-en is, és felírtam pontosan mikor mit kell megnyomni, valamint elhárítottam a hibákat, mint pl. IP ütközés, kábel felcserélés, stb.

Lépések "vak" telepítéshez: (ugyanez jó 32bit-hez és más lapokhoz is ahol működik a VGA)
1. a kezdő menü után megvárjuk amíg lent végleg megáll, befejezi a betöltést.
2. <enter> (vlan kihagyása)
3. em0 <enter> (wan interfész)
4. em1 <enter> (lan interfész)
5. <enter> (opcionális interfészek kihagyása)
6. y <enter> (igen szeretnénk)

Ha minden jól megy, tovább pörögnek a karakterek, majd egy kis zenével jelzi hogy végzett, és már be is tudunk lépni a 192.168.1.1 címen egy böngészővel, ahol egy varázsló végigkattintgatása után működik a rendszer, lehet örülni.

Konfigurálás
A beállítás hasonló az átlagos halandó routerhez, csak itt kb. tízszer annyi opció és menü van. Konfigurálásra külön nem térek ki, az úgyis egyéni, hálózatfüggő, de aki eddig meg tudta csinálni amire szüksége volt, annak itt is menni fog.
Fő szabály: minden tiltva van, amit nem engedélyezünk külön, vagy nem mi kérünk.
Tehát lesz dolgunk, ha sok mindent akarunk átengedni. Nekem is jó időbe telt, mire sikerült beállítgatnom a port átirányításokat, tűzfalszabályokat a játék/TS szerverhez.

Kiegészítők
Több csomagot is kipróbáltam több-kevesebb sikerrel, volt pár, ami nem nagyon akart elindulni vagy úgy működni ahogy elképzeltem, így szépen leszűkült a lista, és csak a fontosabbak maradtak meg.
Jelenleg nálam a következők futnak:
-squid: a proxy cache miatt használom, lemez híján RAM-ba tárolja a gyakran/utoljára látogatott oldalak tartalmát, így azonnal betöltenek amint kattintok,
-Lightsquid: az előző kiegészítője, amivel látni órás részletességgel több hónapra visszamenőleg hogy melyik gép mikor mit/honnan nézett, töltött, valamint mennyi webforgalma volt, stb.
-snort: a "házőrző kutya", ami minden kapcsolatot átnéz hogy ki, honnan, mit akar, káros-e, és ha igen már le is van tiltva. Eleinte elég sok oldalt megfog amit nem kellene, mert ilyen-olyan hibákat talál rajtuk, de egyszerűen be lehet tanítani, hogy mi az amit ne tiltson,
-pfBlocker: neten található folyamatosan frissülő, több százezer IP-t tartalmazó blokkolási listákat lehet megetetni vele, nem árt ha van.
-egyéb: pár GUI kiegészítő más csomagokhoz, rendszerstatisztikák, információk, teljesítménytesztelő, stb.

Végül pár adat és tapasztalatok...

Értékelés

Eredmények:

Nos, most hogy elkészült a gép és minden működik már csak arra kell választ találni, hogy elértem-e vele a célom, megoldódtak-e a problémáim, megérte-e a ráfordított időt, pénzt?

A válasz szerintem a projekt elején felállított követelmények teljesülésével írható le:

Teljesítmény
A legfontosabb alapkövetelmény volt a hálózat stabilitásának helyreállítása, a hardver korlátainak átlépése.
Az előző router nem érte el az akkori teljes netsebességemet, tehát 80/25-ös netnél 105Mb/s alatt volt a max. átvitel, ahol a proci 400-500%-on volt. Az új cucc iperf-el mérve 290-300Mb/s-et 70% körüli terhelésen viszi, ami megnyugtató adat.

Ezután megnéztem mit tud a gép valós forgalommal:
~1 Mbps le
~30 Mbps fel
~14 % CPU

~84 Mbps le
~16 Mbps fel
~34 % CPU

~84 Mbps le
~35 Mbps fel
~49 % CPU

~25 Mbps le
~54 Mbps fel
~35 % CPU

~84 Mbps le
~53 Mbps fel
~65 % CPU

Ebből kiderül, hogy a jelenlegi netet gond nélkül 105%-on tudom használni, miközben ilyen tempó mellett még mindent ellenőriz is, hogy a dolgok rendben vannak-e.
A grafikonon olyan fixen beáll 84Mb/s-re, mintha vonalzóval húzták volna, és eközben még egy pillanatra sem röccen meg a netrádió, és máshol se érezhető lassulás, szóval teljesen elégedett vagyok vele.

Felügyelet
Ez csak extra követelmény volt, amolyan jó ha van, de a pfSense-ben aztán tényleg mindent látni, ki, hova, honnan, mikor, stb.. táblázatban, grafikonon, listázva – ahogy tetszik. Szinte bármit meg lehet keresni.

Biztonság
Amíg a régi routerem volt, nem láttam támadásokat, és nem vagyok benne biztos hogy azért, mert mindet csendben elkapta volna. Lehet, hogy célba értek, csak sehol nem látszódott, és ki tudja hány száz kereső robot derített fel naponta, jutott be, milyen céllal. Most viszont látom, ahogy szinte megállás nélkül próbálkoznak innen-onnan behatolással, ftp, ssh, port scan, stb. és mennek is szépen automatán a blokkolási listára. Látom ki honnan, mikor, mivel próbálkozott, vissza lehet keresni minden oldalt. Számomra megnyugtatóbb látni a tiltólista hízását, mint a bizonytalanság. Meg amúgy is, akit én nem hívok, az csak ne próbálkozzon, ez nem átjáróház.

Költségek:
alaplap: ~23k HUF
memória: ~4.5k HUF
PicoPSU: ~8k HUF
adapter: ~5k HUF
ház: ~15k HUF
pendrive: ~1.5k HUF
Összesen: ~57k HUF
+
switch: ~8k HUF

Fogyasztás
Használat közben a teljes konfig fogyasztása 16-17W konnektornál mérve, ami egész jónak mondható egy ITX gépnél.

Összegezve
Mindent megkaptam amit elvártam ettől a géptől, sőt, még többet is, ezért számomra maximálisan megérte a ráfordított időt, energiát, pénzt.

Igen, meg lehetett volna csinálni olcsóbban is, paneltápos műanyagdobozban, de ha hosszútávon beválik ez az ITX masina, akkor lesznek ezt követő gépek még hasonló felépítésben - csak más célra. Jó lenne majd a szervert is zsugorítani, és különválasztani az adattárolásról. Meg lesz 1-2 netezős PC, ami szintén ITX-ben lenne, és azokhoz jó tapasztalati alapot nyújt ez a PicoPSU konfig.

Első írásom volt, ezért a stílus olyan, amilyen, de szívesen várok véleményeket, érdeklődőket minden témában. Remélem hasznára válik azoknak, akik hasonlóban gondolkozik.
Köszönöm hogy elolvastátok.

Azóta történt