Bygg din egen router med pfSense.
-
1. Lite kort om pfSense
pfSense är en router och brandvägg programvara baserad på FreeBSD och lanserad under BSD licensen. pfSense är gratis och härstammar från m0n0wall som är en mycket resurssnålare variant av router/brandvägg med fokus på integrerade system. Den senaste stabila och rekommenderade versionen av pfSense är 1.2.3 och bygger på FreeBSD 7.2. Nästa version av pfSense (2.0) är planerad tidigt 2010.Varför pfSense?
Pfsense är en mogen routermjukvara som kan mäta sig med valfri kommersiell routerlösning.
Även om olika routrar varierar stort både i funktionalitet och prestanda över prisklasserna kan man i gemene mans fall notera följande fördelar och nackdelar med en pfSense lösning.Fördelar:
+Mycket Funktioner.
+Stora konfigurationsmöjligheter.
+Stabilitet.
+Säkert, är så säkert som du väljer att göra det.
+Billigt om du redan har hårdvaran.
+Enkelt att administrera.
+Bra övervakningsmöjligheter.
+Stort community, lätt att få hjälp.
+Bra prestanda.
+Open source.Nackdelar:
-Beroende på grundsystem kan det dra mer ström än en vanlig router.
-Kan till en början kännas stort och svårt.
-Krävs att du bygger ihop delar och konfigurerar mjukvaran själv.Det största dragplåstret är nog alla funktioner som finns tillgängliga. I delen "5. Lär dig ditt system" nämner jag ytligt en större del av dessa funktioner och vad respektive gör. För en mer detaljerad lista kan du surfa in på pfSense officiella hemsida under Features där större delen av grundfunktionerna nämns.
För en vanlig svensson är nog en pfSense lösning ingen bra ide. Men för dig som tycker om att experimentera, lära dig, prova något nytt eller är allmänt trött på din vanliga routers begränsade funktioner, dåliga prestanda/stabilitet så kan en pfSense lösning vara något för dig. Då mjukvaran är gratis och kan köras på en stor bredd av hårdvara kan det ofta vara billigare att bygga en router baserad på pfSense än att köpa en helt ny.
-
2. Planering och hårdvara.
Börja med att hitta en dator för projektet. pfSense kan köras på någon gammal PC du har liggandes eller ett nytt resurssnålt system.
Det finns systemkravs riktlinjer angivna av pfSense utvecklarna baserat på hur mycket trafik du kommer skyffla över routern.CPU:
Bredbandshastighet:
· 6-8 Mbit/s : 200 Mhz cpu
· 20-50 Mbit/s : 400 Mhz - 600 Mhz
· 100 Mbit/s: 700 Mhz – 1000Mhz
· 1 Gbit/s: 2.8 Ghz (läs mer under High Throughput Environments via länken nedan)
http://doc.pfSense.org/index.php/Hardware_requirements#Minimum_Hardware_RequirementsRAM
Minsta Rekommenderade ramstorleken är 128 Mb.Nätverkskort(NIC)
Utvecklarna rekommenderar nätverkskort med Intel chips, sämre nätverkskort ger ofta högre belastning på cpun och sämre hastigheter.Disk
Minst 1GB hårddisk. För embedded versionen läs nedan.Embedded
Det finns också en embedded verision för att installeras på flashminnen som inte sliter lika mycket på minnet.
Mer information om det här: pfSense 1.2.3 EmbeddedHårdvarulista
Då pfSense 1.2.3 baseras på FreeBSD 7.2 så är det FreeBSD 7.2s hårdvaru kompatibilitetslista som du ska kolla på för att ta reda på om just din hårdvara stöds.
FeeBSD 7.2s hårdvarulista: http://www.freebsd.org/releases/7.2R/hardware.html
Det är rekommenderat att använda hårdvara som återfinns i listan ovan för att undvika onödigt strul.Hur ska du kopplas?
Pfsense datorn ska kopplas mellan internet(WAN) och ditt lokala nätverk(LAN). Internet(WAN) är den nätverkssladd som kommer från ditt modem eller liknande. Pfsense måste ha minst två nätverkskort för att kunna fungera, där det ena går direkt mot internet och det andra mot ditt lan.
Efter pfSense datorn behöver du en switch om du ska koppla in mer än en maskin på LAN sidan. -
3. Live CD & nerladdning
Som många andra distributioner så har även pfSense en Live CD version som kan hämtas ner från deras webplats. Live CDn låter dig prova pfSense utan begränsningar direkt från CD-läsaren utan att röra den lokala hårddisken. I denna guide kommer vi ladda ner pfSense live cd 1.2.3 och provköra systemet vartefter vi installerar pfSense till hårddisken.
Vmware appliance finns tillgänglig för er som lätt vill testa pfSense under någon VMware produkt och kan hittas här VMware appliancepfSense kan hämtas från någon av källorna via denna länk mirrors
pfSense Live CD 1.2.3 : direktlänk -
4. Installation och grundläggande konfiguration
Börja med att packa upp och bränna ut pfSense-1.2.3-RELEASE-LiveCD-Installer.iso.gz, sätt in den i datorn den ska installeras och starta från cdn.
Efter att du har startat från cdn möts du av följande meny:
Välj ”1. Boot pfSense [default]"Därefter startar pfSense upp och detekterar din hårdvara, du kommer nu till den grundläggande nätverkskonfigurationen.
Först visar pfSense alla detekterade nätverkskort
Du får sedan välja om du vill använda VLANS.
Då vi i denna guide inte kommer använda VLANs välj nej ”n”.Nu ber pfSense dig ange nätverksporten till ditt lokala nätverk (lan). Vi skriver här ”a” för auto-detection.
Koppla sedan in nätverkskabeln från ditt lokala nätverk (LAN) i det uttag du valt att ha som lanport och klicka på enter. pfSense kommer nu automatiskt känna av vilken port som blev aktiv och spika att denna är lan porten.
Nu ska du ange vilken port som ska vara WAN porten, detta är nätverksuttaget mot internet . Välj återigen ”a” för auto-detect, sätt i nätverkskabeln från ditt bredbandsuttag/modem och klicka enter.För er som inte har behov av fler nätverksportar hoppa förbi OPT delen av guiden nedan. För er som vill ha BBB lastbalanseringen så måste 4 stycken OPT nätverksportar(interfaces) anges. OPT står för "Optional interface" och kommer i våran konfiguration fungera precis som den redan angivna WAN-porten. Med andra ord upprepa proceduren som du gjorde för WAN porten för alla dina OPT nätverksportar.
Fortsätt att ange alla OPT portar på samma sätt som vid WAN porten.När du är klar klicka bara enter och du pfSense visar hur du bundit dina portar
pfSense ber dig bekräfta dina inställningar, ange ”y” och fortsätt.
pfSense skapar nu default configurationsfiler och sedan kommer du till ”pfSense console setup”.Vi börjar med att konfigurera hur pfSense ska hantera ditt lokala nätverk. Skriv ”2” vid prompten och du startar ”2) Set Lan IP address”.
Skriv 192.168.1.1, detta är ip adressen du kommer använda för att komma åt pfSense från ditt lokala nätverk.
1: Ange bitcount: ”24”
2: Ange ”y” vid DHCP frågan.
3: Välj början på ip rangen i vilken dina datorer i lanet kommer tilldelas ip adresser. Skriv ”192.168.1.30”
4: Ange slutet på rangen ”192.168.1.100”Klicka sedan enter för att spara och du kommer tillbaka till menyn.
Nu kan du administrera din pfSense router från din webläsare. Detta från en dator på ditt lokala nätverk anslutet till din pfSense router på lan porten.
Skriv in ”http://192.168.1.1” i valfri webläsare för att komma till pfSense webGUI.
Du möts nu av en loginruta, ange admin som användare och pfSense som lösenord. Därefter startar en konfigurationsguide.
Klicka next vid välkomstrutan.
Ange hostname, ex pfSense.
Har du en domän kan du skriva in den här, annars lämnar du den som ”Local”
Lämna båda DNS server fälten tomma om du inte vill använda exempelvis OpenDNS.
Vid time server information välj "Europe/Stockholm" i listan och klicka next.Nu är det dags att ange hur pfSense WAN port ska få sin ip adress och kommunicera med internet.
Välj här ”Configure WAN Interface: SelectedType: DHCP” för att få en ip-adress tilldelad av din ISPs DHCP server.
(ISP Internet Service Provider är din bredbandsleverantör)
Restan kan lämnas som det är.
Vid ”Configure LAN Interface” klicka Next
Skriv in ett admin lösenord, detta kommer användas för all administrativ åtkomst till routern och klicka sedan next.Klicka sedan ”Reload” för att applicera de nya inställningarna och logga in med det nya lösenordet. Det kan nu ta lite tid beroende på hårdvara innan pfSense laddats om med de nya inställningarna.
Du möts nu av standardsidan som visas varje gång du loggar in på din pfSense router
Notera att det under "Platform" står cdrom och "Disk usage" är 100%. Detta är för att pfSense just nu körs direkt från CDn. Du kan nu klicka runt och utforska de olika menyerna eller gå direkt vidare till nästa steg som är att installera pfSense till din hårddisk.Installera pfSense till din hårddisk
Nu är det dags att installera pfSense till den lokala hårddisken, om du nu ångrat dig är det bara ta ut CDn och boota om och datorn kommer starta som innan.Återgå till konsolen och skriv in 99 vilket är ”99) Install pfSense to a hard drive/memory drive, etc.”
Första rutan du möts av är Configure Console, här behöver du bara välja ”Accept these Settings” om du inte vill ändra exempelvis teckenformatering eller liknande.I version 1.2.3 har utvecklarna gjort en < Quick/Easy Install >. Om du bara ska använda pfSense på datorn och på den lokala hårddisken kan du välja att köra denna. Men om du har flera partitioner/system på disken så måste du köra < Custom Installl > så att inte pfSense partitionerar om och formaterar hela disken till sig själv.
Då vi i guiden endast kommer köra pfSense på datorn väljer vi < Quick/Easy Install > så partitionerar och formaterar pfSense disken åt oss.
Vi måste nu bekräfta att vi vill låta pfSense sköta installationen helt utan att fråga oss om hur strukturen på disken ska se ut.
Välj här < OK > - **OBS all befintlig information på disken kommer försvinna.pfSense formaterar, partitionerar och kopierar nu filer. När en lyckad installation till hårddisken är klar får du välja hur många processorer pfSense ska kunna utnyttja.
Då jag bara har en enkärnig processor väljer jag "< Uniprocessor kernel (one processor) >". Kör ni pfSense på en dator med flera kärnor välj "< Symmetric multiprocessing kernel (more then one processor) >".Efter att pfSense är färdig möts du av följande skärm
Ta nu ut CDn ut CD läsaren och välj "< Reboot >" för att starta om systemet, denna gång från hårddisken.
Återigen möts du av pfSense bootloader, utan att välja något kommer pfSense starta i standardläge.Den grundläggande konfigurationen av din pfSense router är nu färdig!
Andra installationsmöjligheter
Som tidigare nämnt kan pfSense installeras under VMware, som embedded eller direkt uppgraderas från en äldre version.
Guider till respektive på engelska kan hittas på pfsense docs:
Installing pfSense in VMware under Windows
Installing pfSense - Embedded
Upgrade Guide** -
5. Lär dig ditt system.
Nu när vi har satt upp ett fullt fungerande pfSense system är det dags att lära sig lite mer om hur WebGUIn fungerar.
Som tidigare nämnt är detta den första sidan du möts av när du loggar in på webGUIn, här hittar du bland annat:
Name: namnet på ditt pfsense system, det går även att använda pfsense.local för att komma åt routern.
Version: Din installerade version av systemet och när den installerades.
Uptime: upptid på ditt system.
State table size: visar alla dina anslutningar som upprättats genom din router och max antal som kan upprättas innan states tabellen måste utvidgas.
CPU usage: visar den nuvarande cpu användningen i 5 sekunders intervaller.
Memory usage: visar hur stor del av RAM minnet som för närvarande används.
SWAP usage: visar hur stor del av din swap partition på hårddisken som används.
Disk usage: visar hur mycket av det lokala hårddiskutrymmet som används.Det finns även sju stycken rullgardinsmenyer som är åtkomliga genom att hålla musen över.
Innan vi går in lite mer i detalj vad som finns i respektive meny ska vi gå igenom brandväggsloggen, hur man loggar till en syslog server, interfaces och RRD graphs som återfinns under status i rullgardinsmenyn.Brandväggsloggen
För att se vilken aktivitet som brandväggen blockerat eller för att debugga om en regel fungerar är det brandväggsloggen som ska undersökas.
Navigera till Status->System logs och klicka sedan på fliken Firewall.
Här visas alla uppslag som gjorts av brandväggen på följande format:
Act (åtgärd) - Time - If (interface) - Source (källa/ursprung) - Destination (mål) - Proto (protokoll).
När en anslutning blockeras av brandväggsrelgerna ser det ut enligt följande
När en anslutning matchar en regel exempelvis vid portforward så ser det ut såhär
Genom att klicka på Kryss eller Pil tecknet visas en ruta med information om vilken regel det var som triggade åtgärden.
Notera att egna regler som matchar endast skrivs ut om man manuellt sätter på:
under Firewall->Rules->Edit för sin regel, detta är väldigt effektivt när man felsöker/testar sin regel.I verison 1.2.3 av pfSense introducerades också dynamic view.
Detta innebär att uppslagslistan uppdateras automatiskt, för att slå på dynamic view klicka på Switch to dynamic view.
Det var lite kort om brandväggsloggen.Extern Syslog server
Har du en extern syslog server kan du säga till pfsense att logga till denna under Status->System logs och sedan Settings fliken.
Här finns också lite inställningar för pfSense loggning.
Börja med att klicka i Enabel syslog'ing to remote syslog server.
Sedan är det bara att ange ip-adressen till den maskin som kör en syslog server och vilka loggar som ska skickas dit.
Klicka Save för att spara.
Exempel på syslog mjukvara för windows syslogwatcher eller Kiwi.RRD graphs
RRD graphs är ett väldigt användbart verktyg för att grafiskt representera information om ditt pfSense system.
Navigera till Status->RRD Graphs för att komma åt verktyget.
Här under kan exempelvis nätverksgenomströmning, cpu användning och dylikt övervakas.
Bilden är relativt självförklarande så jag går inte in närmre på vad respektive flik gör :)Interfaces
Under Interfaces visas mycket nyttig information om dina nätverksportar.
Navigera till Status->Interfaces för att se informationen.
Här är det lätt att se sin externa ip-adress. Vid WAN->Ip address står den externa ip addressen som är bunden till nätverksporten.
För er som kommer köra multiwan och behöver få reda på era olika ip-addresser är det här ni ska kolla.Andra menyer
Jag kommer nu gå igenom var och en av menyerna ganska ytligt så ni vet ungefär vad som ligger var och vad det gör.System
Advanced: avancerade inställningar som Secure Shell (SSH), webGUI SSL m.m.
Firmware: Uppdatering av pfsense mjukvaran antingen manuellt eller automatiskt.
General Setup: Här finns de allmänna inställningarna för ditt system. Exempelvis hostname, domain, uppgifter om admin användaren och teman (Theme) där du kan välja olika layouts på pfSense.
Packages: pfSense kommer med mycket out-of-the-box, men är det något du saknar så kolla under paket menyn. Här listas många paket till pfSense som inte är inkluderade i standard installationen som Snort, squid, phpSysInfo och många många fler. Notera att många paket är i alfa- och betastadiet och kan därför vara buggiga.
Setup wizard: Detta är samma konfigurations guide som du körde under installationsprocessen.
Static routes: statiska routningsvägar kan anges här.Interfaces -alla dina interfaces alltså nätverkskort du angav under installationen.
(assign) låter dig omdefiniera de olika portarna. Exempelvis om du vill byta lanport utan att gå till konsolen kan det göras här.
WAN, LAN, OPT1 etc: här kan du hitta inställningar för respektive port, bland annat hur de tilldelas IP-adresser.Firewall - Här hittar du pfSense brandväggsfunktioner och NAT.
Aliases: Här kan du bestämma aliases (smeknamn), väldigt användbart om du kommer ha många regler i brandväggen. För mer om det hoppa till Aliases delen av guiden.
NAT: NAT (Network adress translation) är en teknik med vilket du kan peka datorer på internet mot datorer som ligger internt i ditt lan. För mer om detta hoppa till Portforward delen av guiden.
Rules: Här inne skapas alla dina brandväggsregler, regler skapas normalt automatiskt när du lägger till regler i NATet.
Schedules: Här kan du schemalägga olika tider/datum som du sedan kan använda på dina brandväggsregler. Exempelvis kan du göra så du inte kan surfa mellan 13:00-14:00 varje söndag i månaden och liknande.
Traffic Shaper: Kraftfullt verktyg om din bror tankar mycket och du vill prioritera din trafik över hans. Detta är kanske är lite avancerat men en guide kan hittas Här
Virtual IPs: Här kan du sätta upp virtuella ip adresser, mer info om det härServices -Här visas alla dina installerade services
Captive portal: En portal där du kan välja att användare först måste logga för att exempelvis kunna surfa. En Wink guide om det här
DNS forwarder: Här finns inställningar för din DNS Forwarder. Enkelt fungerar den som så att den skickar vidare alla DNS förfrågningar från datorerna i ditt lan till din ISPs DNS server (om inte annan är angiven).
DHCP realy: Om du vill att DHCP förfrågningar ska kunna skickas till en extern DHCP server.
DHCP server: Pfsense DHCP (Dynamic Host Configuration Protocol) server som delar ut ip-adresser till alla datorer och apparater i ditt lan.
Dynamic DNS: Väldigt användbart för dig med dynamisk ip. Här kan du välja att pfsense automatiskt ska uppdatera och peka om ditt domännamn eller subdomän om pfsense får en ny WAN ip-adress. Stödjer alla de störra DNS leverantörerna såsom DynDNS, No-Ip och loopia med flera.
Load Balancer: Tjänsten för lastbalanseringsfunktioner och failover. Mer om det kan du hitta under "Multiwan / lastbalansering" i guiden.
OLSR: för MANET (mobile ad hoc network).
PPPoE Server: om du är i behov av en PPPoE (point-to-Point Protocol over Ethernet) server kan den konfigureras här.
RIP: om du använder RIP (Routing Information Protocol).
SNMP: här kan du starta och konfigurera SNMP (Simple Network Management Protocol) tjänsten.
UPnP: UPnP låter tjänster på datorer i ditt lokala nätverk automatiskt öppna portar i brandväggen. Du kan ange att endast vissa IP-adresser får använda UPnP och liknande här.
OpenNTPD: Låter dig använda dig utav NTP (Network Time Protocol) för att synkronisera den lokala klockan. info
Wake on LAN: Här kan du starta datorer genom att sända ett "Magic-Package". Kräver att datorn som ska startas har stöd för WoL och att WoL funktionen är aktiverad.VPN Innehåller de olika VPN tjänsterna som finns i pfSense.
IPSec VPN server som använder IPSec
OpenVPN VPN server som bygger på OpenVPN.
PPTP VPN server som bygger på Microsofts PPTP (Point to Point protocol). Detta görs senare i guiden under VPN (PPTP).Status
CARP (failover): mer information om hur du sätter upp CARP failover här
DHCP leases: Visar aktiva DHCP poster. Här syns alla datorer och apparater som blivit tilldelade en IP-adress av din DHCP server.
Filter Reload: När du gör ändringar i exempelvis reglerna tar det ett tag innan pfSense laddats om med de nya reglerna. Här kan du se om systemet håller på att laddas om och i såna fall vilken regel han arbetar med.
Interfaces: Visar alla dina aktiva nätverksportar och visar en hel del information om respektive. Här kan du se bland annat din WAN ip-adress (din externa adress) samt din ISPs DNS servrar och hur mycket data som skickats över porten.
IPsec: Har du en aktiv IPsec VPN kan dess status ses här.
Load Balancer: Har ser du statusen på lastbalanseringen, mer om det under lastbalanseringsdelen av guiden.
Package logs: Särskilda paket du installerar kan kan skapa loggar här.
Queues: om du har aktiverat traffic shaper funktionen så kan du se hur köerna den bildar ser ut här.
RRD Graphs: Visar grafiskt hur mycket av systemresurserna som används. Här hittar du bland annat processoranvändning, minnesanvändning, trafik på de olika portarna och mycket mer.
Services: Här kan du se status på tjänster som körs, i våran konfiguration ser du DNS forwarder och NTPD (tids synken). Här har du också start och stop funktion för respektive tjänst.
System: samma sida som du möts av när du loggar in.
System logs: Här inne visas alla loggar som skapas av pfSense grundtjänster. Du ser bland annat brandväggs och dhcp loggen.
Traffic graph: lättare variant av RRD graphs, visar endast aktuell trafikmängd på vald port i realtid.
UPnP: Visar aktiva UPnP entries skapade av datorer med tillgång till UPnP tjänsten.Diagnostics Härunder kan olika diagnostiseringsverktyg kan hittas samt åtgärder som reboot och halt av systemet.
ARP Table: Visar hela ARP tabellen.
Backup/Restore: Det är ofta en bra ide att göra en backup av din configurationsfil, det och återställning kan göras här. Här kan du också enkelt ångra konfigurationsändringar.
Command: om du är i behov av att ge shell-kommandon eller exekvera PHP genom webGUIn kan det göras här. Härifrån kan du också enkelt ladda upp och ner filer från hårddisken.
Edit File: behöver du göra manuella ändringar i någon fil kan den laddas in och göras här.
Factory defaults: Återställer systemet till grundinställningarna.
Halt system: om du behöver stoppa systemet.
Ping: lätt verktyg för att pinga en maskin på vald port.
Reboot system: Startar om systemet.
Routes: Visar alla aktiva routningsvägar.
States: Visar alla anslutningar som går till och genom routern.
Traceroute: verktyg för att spåra hur signalen hoppar till en viss värd.
Packet Capture: Verktyg för att fånga paket som uppfyller vissa kriterier. Kan sedan laddas ner och öppnas med exempelvis Wireshark för analys.Nu har vi gått igenom samtliga out of the box menyer och i stort sett alla pfSense funktioner samt kort förklarat vad respektive gör.
-
6. Aliases
Aliases är ett system för att binda upp en eller flera ip-adresser mot ett smeknamn.
Låt säga att du kommer skapa en del NAT- och brandväggsregler senare, varje sådan regel kan peka mot en ip-adress i ditt lokala nätverk som tillåter exempelvis HTTP eller FTP trafik till den datorn.
När du sedan skapat NAT- och brandväggsreglerna märker du att ip-adressen du skrivit in på dina regler behöver ändras. Det är ett hästjobb att manuellt gå in och ändra i alla NAT- och brandväggsregler och det är lätt att det blir fel.
Här är alias den klara vägen att gå, istället för att skriva in exempelvis "192.168.1.33" i dina regler kan du med hjälp av aliases skriva "servern". Så när du har ett alias och behöver ändra vad alla dessa regler pekar mot går du bara in i alias menyn och ändrar just det aliasets ip-adress!Låt säga att vi vill skapa ett alias för våran server som har ip-adressen "192.168.1.33". Servern kör HTTP(webbserver)- och FTP-server tjänster.
I Aliases menyn klicka på Add a new alias knappen
Då kommer vi till följande sida för att skapa vårat alias.
Här fyller vi i:
Name: Namnet på ditt alias, det är detta som i reglerna kommer användas istället för ip-adressen. Vi säger nu att våran server kallas "servern".
Description: En kort beskrivning. Vi skriver här att detta alias är för våran HTTP och FTP server.
Type: Kan vara datorer Host(s), hela nätverk Network(s) eller portar Port(s)Vi väljer här Hosts(s) då vi endast vill att detta alias ska peka mot en dator.
IP: ip-adress till datorn i fråga, i vårat fall "192.168.1.33" som är serverns ip-adress.
Description: Beskrivning om vad ip-adressen pekar mot.Klicka sedan Save för att spara aliaset.
Klicka på Apply changes för att aliaset ska skapas och kunna användas.Då är det klart, nu kan du utan problem skapa aliases till dina datorer i nätverket.
-
7. Portforward
Nu ska vi gå igenom hur man öppnar portar i pfSense och varför.
Säg att du har ett antal datorer i ditt lokala nätverk varav en agerar FTP och HTTP server. Nu vill du att folk på internet ska kunna ansluta in till din server och använda FTP och HTTP tjänsterna. Men då du bara har en extern ip-adress och flera datorer inom ditt lokala nätverk, hur vet då trafiken vart den ska skickas?Det är här portforward också kallat port mappning kommer in i bilden. Låt säga att din externa ip-adress är "85.230.100.55" och din lokala servers ip-adress är "192.168.1.33". Du vill nu att http(port 80)-förfrågningar till "85.230.100.55:80" och ftp(port 21)-förfrågningar "85.230.100.55:21" ska skickas vidare till "192.168.1.33". Detta görs med hjälp av något som kallasNAT (Network Adress Translation). NAT fungerar som så att vi sätter upp en NAT-regel som berättar för pfSense att trafik som kommer in från internet på port 21 och port 80 ska skickas vidare till den lokala servern med ip-adressen "192.168.1.33". Detta resulterar i att trafiken kommer gå obehindrat mellan "85.230.100.55:21" och "192.168.1.33:21".
För att se vilka port mappningar som finns i pfSense klicka på Firewall->Nat och du kommer till port forward sidan.
Vi kommer nu skapa en NAT-regel för FTP trafik och en för HTTP trafik till den lokala servern med aliaset "servern" och ip-adress "192.168.1.33".
Klicka på knappen för att skapa en ny port forward regel.Här fyller vi i följande för FTP regeln:
Interface: den port trafiken kommer in på, i vårat fall är det internet alltså WAN porten.
External adress: Vi väljer här "Interface adress" då regeln ska appliceras på WAN ip-adressen.
Protocol vi väljer "TCP" då FTP körs över TCP-protokollet. Olika tjänster/program använder olika protokoll och det är viktigt att du väljer att skicka vidare rätt protokoll för rätt tjänst/program.
External port range: Den externa port som trafiken kommer komma in på. pfSense har en hel del färdiga förslag på vanliga tjänsters portar, så vi väljer här "FTP" ur listan. FTP går normalt över port 21 så vad som egentligen händer är att "FTP" översätts till 21 internt i pfSense.
NAT IP: den lokala ip-adress som vi ska skicka vidare trafiken till. I vårat fall skriver vi här in antingen ip-adressen "192.168.1.33" eller det allias som vi tidigare har bundit upp ip-adressen mot.
Local port: den port lokala port på vilket vi tar emot trafiken. pfSense fyller här själv i "FTP" och då den lokala ftp servern lyssnar på just port 21 låter vi det vara så.
Description: kort beskrivning av vad regeln gör.
No XMLRPC Sync: lämna denna urkryssad då vi inte använder CARP.Var noggrann med att "Auto-add a firewall rule to permit traffic through this NAT rule" är ikryssad för att automatiskt skapa en regel även i brandväggen som tillåter trafiken.
Klicka Save för att spara regeln.
klicka Apply changes för att skapa och ladda om med den nya regeln. Regeln syns nu i listan och vi har gjort våran första portforward i pfSense!Såhär skulle regeln för att tillåta HTTP trafik till aliaset "servern" med ip-adress "192.168.1.33" se ut.
Och regellistan är nu utfylld med http-regeln.
Hur vet jag vilken port och vilket protokoll min tjänst/program använder?
Wikipedia har nästan alltid svaret, en lista med i stort sett alla kända tjänsters/programs portar kan hittas här: Lista med kända portar
Om det inte finns där brukar det gå att googla något i form av "What port does application name use?" för att få svaret.Brandväggen
Aktuella regler som finns i brandväggen för respektive port kan ses under Firewall->Rules.
Om du inte kryssade i "Auto-add a firewall rule to permit traffic through this NAT rule" innan måste regler manuellt skapas här för att tillåta trafiken.
Nu har du lärt dig hur man öppnar portar på din pfSense router :)
-
8. VPN - PPTP
Vi kommer nu sätta upp en VPN server som gör det möjligt för klienter på internet att ansluta in och kunna nås som om de hade funnits fysiskt åtkomliga på samma lokala nätverk.
Guiden kommer vara för en VPN PPTP server alltså Virtual Private Network över Point-to-Point Tunneling Protocol och kommer göra så att klienter på internet kan komma åt filer/tjänster på datorer som finns i det lokala nätverket.VPN är smidigt i flera olika senarion men som exempel säg att Anders vill kunna komma åt sina windows utdelade mappar på datorerna hemma när han är ute och reser. Med hjälp av en PPTP klient kan Anders då enkelt ansluta in till sin pfSense router och direkt komma åt filerna som om han hade varit hemma!
Vi börjar med att navigera till VPN PPTP sidan genom att i rullgardinsmenyerna gå VPN->PPTP och du kommer till följande sida
Enable PPTP server: Då vi låter pfsense köra VPN PPTP servern väljer vi att kryssa i denna.
Server address: Vi väljer här att sätta VPN serverns "virtuella" ip-adress. Vi väljer 192.168.1.6 då vi vill att servern ska ligga i vårat lokala nätverk.
Remote adress range: Här väljer vi den start ip-adress som klienter ska tilldelas skriv 192.168.1.144. Då max 16 klienter stöds är det denna ip adress +16 som kommer användas för PPTP klienter. Välj en adress som ligger över DHCP tilldelningens övre tilldelningsgräns.
RADIUS: Vi väljer att låta pfSense sköta klient autentiseringen och lämnar alla RADIUS val blanka. Om vi inte vill att klienternas autentisering ska skötas av pfsense kan vi välja att skicka vidare klient autentiseringarna till en extern RADIUS server.
WINS Server: Vi har i denna guide ingen WINS server så denna lämnas blank.
Requite 128-bit encryption kryssa i denna ruta för att höja säkerheten genom att inte acceptera kryptering lägre än 128-bitar.Efter att ha fyllt i allt ser det ut såhär:
Klicka därefter Save för att spara inställningarna och VPN PPTP servern körs igång.Nu är det två saker som måste göras innan användare kan ansluta in till våran VPN PPTP server.
Den första är att vi måste lägga upp en användare som har behörighet att ansluta in till våran PPTP server. Den andra är att vi måste skapa brandväggsregler som tillåter PPTP klienternas trafik till det lokala nätverket och internet. Brandväggsregler skapas automatiskt som tillåter PPTP trafiken in till pfSense så man behöver inte skapa regler för att tillåta GRE och TCP/1723 (notera att dessa INTE syns i webGUIn).För att administrera användare klicka på Users fliken.
Klicka på knappen för att lägga till en ny användare.
Username: Skriv in användarens användarnamn. Vi kallar våran första användare Anders.
Password: Ange ett lösenord för Anders.
IP address: Om vi alltid vill att anders ska ha en specifik ip-adress kan den väljas här. Vi väljer dock att låta pfSense sköta tilldelningen av ip adressen.Klicka Save för att spara användaren.
Återigen måste vi klicka Apply changes innan den nya användaren kommer skapas. Här måste anmärkas att alla redan anslutna PPTP klienter kommer bli frånkopplade.Då var våran första användare skapad och vi måste nu sätta upp regler för hur PPTP klienternas trafik ska få gå.
navigera till Firewall->Rules i rullgardinsmenyn och du kommer till regelsidan.
Klicka här på fliken. för att komma till regelsidan för PPTP VPN
Klicka på knappen för att lägga till en ny regel.
Vi väljer här att låta anslutna VPN PPTP klienter ha full tillgång till hela nätverket.
Ändra:
Protocol "any" för att tillåta all sorters trafik från PPTP klienten och lägg till en Description som förklarar vad regeln gör.Klicka Save för att spara regeln och sedan Apply changes för att ladda om med en nya regeln och det bör se ut som följande
Då var det klart!
Nu kan användaren Anders ansluta in och komma åt både alla lokala datorer i nätverket samt internet genom VPN anslutningen.Visa anslutna klienter
För att se loggdatan över VPN PPTP klienterna kan du navigera till Status->System logs->PPTP VPN
Här syns att användaren Anders är ansluten för tillfället.Andra VPN lösningar
Pfsense stödjer också som tidigare nämnt OpenVPN och en guide på engelska om hur man sätter upp det kan hittas här: Guide to openvpn
Information om IPSec kan hittas på pfsense docs härHur ansluter man till en VPN?
Jag kommer inte ta upp hur exempel användaren Anders ska konfigurera sin PPTP klient i denna guide då det redan finns en hel uppsjö av guider för det ändamålet på webben.
Det är bara surfa in på valfri VPN leverantör så finns det guider om hur man sätter upp en PPTP klient i de större operativsystemen.
Relkkas
Dold
Anonine
Där deras ip-adress i exempelt självklart ska ändras till din externa ip-adress :) -
9. Multiwan - lastbalansering
Den här delen kommer ta upp hur man skapar en lastbalansering mellan flera nätverksportar.
Den riktar sig framförallt till er med BBBs 100 mbit tjänst som ger 5 ip-adresser där varje ip-adress har en uppladningshastighet på 10 mbit.
Det fungerar som så att pfSense balanserar lasten i round-robin manér. Vilket innebär att pfsense kommer lägga första anslutningen på första nätverksporten som är med i lastbalanserings konfigurationen, nästa anslutning på nästa nätverksport o.s.v. Detta tills den kommer till sista nätverksporten då pfSense börjar om med första nätverksporten igen och på så sätt lastbalanseras trafiken.Hur ska det kopplas?
Då du nu kommer använda 5 stycken ip-adresser behöver du ha 6 stycken nätverksportar. 5 stycken för de 5 internet ip-adresserna och en till lan sidan som innan.
Enklast är att bara sätta en switch/hub innan pfSense som bilden ovan visar och dra 5 stycken nätverkskablar från denna.Konfiguration
Innan du börjar följa instruktionerna se till att du instansierat alla OPT portar som gjordes under 4. Installation och grundläggande konfiguration så de dyker upp i rullgardinsmenyn enligt följande:
Nu måste vi göra så alla OPT portar beter sig som den vanliga WAN(internet) porten. Detta görs genom att navigera till respektive port i Interfaces menyn och fylla i följande
Fortsätt därefter med att göra samma sak för OPT2 till OPT5 men ändra namnen till:
WAN3OPT2
WAN4OPT3
WAN5OPT4
Självklart kan du välja att kalla dom vad du vill men för att enkelt veta vilken port respektive representerar valde jag som ovan.Efter att alla portar är instaniserade så kan vi fortsätta genom att gå till Services->Load Balancer sidan som ser ut såhär
Klicka här som vanligt på knappen för att skapa en ny så kallad "pool" och du kommer till konfigurationssidan.
Name: Namnet på våran pool, vi döper den till "Lastbalansering". En "pool" kan ses som en klunga av nätverksportar vars funktion vi väljer att konfigurera på ett visst sätt.
Description: En förklaring på vad våran pool gör. Vi skriver här "Lastbalansering BBB".
Type: Välj gateway.
Behavior: Välj Load Balancing.
Port: denna kan lämnas blank.
Monitor: Denna kan inte ändras om vi väljer Type: gateway.
Monitor IP: Här måste vi välja en ip adress att bevaka för att avgöra om länken är aktiv, vi väljer "DNS Server 1".
**Interface Name:**Välj här först WAN och tryck Add to pool för att lägga till WAN porten i båran pool, upprepa sedan för OPT1-OPT5.
List: Här syns alla nätverksportar vi lagt till i våran pool.Efter att du lagt till alla nätverksportar i poolen ska det se ut så här:
Några anmärkningar:
Vid "Behavior" kan också "failover" väljas för att automatiskt hoppa till nästa nätverksport om den första går ner. Men då vi i denna guide utgår från BBB 100 mbit tjänst vet vi att om en nätverksport går ner går alla ner då de fysiskt går mot samma switch, DNS och gateway.
Det är också anledningen till att vi väljer samma Monitor IP adress på alla nätverksportar, har ni fler DNSer eller vill ange egna monitor ips för att minska nertidsriskerna något kan detta göras här.Klicka Save och därefter Apply changes för att starta upp lastbalanseringen.
Nu måste vi sätta upp en regel som säger åt pfSenes att använda våran lastbalansering.
Navigera till Firewall->Rules och klicka på LAN fliken
Klicka här på knappen för att editera den enda regeln i listan
Ändra bara:
Gateway: i rullgardinsmenyn välj våran nyskapade "Lastbalansering"
Description: Skriv vad regeln gör, i vårat fall att den lastbalanserar all LAN trafik.
Klicka därefter Save och vi är klara!Resultat
Efter att pfsense startat upp lastbalanseringen kan vi direkt testa om den fungerar med hjälp av www.bredbandskollen.se.Bredbanskollen.se innan:
Bredbandskollen.se efter:
Som vi ser har vi ökat uppladningshastigheten rejält :)
Sticky Connections och Suppress ARP
Då varje ny anslutning läggs på den minst belastade nätverkporten kan detta skapa en del problem med tjänster som är känsligt för vilken ip-adress användaren använder.
Som exempel kan nämnas att samtliga webbsidor som använder SSL kommer sluta funka korrekt, det finns två olika vägar att att gå för att fixa det.1. Sticky Connections
2. Regler1. Sticky Connections fungerar som så att när en anslutning upprättas på exempelvis OPT1 så håller pfSense kvar just denna anslutning på den nätverksporten tills anslutningen termineras i states tabellen. Som ni förstår innebär detta att ex ett test på bredbandskollen återigen kommer ge "endast" ca 10 mbit uppload då anslutningen binds till en nätverksport. Dock kommer exempelvis flera anslutningar som görs brevid denna körning av bredbandskollen ha 10 mbit var.
Sticky connections kan rekommenderas för dig som inte är så insatt i tekniken eller inte vill skapa speciella regler för tjänster som inte gillar att lastbalanseras. Det kan aktiveras under System->Advanced, scrolla ner till Load Balacning delen och klicka i Use sticky connections och därefter Save.2. Regler. Detta går ut på att du manuellt skapar regler under "LAN" tabben i brandväggen för hur vissa tjänster/protokoll som inte gillar lastbalanseringen ska routas. Detta är mer avancerat än ovanstående men det ger mer flexibilitet. Jag kommer nu skapa en regel som gör så att hemsidor med SSL fungerar genom att låsa HTTPS trafik till en nätverksport.
Navigera återigen till brandväggens LAN regler genom Firewall->Rules och klicka på LAN fliken.
Klicka på knappen för att skapa en ny regel.
Fyll i regeln enligt följande, mer information om hur reglerna skrivs kan hittas under7. Portforward delen av guiden.
Klicka återigen Save och därefter Apply changes för att spara och ladda om med regeln.
Det sista vi ska göra innan vi är klara är att kryssa i "This will suppress ARP messages when interfaces share the same physical network" som återfinns under System->Advanced. Detta minskar den ARP storm som kan uppstå när flera nätverksportar ligger på samma fysiska nätverk.
Status på lastbalanseringen
För att kolla statusen på lastbalanseringen navigera till Status->Load Balancer
Här ser du våran Lastbalanserings pool och vilka nätverksportar som tillhör poolen. Fördröjning och paketförluster på respektive nätverksport syns också här.Nu har vi en fungerande lastbalansering och kan njuta av våran extra hastighet!
-
10. Support
För att få support är det lättast att vända sig till den breda community och dokumentation som finns kring pfSense.
Jag kan rekommendera pfSense Docs. Finns inte det du letar efter där så är det oftast någon före dig som har försökt göra det du fastnat på eller ställt den frågan du sitter och funderar på. Så börja med att söka i pfSense officiella forum, hos pfSense Docs, här hos Sweclockers eller i annat fall kan ofta google rädda dagen.
Annars kan du antingen posta dina problem/fårgor direkt i denna tråd eller i pfSense officiella forum för att få support av andra pfSense användare :)Hemsidor
http://www.pfsense.com/
http://doc.pfsense.org/
http://blog.pfsense.org/Det finns också en bok skriven om pfSense, kan hittas här hos Amazon.com. Jag har själv inte läst den men har hört att den rekommenderas för de som vill fördjupa sina kunskaper inom pfSense.
Källor
90% av guiden är baserat på egna erfarenheter och kunskaper, de resterande 10% kommer från både pfSense Docs och pfSense officiella forum.Slutord
Jag själv tycker pfSense är en mycket trevlig router programvara som passar just mig perfekt. Hos mig körs pfSense på en äldre Compaq Dekspro EN med 1 ghz cpu, 384 MB ram och 3x Intel PRO/1000 MT Dual Port Server Adapter. Den har varit i drift sen några år tillbaka och förutom när strömmen går så tuffar den starkt på i alla väder. Jag tror starkt på pfSense framtida versioner och användarvänlighet som har gått rejält uppåt sen de tidigare versionerna.
Angående guiden så tog den verkligen mer tid och var tyngre att skriva än jag hade tänkt mig, hade inte tänkt gå riktigt så djupt in på varje del eller vara riktigt så detaljerad men men det vart som det vart med det :)Hoppas guiden smakar!
Finns det intresse för en engelsk version så ska nog detta gå att ordna.[Uppdaterad 7/12-09] Lite små stavfel och brutna länkar fixade.
[Uppdaterad 8/12-09] Fixade lite oklarheter som påpekats både i tråden och via PM
[Uppdaterad 13/12-09] pfSense 1.2.3 release, omarbetning av guiden för att passa version 1.2.3. Lade också till information om RRD graphs, interfaces, syslog och brandväggsloggen.
[Uppdaterad 31/1-10] Omarbetad guide till pfsense forum