Linux E X P R E S

Facebook

m0n0wall: švajčiarský nôž na internetovú bezpečnosť

m0n0wall_logo120.png

Predstavenie a popis zaujímavého embedded firewallu postaveného na FreeBSD s kompletnou správou cez webové rozhranie.


Predstavenie

Za m0n0wallom stojí Manuel Kasper a jeho motiváciou pre vývoj m0n0wallu bolo postaviť rýchly, jednoduchý firewall bez zbytočností, ktorý by spĺňal všetky jeho potreby. Ďalej, aby bol zadarmo a bolo ho možné kompletne ovládať cez webové rozhranie, bez zadania čo i len jedného príkazu v príkazovom riadku.

Po rôznych pokusoch čuduj sa svete skončil pri PHP, pomocou ktorého zabezpečil aj ovládanie celého systému, vrátane spúšťacích skriptov. Na ukladanie nastavení použil formát XML. M0n0wall má byť alternatívou k drahým komerčným firewalom.

Aktuálna, len nedávno vydaná verzia 1.8.1, je postavená na FreeBSD 8.4 a jej nároky sú naozaj minimalistické, ako by aj dalo očakávať od embedded systému.

Na rozbehnutie m0n0wallu vám bude postačovať v podstate akýkoľvek x86 hardvér s minimálne dvoma sieťovými kartami, ktorý podporuje daná verzia FreeBSD. Ďalšie požiadavky sú 128MB RAM a minimálne 32MB úložný priestor (HDD, CF karta, ...). M0n0wall oficiálne podporuje hardvér od viacerých firiem, napríklad SoekrisPC Engines.

Inštalácia a základné nastavenie

Inštalácia je veľmi jednoduchá a je možná viacerými spôsobmi:

stiahnuť si image disku a ten nahrať na disk,

stiahnuť si ISO, to napáliť na CD a spustiť m0n0wall z CD. Následne si môžeme m0n0wall z CD nainštalovať na disk, alebo používať priamo z CD (v tomto prípade je potrebná ešte FDD alebo USB kľúč pre uloženie konfigurácie).

M0n0wall je možné nainštalovať aj ako virtuálny stroj (otestované vo virtualboxe). Dokumentácia na stránke projektu je veľmi dobrá, dopracovať sa k postupu pre váš konkrétny prípad by tak nemal byť problém.

Prednastavená IP na LAN rozhraní je 192.168.1.1, m0n0wall beží na štandardnom porte 80 a prednastavené meno a heslo je admin/mono. Štandardne je na LAN rozhraní zapnutý DHCP server.

Úvodná obrazovka konzoly Úvodná obrazovka konzoly


M0n0wall má dostupnú aj konzolu, kde je možné upraviť/nastaviť len základné parametre a použijete ho len na prvotné nastavenie/úpravu ak vám prednastavené základné parametre nevyhovujú alebo potrebujete restovať nastavenia/celý firewall. Všetky tieto možnosti/nastavenia sú dostupné aj cez GUI.

Popis GUI

Ako už bolo spomínané, cele nastavenie samotného firewallu sa deje cez webové rozhranie dostupné cez LAN rozhranie.

Menu úvodnej obrazovky vám hneď odhalí aj možnosti m0n0wallu. Jeho možnosti sú široké a splní asi väčšinu požiadaviek kladených na firewall. K samotnému menu mam len menšie výhrady a jeho usporiadanie by som trochu poprehadzoval a upravil. Je to ale vec chuti. Pri všetkých nastaveniach je krátky popis, ktorý uľahčuje porozumieť im.

Ako u iných podobných zariadení je možné celé menu rozdeliť do troch logických častí – systémové nastavenia, nastavenie služieb a správa. Nižšie si ich bližšie rozpíšeme, aj s krátkym popisom hlavných položiek.

Úvodná obrazovka GUI Úvodná obrazovka GUI

Systémové nastavenia

Sem by som zaradil záložky System a Interfaces. Jednotlivé nastavenia sú dostatočne zrozumiteľné a v prípade potreby je tu aj dokumentácia.

General setup – základné nastavenia ako Hostname, Domain, úprava administrátorského mena a hesla, zapnutie HTTPS pre GUI a zmena portov, nastavenie času a časovej zóny

Advanced – zapnutie podpory IPv6, pridanie/vygenerovanie self-signet certifikátu pre HTTPS, vypnutie konzoly a ďalšie rozšírené nastavenia, pri ktorých je potrebné dobre vedieť, čo nastavujeme.

Interfaces (assign) – možnosť zmeniť priradenie sieťových kariet k rozhraniam, vytváranie VLAN a WIFI (AP)

WAN – nastavenia parametrov podľa typu pripojenia (Static, DHCP, PPPoE, PPTP)

Nastavenie služieb

Sem by som zaradil záložky Firewall, Services a VPN. Ľudí, ktorý čakajú, že s m0n0wallom jednoducho bez znalostí o danej problematike naklikajú firewall za pár minút, asi na tomto mieste sklamem. M0n0wall je „klikací“ firewall, ale bez určitých znalostí to aj tak nepôjde. Nápomocná vám bude veľmi dobrá a prehľadná dokumentácia a veľké množstvo návodov na internete.

Rules – tu sa skrýva alfa a omega m0n0wallu. Tu zapisujeme pravidlá pre samotný firewall, ktoré sú rozdelené podľa smeru komunikácie na WAN a LAN. Predstavené sú v len dve pravidlá – kompletné blokovanie príchodzej komunikácie, a na druhej strane povolenie všetkej odchodzej komunikácie. Pri zadávaní pravidiel treba mať na pamäti, že firewall prechádza pravidlá z vrchu nadol, a tak treba dbať na poradie pravidiel, čo spôsobuje problémy hlavne začiatočníkom.

NAT – poskytuje štyri možnosti nastavenia Inbound, Server NAT, 1:1, Outbound.

Traffic shaper – tu si vieme nastaviť prioritu a šírku pásma jednotlivým službám. Trochu nelogicky je záložka Pipes ako druhá, hoci musí byť zadefinovaná ako prvá. Je tu aj Magic shaper wizard, ktorý prednastaví shaper na základe rýchlosti vášho pripojenia, čo môže byť nápomocné menej skúseným používateľom (nemusí, mňa skôr vydesilo).

Captive portal – zaujímavá funkcia, pomocou ktorej viete kontrolovať/spravovať prístup do internetu cez internetový prehliadač. Poskytuje široké možnosti od autentifikácie cez pridanie vlastných html stránok, jednoduchý file manager až po generovanie voucherov pre prístup.

VPN – tu bude niekomu chýbať Open VPN, ktorý bol v určitom období v m0n0walle implementovaný, ale následne kvôli problémom odstránený. Priepustnosť m0n0wallu na klasickom x86 embedded hardvéri je relatívne nízka a v tomto smere nevie konkurovať komerčným zariadeniam, ktoré obsahujú špecializovaný hardvér na podporu šifrovania.

Pre m0n0wall existuje minimálne jedno riešenie v podobe rozširujúcej karty od už spomínanej f.Soekris, ktorá dokáže zvýšiť priepustnosť VPN. Ďalšia možnosť by bola v podobe výberu CPU s HW šifrovaním (napr. VIA Padlock), ale toto je novinka čerstvej verzie 1.8.1, a tak sa mi zatiaľ nič bližšie nepodarilo nájsť. Zhodou okolností m0n0wall testujem na základnej doske s takýmto procesorom, ale priestor na vyskúšanie zatiaľ nebol.

Scheduler – veľmi zaujímavá záložka, kde je možnosť si nastaviť a naplánovať spustenie/pravidelné opakovanie preddefinovaných akcií. Je tu možnosť si naplánovať reboot firewallu, znovu pripojenie WAN, vypnutie/zapnutie LAN/WAN, vypnutie zapnutie traffic shapera alebo len jeho pravidla alebo zmenu pridelenej šírky pásma. Ďalej nastavenie Wake on LAN alebo nastavenie spustenia užívateľského príkazu.

Správa

Sem sa radia posledné dve záložky StatusDiagnostics. Ak ste už niekedy pracoval aspoň s nejakým jednoduchým firewallom alebo routrom/smerovačom (aj s obyčajným WAN/LAN, xDSL,WIFI), tak možnosti m0n0wallu vám nebudú neznáme. V podstate rozdiel je len v detailnosti informácií diagnostických nástrojov a aj tu je potrebná určitá znalosť problematiky, aby vám tie kvantá informácií k niečomu boli.

Ďalšie možnosti m0n0wallu, ukážka výkonu

Ako som už spomínal, tak minimom pre m0n0wall sú dve sieťové karty. M0n0wall ich vie využiť viacero a na rôzne účely. Ďalšiu viete využiť napríklad pre samostanú demilitarizovanú zónu (DMZ). Určite viacerých napadne použiť ďalšiu v konfigurácii multiple WAN (aj mňa to napadlo). To bohužiaľ nejde, kde sám autor na to reaguje, že m0n0wall je hlavne firewallom vyvíjaným s dôrazom na jednoduchosť a spoľahlivosť.

Nezúfajte, existujú minimálne dva forky m0n0wallu, ktoré multiple WAN podporujú alebo plánujú. Najznámejším je pfSense, ktorý do m0n0wallu pridáva nielen podporu multiple WAN a svojimi možnosťami záberom je už niekde inde ako m0n0wall. Druhý je m0n0wall-mod, ktorého zámerom je len rozšírenie možností WAN rozhrania, ale tento projekt nie je príliš aktívny.

M0n0wall vie plniť aj funkciu wifi AP. Stačí na to kompatibilná wifi karta, ale ohľadom wifi nie je dokumentácia najaktuálnejšia.

Test výkonu

Na zistenie schopností m0n0wallu som vykonal jednoduchý test priepustnosti. Použil som na to dosku ENDAT-3400M s procesorom VIA LUKE 1GHz a sieťovou kartou VIA VT1631L, v PCI slote ďalšia sieťová karta 3COM 3C905CX-M, 256MB RAM a 128MB CF karta v úlohe disku.

Nastavených bolo len niekoľko jednoduchých pravidiel firewallu a NAT (tak ako mám nastavený aj môj domáci router), plus niekoľko otvorených spojení. Zdrojom dát bol v jednom smere ftp server a v druhom sftp server.

Táto zostava v tomto teste zvládla priepustnosť na úrovni 74/93 Mbit (In/Out) pri 97% vyťažení CPU. Pri takomto vyťažení boli reakcie GUI veľmi pomalé, ale nestalo sa, aby úplne prestalo reagovať.

Ukážka grafu priepustnosti Ukážka grafu priepustnosti

Krátke zhodnotenie

Osobne ma tento projekt veľmi oslovil. Pohybujem sa v takých sférach, kde je m0n0wall viac ako vhodná alternatíva (dostatočné vlastnosti a výkon) ku komerčný firewallom, na ktorých ma najviac iritujú rôzne umelé softvérové/predplatné obmedzenia a drahé hardvérové upgrady.

Mám rád jednoúčelové veci, ktoré dobre spĺňajú to, čo sa od nich očakáva, bez výrobcom hádzaných polien pod nohy. Nie som sieťový guru, a tak mi prišlo vhod prehľadné GUI s dobrou dokumentáciou a komunitou. Ak do toho ešte zarátam ceny a dostupnosť rôznorodého embedded hardvéru, tak je to výborná kombinácia k stavbe firewallu na mieru.

Diskuze (1) Nahoru