V dobrem desetletju smo doživeli pravo poplavo širokopasovnih dostopov do interneta. Za dokaj sprejemljivo ceno storitve smo tako danes tudi v svojih domovih priča dostopom, ki so izvedeni prek omrežij kabelskih operaterjev, različnih tehnologij xDSL ali celo optičnih vlaken. Če ne gre drugače, si lahko na nekoliko slabše urejenih lokacijah (s stališča telekomunikacijske infrastrukture) v večini primerov pomagamo s storitvami dostopa mobilnih operaterjev.

Z današnjega stališča se zdijo nekje daleč časi, ko smo za dostop uporabljali klicno telefonsko linijo in bili zadovoljni ob dejstvu, če se je analogni modem povezal z najvišjo hitrostjo (na primer 33,6 kbit/s ali višje s pomočjo V.90), ali ko je prva oprema ISDN omogočala združevanje kanalov (2 x 64 kbit/s). V tem času smo naredili svoj prvi usmerjevalnik s pomočjo Freesca (www.freesco.org), ki je imel tri glavne naloge: znižanje stroškov – telefonska zveza s ponudnikom dostopa do interneta se je samodejno vzpostavljala/prekinila po potrebi, deljenje povezave med večje število uporabnikov na domačem omrežju in, čeprav na koncu, najpomembnejša naloga – varovanje mej domačega omrežja s pomočjo nameščenega požarnega zidu. Kljub tehnološkemu napredku (na primer spremembi vmesnika WAN iz serijskega vmesnika na Ethernet) in dodajanju različnih novih funkcionalnosti (na primer možnost uporabe VPN) pa se glavne naloge domačega prehoda bistveno niso spremenile. Z njegovo pomočjo še vedno znižujemo stroške dostopa, delimo povezavo do spleta med večje število uporabnikov in (delno) zagotavljamo varnost domačega omrežja.

Veliko število širokopasovnih dostopov v svetovnem merilu pa je prineslo pravo poplavo nizkocenovnih usmerjevalnikov, kar se kaže v dejstvu, da lahko kupimo usmerjevalnik s požarnim zidom, namenjen domači rabi/domači pisarni, tudi v trgovinah z živili, le nekaj korakov stran od solate. Žal je ceni primerna pogosto tudi kakovost izdelave, saj se zgodi, da tovrstni usmerjevalniki (oziroma pripadajoči sestavni deli, na primer napajalnik) zdržijo le nekaj let. Morebitna odpoved pa je lahko dober trenutek za razmislek, kako naprej.

SAM SVOJ MOJSTER IN KDAJ JE TO SMISELNO

V primeru različnih rešitev, ki so namenjene domači uporabi oziroma manjšim podjetjem, je usmerjevalnik skupaj s požarnim zidom združen v eno napravo. Poenostavljeno gledano lahko takšno napravo opišemo kot strojno opremo z ustreznimi vmesniki in programsko opremo, ki definira delovanje te naprave. To dejstvo nam omogoča tudi različne programske modifikacije – ko proizvajalčevo programsko opremo nadomestimo z drugo in na isti strojni opremi pridobimo naprednejše funkcionalnosti, seveda pod pogojem, da imamo dovolj zmogljivo oziroma ustrezno stojno opremo. O nekaterih možnostih (na primer DD-WRT – http://dd-wrt.com/, OpenWRT https://openwrt.org/) ter prednostih in slabostih tovrstnih modifikacij smo v preteklosti že pisali. Odgovor na zastavljeno vprašanje se torej skriva v vašem pogledu na ta segment – gre pri usmerjevalniku/požarnem zidu le za »nujno zlo«, o katerem ne veste nič in ste veseli, da deluje ter vam ne povzroča težav, ali pa napravo obvladate, razumete njeno vlogo ter s pridom izkoriščate možnosti, ki vam jih ponuja (ali morda še kakšno pogrešate).

Eden od možnih argumentov za samogradnjo bi lahko bil – da za vse zahtevnejše uporabnike, saj bi za primerljivo funkcionalnost, ki jo lahko zagotovijo sami, potrebovali usmerjevalnik višjega cenovnega razreda. No, vsekakor je tu še potreben dodatek, ki ni le kozmetičen – z dovolj znanja. Praktične izkušnje namreč kažejo, da v nasprotnem primeru pri postavitvi določene naprave ali sistema prijatelju oziroma znancu običajno postanete (če vam je to všeč ali ne) tudi njegov skrbnik. Zavedajte se, da to vlogo prevzemate za celotno obdobje, dokler naprava ne odpove (kar v praksi lahko pomeni več let) ali tehnološko zastara do te mere, da je ni smiselno ali mogoče posodobiti.

ZAKAJ ENO DA IN DRUGO NE

Pri samogradnjah naredi marsikdo napako, da brez izjeme uporabi tisto, kar že ima pri roki – to pa v praksi žal pogosto pomeni, da je kot gradnik rešitve »dobro« vse, kar »vsaj približno« deluje, »še boljše« pa, če že več let leži neuporabno v kakšnem predalu. Priznamo, da je skušnjava za uporabo tovrstnih sestavnih delov tudi pri nas še večja, kadar je priporočena konfiguracija s stališča strojnih zahtev manj zahtevna kot tista, ki jo že imamo. V določenih primerih to ne pomeni večjih ovir, vsekakor pa je dobro tu upoštevati zdravo pamet, se pravi kaj je smiselno in kaj ne. Brez težav je to lahko rešitev za test, a kaj ko postane začasna rešitev največkrat trajna. Vodilo pri odločitvi naj bo predvsem cilj, ki ga želimo doseči, in dejanske oziroma predvidene realne potrebe. Ni redko, da je edini razlog za odgovor (in je daleč od realnih potreb) skrit za besedami na vprašanje zakaj – »Because we can … (zato ker lahko)«. Zato upamo, da boste v besedilu, ki sledi, našli odgovore, zakaj je naša rešitev takšna, kot je, in si morda olajšali odločitev za kakšnega od svojih primerov.

Zaradi dotrajanosti obstoječega usmerjevalnika ter želje in praktičnih potreb po novih funkcionalnostih smo obstoječi usmerjevalnik s požarnim zidom želeli nadomestiti z novim. Priznati je treba, da sta bila pomembna elementa pri odločitvi in izbiri tudi cena nove rešitve ter »obratovalni« stroški. Zaradi manjših dimenzij (omejenega prostora), nižje porabe električne energije ter brezšumnega delovanja smo želeli novo rešitev, ki bi – če bi le bilo mogoče – temeljila na strojni opremi tovarniško obnovljenega lahkega odjemalca (thin client).

PFSENSE

Glede na nove funkcionalnosti (kot na primer podpora dual WAN funkcionalnosti) in možnosti poznejših razširitev s pomočjo dodatnih paketov smo kot primernega kandidata za rešitev izbrali brezplačni pfSense (https://www.pfsense.org/). PfSense je verjetno stari znanec za marsikoga, ki se ukvarja s področjem odprtokodnih rešitev, za vse druge pa omenimo nekaj osnovnih podatkov.
PfSense lahko uporabimo v različnih vlogah. Deluje lahko kot LAN/WAN usmerjevalnik, požarni zid, WLAN dostopovna točka, strežnik DHCP, VPN-strežnik … Projekt se je začel pred desetimi leti kot ločitev – začetek samostojne veje – od projekta m0n0wall (http://m0n0.ch/wall/). Razlog za ločitev naj bi bil v usmeritvi nameščanja na polno stojno opremo osebnih računalnikov (v nasprotju s projektom m0n0wall, ki se je osredotočil na tako imenovano embedded strojno opremo); posledica tega dejstva je, da v primeru uporabe m0n0walla težje izkoristimo možnosti, ki nam jih ponuja zmogljivejša strojna oprema (na primer hitrejši procesor, večji disk …). Neke vrste recept je lahko: m0n0wall je optimalen za embedded sisteme, pfSense pa je primernejši za zmogljivejšo strojno opremo, čeprav obstaja tudi različica za embedded sisteme, a o tem več v nadaljevanju.

PfSense je na začetku temeljil na Linuxu OS, a je prešel na FreeBSD OS. Razlogi za takšno odločitev so bili popolnoma praktični, eden glavnih pa je boljša podpora oziroma optimiranje posameznih ključnih sestavnih delov. Kljub temu dejstvu je strah pred morebitnimi težavami, ki bi bile posledica nepoznavanja FreeBSD, odveč. Namestitev pfSense se namreč izvede s pomočjo zagonskega medija in menujev, po vnosu osnovnih parametrov pa je mogoče takoj dostopati do vseh potrebnih informacij oziroma nastavitev prek grafičnega vmesnika v okolju spletnega brskalnika. Trenutno aktualna/stabilna različica 2.1.1 je dostopna od začetka letošnjega aprila na domači spletni strani https://www.pfsense.org/download/. Vsi z željo po »vedno svežem« pa lahko že preizkusijo različico 2.2. Če poznate možnosti nastavitev drugih sorodnih izdelkov, boste brez večjih težav lahko uporabljali tudi pfSense in praktično ne boste občutili, kakšen je osnovni operacijski sistem.

Omenili smo že, da je bilo vodilo pri razvoju pfSensa namestitev na »standardno« strojno opremo s procesorjem Intel oziroma AMD. Minimalne zahteve za namestitev so s tega stališče skoraj smešne, saj zadošča že procesor s taktom 100 MHz in 128 MB delovnega pomnilnika, v primeru embedded sistema pa je potrebna še CF-kartica oziroma drug bliskovni pomnilnik z vsaj 128 MB ter serijski vmesnik (za dostop prek konzole). Glede na strojno opremo (32-bitna različica i386 ali 64-bitna AMD64) ter način zagona (LiveCD, USB-ključek) izberemo ustrezno različico.

V primeru okrnjene različice NanoBSD, namenjene embedded napravam, izberemo glede na strojno opremo, ki jo imamo, še možnost prikaza konzole (VGA oziroma serijski vmesnik). V skladu z velikostjo vdelanega diska izberemo tudi ustrezno sliko diska (med 512 MB in 4 GB). Pri izbiri različice je treba biti pazljiv, saj vse različice ne podpirajo vseh funkcionalnosti (na primer v vseh live različicah ni podprta možnost namestitve na trdi disk). Druga potencialna past je, da polno funkcionalno različico namestimo na strojno opremo z bliskovnim pomnilnikom. Ker v tem primeru ni optimiziran način pisanja v posamezne imenike (na primer dnevniški), bo bliskovni pomnilnik hitro uničen – seveda če ročno ne bomo izvedli potrebnih popravkov in imenikov, v katere zelo pogosto pišemo, ne priključimo (mount) iz bliskovnega pomnilnika na RAM disk. Še najlažje pa je, če se držimo vodila, da za namestitev izberemo ustrezno različico.

X ALI Y – JE RES VSEENO?

Navedene osnovne zahteve brez težav izpolnjuje kar nekaj lahkih odjemalcev. Ker imajo lahki odjemalci le en ethernet vmesnik – njegova hitrost pa je odvisna od tipa uporabljenega lahkega odjemalca –, nismo pa želeli uporabiti dodatnega ethernet vmesnika prek USB-vrat, smo izbrali model lahkega odjemalca, ki omogoča možnost vdelave dodate kartice prek vodila PCI.

Med različnimi možnostmi smo izbrali tovarniško obnovljen model Neoware CA22 (enak modelu IGEL 5/4) z 1 GHz procesorjem, 512 MB delovnega pomnilnika in 512 MB bliskovnega pomnilnika v vlogi diska. Kljub deklarirani možnosti uporabe PCI razširitvene reže pa je bilo v našem primeru treba dodati tudi ustrezen 90-stopinjski adapter (»smrekica«), ki omogoča vdelavo dodatne mrežne kartice v ohišje lahkega odjemalca.

Tovarniško vgrajeni vmesnik 100BaseT smo predvideli za WAN-vmesnik (kar nam zadošča), saj imamo na glavni WAN-povezavi domačega omrežja simetrični dostop 10/10 Mb. PCI razširitveno režo smo zato lahko uporabili za vdelavo dualne Intelove kartice, namenjene strežnikom (model Intel 8492MT). Ta mrežna kartica ima zato na eni fizični kartici dva vmesnika 1000BaseT. To pomeni, da bo imel naš usmerjevalnik skupaj tri fizične vmesnike, od katerih bomo dva uporabili za WAN- oziroma LAN-priključek, tretjega pa bomo lahko uporabili po potrebi (pravi DMZ, drugi WAN-priključek, drugi LAN-priključek …). Na tem mestu opozorimo še na nekaj: Intelova kartica je namenjena uporabi v PCI-E razširitvenem vodilu, uporabimo pa jo lahko tudi v PCI-vodilu. V primeru takšne namestitve bo del vodila kartice »v zraku«, posledica pa so tudi slabše zmogljivosti, kar v našem primeru ne bo pomenilo večje težave.

Opisani primer uporabe Intelove kartice nas opozori še na eno zelo pogosto napako. Primer omenjene kartice, ki je namenjena vdelavi v vodilo PCI-X, deluje pa tudi v primeru vstavitve v vodilo PCI, pokaže v praksi veliko razliko – v prvem primeru deluje uporabljena kartica optimalno, v drugem primeru pa smo »veseli«, da deluje (omogoča dva vmesnika na eni fizični kartici), ne deluje pa optimalno oziroma tako, kot to omogočata strojna oziroma programska oprema.

Podoben rezultat lahko opazimo pri različnih karticah nizkega cenovnega razreda, po katerih pogosto posega tudi avtor besedila. Dejstvo je, da so mrežne kartice določenih proizvajalcev lahko izredno hvaležne za uporabo, saj jih brez težav zazna praktično vsak OS in tako najlažje pridemo do prvega uspešnega »pinga«. Po drugi strani pa so tovrstni vmesniki pogosto deležni (bolj kot ne upravičenih) očitkov, da vedno znova prestavljajo meje slabega. Vprašljiva je kakovost njihove izdelave (še najmanj problematično – če odpove, jo pač zamenjamo z drugo), dejanskih zmogljivosti (na primer podatek podpore 1000BaseT je lahko daleč od dejanskih prenosnih hitrosti) in kakovosti dobavljenih gonilnikov (povezava s stabilnostjo delovanja, prenosnimi hitrostmi ter obremenitvijo oziroma hitrostjo procesorja). Praktične meritve lahko velikokrat pokažejo opazna »performančna« odstopanja nizkocenovnih kartic glede na dražje.

ZNANA KONFIGURACIJA

Pred nakupom potrebnih sestavnih delov (lahkega odjemalca, dualne mrežne kartice) smo za testni usmerjevalnik uporabili star računalnik IBM Netvista. V proste PCI razširitvene reže smo vstavili tri nizkocenovne kartice. Usmerjevalnik smo zagnali s pomočjo zgoščenke, po uspešnem zagonu in vnosu osnovnih podatkov pa smo programsko opremo namestili na trdi disk.

Ob vnosu osnovnih podatkov hitro ugotovimo, da so mrežni vmesniki označeni drugače, kot smo tega vajeni v Linuxu. Če imamo kartice istega proizvajalca, bo oznaka enaka, v primeru mrežnih kartic različnih proizvajalcev pa se bodo vmesniki razlikovali (na primer em, fxp, rl). Ime vmesnika je odvisno od gonilnika oziroma proizvajalca. To dejstvo nam lahko olajša prvi zagon, ko moramo dodeliti oziroma definirati posamezne vmesnike. Če ne vemo, kateri vmesnik trenutno konfiguriramo, si lahko pomagamo s preprosto zvijačo. Vmesniki so običajno označeni po vrstnem redu razširitvenih rež (od zgoraj navzdol po matični plošči). Druga zanesljivejša možnost pa je, da vse priključne kable z izjemo tistega vmesnika, ki ga želimo konfigurirati, izključimo in pogledamo, kateri vmesnik ima aktivno stanje (to je želeni vmesnik).

Verjetno marsikdo meni, da bi za njegov primer zadoščal usmerjevalnik z le dvema mrežnima vmesnikoma in da tretjega vmesnika za DMZ ne potrebuje. Ni redko, da različni proizvajalci nizkocenovnih usmerjevalnikov, namenjenih domači uporabi, zavajajo uporabnike, saj pri svojih izdelkih oglašujejo to funkcionalnost. Dejstvo pa je, da je do tako definiranega strežnika omogočen promet z interneta in lokalnega omrežja, v nobenem primeru pa strežnik ni fizično ločen od drugih delov omrežja. Gre torej za zelo veliko razliko s stališča varnostnega vidika, kaj je DMZ.

PO USPEŠNEM TESTU – MIGRACIJA

Prehod s starega računalnika na lahkega odjemalca je pomenil določene spremembe. Mrežni vmesniki so bili v tem primeru zaradi drugih tipov mrežnega vmesnika označeni drugače – z drugačnimi oznakami vmesnikov (vdelan vmesnik oziroma dualna kartica). Zaradi omejenega števila pisalnih ciklov bliskovnega pomnilnika smo izbrali tudi različico za embedded strojno opremo. Kljub dostopnosti VGA-vmesnika na lahkem odjemalcu smo za test izbrali možnost nadzora zagona prek konzole serijskega vmesnika.

Za fizično povezavo osebnega računalnika in lahkega odjemalca smo uporabili tako imenovani null-modem kabel. Za konzolno (neke vrste serijski terminal) povezavo z osebnim računalnikom pa smo uporabili Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). Uporabili smo standardne nastavitve za serijski dostop (9600/8/N/1), ki nam omogočajo vnos osnovnih konfiguracijskih parametrov (na primer IP-naslovi vmesnikov, omogočanje SSH-dostopa …) in, če je potrebno, tudi spremembo administratorskega gesla.

Pri nameščanju programske opreme ima uporabnik več možnosti. Zaradi lažjega nadzora in možnosti konfiguracije po meri predlagamo, da izberete možnost uporabniške namestitve (Custom Install). V tem primeru imamo nadzor nad particijami oziroma ustvarjenim datotečnim sistemom. Verjetno ni odveč opozorilo, da bodo vsi podatki na disku oziroma bliskovnem pomnilniku izgubljeni. Pri embedded napravah (oziroma našem lahkem odjemalcu) moramo biti pazljivi, da ne ustvarimo izmenjevalne (swap) particije. Razlog je seveda v že omenjenih omejitvah števila pisalnih ciklov bliskovnega pomnilnika. Da bi se izognili morebitnim neprijetnostim, opozorimo na dejstvo, da se včasih zdi, kot da je postopek namestitve »zaribal«. Predvsem brez panike, potrpežljivost je mati modrosti, zato bo ta v večini primerov rešila tovrstno težavo. Na koncu lahko še enkrat preverimo, katero jedro želimo namestiti (če ni potrebe, izberemo za lahkega odjemalca možnost embedded).

Na tem mestu opozorimo še na en nasvet. V primeru zagona in uporabe embedded jedra se zdi, da se zagon ustavi. V resnici ni nič narobe, saj se prek VGA-vmesnika (če ga imamo) izpiše le prvih nekaj vrstic, naslednje pa se pošiljajo prek serijskega vmesnika v okno odjemalca (Putty). Po izvedenem zagonu lahko dostopamo prek grafičnega vmesnika v okolju spletnega brskalnika (IP-naslov 192.168.1.1) s pomočjo uporabniškega imena »admin« in gesla »pfsense«. Ker sistem po prvem zagonu še ni pripravljen za uporabo, uporabimo za prvo konfiguracijo Čarovnika, ki nas pelje prek uporabniških nastavitev.

V RESNICI DRUGAČEN

Uporabniki, vajeni nizkocenovnih usmerjevalnikov (oziroma modificiranih modelov), namenjenih domači uporabi, bodo hitro ugotovili, da prinaša pfSense kar nekaj pomembnih razlik. Za zdaj omenimo le bistveno drugačen koncept, ki se nanaša na privzeto konfiguracijo. Ta pri cenenih komercialnih modelih praktično vedno in privzeto onemogoča ves promet v omrežje in dovoljuje ves promet iz omrežja. S stališča varnosti gre, če ne že za veliko neumnost, vsaj za varnostno tveganje, saj si tega ne želimo – za določen tip prometa to ni potrebno, razlog pa je lahko tudi škodljiva programska oprema. No, v primeru pfSense je zgodba drugačna.

Razloge in rešitve bomo spoznali skupaj z nekaterimi najzanimivejšimi funkcionalnostmi na primerih praktičnih primerov v naslednji številki. Brez dvoma boste našli tudi kakšno funkcionalnost, ki bo zanimiva za vas. PfSense podpira namreč različne funkcionalnosti s področja VPN, različne vrste translacij IP-naslovov, podporo deljenju oziroma prelivanju prometa ter segmentacijo, ki omogoča boljšo uporabniško izkušnjo v primeru časovno kritičnih aplikacij (na primer prenosu govora prek IP-protokola). Seznam seveda še zdaleč ni popoln, upoštevati pa je treba, da imamo ob kopici podprtih funkcionalnost tudi določene omejitve.

Se nadaljuje …


Zanimivosti

Zmogljivi tovarniško obnovljeni ali rabljeni lahki odjemalci lahko tako s cenovnega stališča kot s stališča zmogljivosti strojne opreme pomenijo resno alternativo nizkocenovnim usmerjevalnikom. Njihove prednosti – glede na uporabo standardne strojne opreme (star računalnik) – so majhna dimenzija, neslišno delovanje in majhna poraba energije.

V primeru samogradenj se izogibajmo načelu, da je dobro vse, kar deluje. Kljub na prvi pogled enakim tehničnim lastnostim se lahko delovanje posameznih sestavnih delov bistveno razlikuje.

PfSense odlikujeta tudi odlična dokumentacija in grafični vmesnik, ki ponuja zelo uporabne osnovne namige glede konfiguracije. Uporabnik z ustreznim predznanjem tako lahko hitro zagotovi že v nekaj korakih tudi kompleksnejše funkcionalnosti.

Moj mikro, Maj - Junij 2014 | Marko Koblar