Brandväggar för mobilt bredband

Med tanke på hur mycket trafik som idag går via mobilt bredband kan det vara intressant att se om det finns någon lämplig mjukvara för att bygga en brandvägg med antingen en gammal pc eller med t ex ett litet atombaserat mini-ITX moderkort. De kriterier som gäller är att det ska vara gratis mjukvara som finns tillgänglig på nätet, det ska gå att använda standard pc-hårdvara, det ska gå att installera på en hårddisk och det ska finnas alla vanliga funktioner som behövs i en brandvägg för SOHO-använding. Det ska dessutom gå att installera minst ett och helst flera vanliga USB 3G/4G-modem (anges i texten som 3G-modem) och det ska gå att få någon form av failover eller trafikbalansering mellan de tillgängliga WAN-interfacen (användbart om man har abonnemang hos två eller flera operatörer för att få maximal upptid och tillgänglighet). Det ska helst även finnas möjlighet till en transparent proxy cache för att minska trafiken via det mobila bredbandet. Det ska gå att konfigurera och övervaka via webbgränssnitt och det ska gå att ansluta via ssh för att göra mer brutala saker som inte det grafiska gränssnittet klarar. Dessutom ska naturligtvis det installerade systemet vara så säkert som möjligt.

Jag har valt att använda ett mini-ITX kort från Intel (D510MO) för testerna. Anledningen till att använda riktig hårdvara istället för virtuella testmaskiner är att det är enklare att bedöma USB-funktionaliteten då. Det finns även ett extra ethernetkort och en hårddisk monterat. Det finns anledning att påpeka att D510MO har vissa små egenheter för sig vid bootning om USB-modem är anslutna, det kan ta väldigt lång tid att komma förbi startskärmen även om allt utom bootning till hårddisk är avstängt. Som jämförelse till ovanstående hårdvara har jag även tagit med en fristående liten 3G-router.

För att 3G-modem ska fungera normalt i Linux och liknande miljöer krävs att den i modemet inbyggda USB-disken (där drivrutiner mm finns lagrade) inaktiveras för att serieportarna ska bli tillgängliga. För detta finns i Linuxdistributionerna ett program (om det är installerat) som heter usb-modeswitch som kopplar om modemet korrekt beroende på modell och fabrikat. Saknas detta program fungerar det normalt inte att använda modemet om man inte permanent stänger av USB-disken i modemen på något sätt. Vissa Linuxdistributioner har även viss omkopplingsfunktionalitet inbyggt i kärnan. Det brukar alltid finnas något sätt att komma till rätta med omkopplingsproblemen även om de flesta sätt kräver tämligen goda kunskaper i det aktuella systemet.

Zentyal 2.0.3

Hette tidigare ebox. Baserat på Ubuntu. Den normala installationen partitionerar disken med en separat home-partition som har mycket begränsad användning i en router. I expertvarianten av installationen blir det en vettigare partitionering. Installationen är helt överlastad med paket som inte har på en firewall att göra och det gör att säkerheten på en sådan här enhet måste sägas vara lägre än önskat. Det finns ingen anledning att ha en desktop med gnome installerad när konfiguration och kontroll sker via ett webbinterface. Inte heller behövs det flera olika databasmotorer mm installerat. Långsam installation som inte känns genomtänkt. Saknar usb-modeswitch som standard, men den installeras enkelt med apt. Tyvärr verkar det inte finnas någon support för annat än ethernetportar i gränssnittet. I övrigt verkar det mesta finnas som krävs. Om Zentyal ska vara intressant måste utvecklarna gå igenom hela distributionen grundligt och ta bort allt onödigt resurskrävande och tänka igenom vad de vill leverera.

Endian Firewall 2.4.1

En open source variant av betalversionen. Verkar initialt bra, installationen tar lite tid men installerar inte en massa onödigheter. Linuxbaserad (Red Hat eller CentOS?). Påstås stödja 3G-modem men saknar usb-modeswitch. Det borde vara relativt enkelt att installera rätt paket (enligt uppgift ska CentOS 4 rpm-paket fungera) men där finns inte usb-modeswitch tillgänglig och senare varianter kräver nyare versioner av vissa paket än vad som är installerat. Det går inte att direkt installera paket från någon känd källa. Det är lite märkligt att systemet använder en helt ny kernelversion tillsammans med paket som är åtskilliga år gamla, det verkar inte genomtänkt. 3G fungerar inte utan omfattande modifiering eller manuell aktivering. Känslan är att det borde uppdateras en del under skalet så att man kan stödja modern hårdvara. Distributionen har dock potential att bli bra.

pfSense 2.0 RC1

pfSense baseras på Monowall som i sin tur bygger på FreeBSD. Den stabila versionen av pfSense är 1.2.3 men det finns inget stöd i den för 3G-modem. RC1 versionen påstås vara stabil för drift men man ska nog ta det påståendet med en stor nypa salt, installationen drabbades t ex av kernel panic vid första installationsförsöket. Bortsett från detta är den enkel att installera och konfigurera när man väl vet var de olika funktionerna finns. Tyvärr är inte stödet för de mer intressanta 3G-modemen fungerande, t ex så fungerar det inte med Huawei E1820, däremot med det långsammare E1750 även om funktionen inte är helt stabil. Detta beror på att FreeBSD ligger efter Linuxsystemens stöd för ny hårdvara, huvudsakligen eftersom man valt andra mjukvarulösningar och alltså inte drar nytta av det som redan finns i Linux. Dessutom verkar det inte fungera att ansluta två USB-modem samtidigt. Det känns som det kommer att ta ytterligare ett antal månader innan pfSense 2.0 är färdig för användning i någon form av produktionssystem.

ClearOS 5.2 SP1

Hette tidigare Clarkconnect. Baserat på CentOS. En annan distribution som använder grafisk desktop för konfiguration, även om exakt samma skärm kan nås via webbgränssnitt. Snyggt förpackat men det finns en del begränsningar i gratisversionen som gör den mindre användbar. I första hand avsedd för de som endast behöver ethernetanslutningar. 3G-modem går att ansluta men kräver installation av vissa paket och manuell konfigurering. Vissa funktioner kräver dessutom abonnemang för att fungera. En ny version, 6.0 är på gång, men när den kommer och vad som skiljer den från den nuvarande versionen är inte helt klart.

Vyatta 6.2

Med Vyatta kan man inte direkt klaga på att det är för mycket hjälpinformation eller flashig grafik. För att över huvud taget kunna få till ett startbart system måste man plocka fram installationsmanualerna och kolla upp vilka kommandon som krävs för att installera och konfigurera tillräckligt för att kunna köra igång ett webbgränssnitt. Tyvärr är gränssnittet sådant att det absolut inte lämpar sig för en enkel och snabb konfigurering, snarare finns här hur mycket inställningar som helst men tyvärr fullständigt ologiskt och användarovänligt presenterat. Det är bra att ha möjlighet att göra detaljerade inställningar ibland men det är även praktiskt att ha logiska och enkla inställningar för grundfunktioner. Användaren ska inte behöva kunna en massa olika kommandon eller liknande när en dator kan göra det jobbet mycket bättre. Vyatta kan förmodligen klara av det mesta men det ser ut att ha en tämligen brant inlärningskurva.

Zeroshell 1.0 beta14

Zeroshell är en italiensk brandväggsdistribution som är tänkt att användas i system med små resurser. Med andra ord är det inga onödiga funktioner som finns med här. Tyvärr går det inte att installera systemet till hårddisken från live-CD:n, för att göra det måste man använda några kommandon och dessutom en diskimage för flashminnen. Om man kör från CD och lagrar konfigurationen på hårddisken funkar det tills man pluggar i 3G-modemet, då verkar systemet hicka till och vräker ur sig felmeddelanden. Förmodligen har det något att göra med systemet inte riktigt klarar av att hantera flera USB-enheter korrekt. Man kan även notera att systemet inte klarar av att korrekt detektera ethernetinterfacet på moderkortet. Zeroshell har helt klart fortfarande en bit fram till en användbar produkt och dessutom behövs det i så fall mer omfattande funktionalitet. Men det kan finnas anledning att titta på den igen någon gång i framtiden.

Dovado 4GR

Dovado 4GR är en fristående router och brandvägg med anslutning för ett usb-modem och en ethernetport för WAN. Den passar naturligtvis inte in i gratissortimentet men den är kan vara ett alternativ för den som vill ha en så enkel installation som möjligt. 4GR är enkel att installera och konfigurera men tyvärr finns det egentligen inga avancerade inställningar alls vilket begränsar användningsmöjligheterna tämligen rejält. Man får känslan att utvecklarna inte är riktigt fokuserade på att göra en bra produkt, vad ska man t ex med stöd för USB-ansluten GPS till i en brandvägg? En irriterande dumhet är att 4GR måste startas om för att en ändring som gjorts ska aktiveras vilket medför att man tappar kontakten under någon minut. Det tar rätt lång tid att koppla upp via 3G, betydligt längre än vid användning i en vanlig PC. Det går inte att ansluta två 3G-modem trots att enheten har två USB-portar. Tyvärr går det inte heller att använda 4GR som en ren brygga mellan USB-modem och ethernet, vilket hade varit väldigt praktiskt i en del situationer t ex för att ansluta ett 3G-modem till en brandvägg som endast har ethernetanslutning.

Förutom ovanstående har jag även tittat på några andra brandväggsdistributioner bland annat Ipfire, Smoothwall och Untangle, dessa har dock inte varit intressanta att ens installera då de redan efter en snabb koll inte alls uppfyller de krav som är uppställda. Detta kan dock komma att ändras i kommande versioner.

Den slutsats man kan dra av detta test är att det ännu inte finns någon mjukvarubaserad brandvägg som har ett rimligt fungerande stöd för 3G/4G-modem. För några distributioner skulle det vara enkelt att få till det, det som behövs är tillägg eller uppdatering av mjukvarupaket och en anpassad konfigureringsmöjlighet. Förmodligen kan vi få se en eller flera av de ovanstående ha sådan funktionalitet på plats någon gång senare i år. Kanske jag kommer med en mer ingående analys av ett sådant system då.

Skriv en kommentar

Du kan använda dessa HTML-taggar

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>