Netwerksegmentatie met pfSense
Netwerksegmentatie is het opdelen (of opknippen) van het totale netwerk in kleinere segmenten. VLAN's (Virtual LAN's) kunnen worden gebruikt om een netwerk in kleinere, beter beheerbare segmenten te verdelen. Dit kan de beveiliging verbeteren door de verschillende types verkeer te isoleren en de potentiële schade die kan ontstaan door een beveiligingslek te beperken.
Steeds meer ondernemers en particulieren zien het nut en de noodzaak in om het netwerk op te delen. Denk bijvoorbeeld aan het isoleren van omvormers van zonnepanelen in een IoT netwerk. Maar ook aan het aanbieden van een apart gastennetwerk waarbinnen de beveiliging gewaarborgd wordt door verdere isolatie en beperkingen (lees: client isolatie binnen een geïsoleerd netwerk met strikte firewallregels voor uitgaande verbindingen).
In deze post beschrijf ik hoe stapsgewijs een gesegmenteerd netwerk opgebouwd kan worden. Het eindresultaat is een netwerk met vijf VLAN's voor kantoor, thuis, IoT apparatuur, gasten en een thuislab (home lab).
In deze post wordt gebruik gemaakt van pfSense en een HP ProCurve switch. Maar deze kennis kan ook toegepast worden op een ander merk router/firewall en een ander merk switch. Denk hierbij aan OPNsense als alternatief voor pfSense of een TP-Link JetStream switch als alternatief voor een HP Procurve.
Uitgangspunt
Deze post is geschreven met een thuiskantoor - maar ook het midden- en kleinbedrijf - in gedachten. De onderstaande indeling past prima bij een thuiskantoor. De indeling kan uiteraard naar wens aangepast worden op basis van de benodigdheden en wensen.
De indeling van het netwerk is gemaakt op basis van VLAN's. VLAN betekent virtual LAN (of virtual local area network). Een gesegmenteerd netwerk d.m.v. VLAN's betekent eigenlijk niet veel meer dan dat er meerdere netwerken naast elkaar bestaan binnen een omgeving.
Naam | VLAN | Netwerk | CIDR | Subnetmasker | Gateway IPv4 | Toelichting |
---|---|---|---|---|---|---|
Management | 1 | 172.31.224.0 | 22 | 255.255.252.0 | 172.31.224.1 | Beheer |
Kantoor | 96 | 10.10.96.0 | 24 | 255.255.255.0 | 10.10.96.1 | Werk |
Thuis | 128 | 10.10.128.0 | 24 | 255.255.255.0 | 10.10.128.1 | Privé |
IoT | 160 | 10.10.160.0 | 24 | 255.255.255.0 | 10.10.160.1 | IoT apparatuur zoals zonnepanelen |
Gasten | 192 | 10.10.192.0 | 24 | 255.255.255.0 | 10.10.192.1 | Gastennetwerk |
Home Lab | 224 | 10.10.224.0 | 24 | 255.255.255.0 | 10.10.224.1 | Experimenten |
Achter ieder VLAN (of apart netwerk) zit een functie. De functies worden hieronder toegelicht. De hoofdfunctie is om zaken uit elkaar te houden.
Ook achter de nummering van de VLAN's zit een reden. Ik heb het derde octet van het IPv4 adres gebruikt voor het VLAN. Daarnaast heb ik rekening gehouden met de groei van het netwerk. Het is handig om de IPv4-reeks uit te kunnen breiden. Zo kan het kantoornetwerk (CIDR /24, subnet masker 255.255.255.0) ruim 250 apparaten herbergen. Stel dat er meer ruimte nodig is? Dan kan het netwerk eenvoudig omgezet worden naar bijvoorbeeld een CIDR /23 (subnetmasker 255.255.254.0), waardoor er ruim 1.000 apparaten geherbergd kunnen worden. Binnen deze opzet kan zonder ingrijpend herontwerp tot een CIDR /19 (subnetmasker 255.255.224.0) uitgebreid worden, wat betekent dat er ruim 8100 apparaten van een IPv4 adres voorzien kunnen worden! Kortom: het is belangrijk om van te voren na te denken over de indeling van de netwerken. Ik gebruik de subnet calculator van Jodies.de, waarmee een netwerk gemakkelijk berekend kan worden.
Kantoor en thuis
De bedoeling is om werk en privé apparatuur gescheiden te houden:
- server en/of NAS moet niet benaderbaar zijn in het thuisnetwerk
- de game console (van de kinderen) wordt uiteraard niet in het kantoornetwerk gehangen - maar in het thuisnetwerk
IoT
Zonnepanelen worden vaak met een omvormer geleverd die op het netwerk aan wordt gesloten - maar wat het apparaat allemaal binnen het netwerk doet, is niet bekend. Het is dan prettig dat dergelijke apparatuur geïsoleerd wordt. Op die manier kan ook internettoegang van omvormers geblokkeerd of beperkt worden.
Gasten
Gasten hebben niks te zoeken op het kantoor- of thuisnetwerk. Die kunnen mooi gebruik maken van de gasten wifi. Dat geldt overigens ook voor eigen mobieltjes en tablets. Wanneer deze apparaten geen toegang nodig hebben tot de server of de NAS van kantoor (dus geen noodzaak om daarmee te verbinden), dan kan deze apparatuur prima op het gastennetwerk aangemeld worden. Op het in te richten wifi netwerk kan vervolgens isolatie toegepast worden (clients kunnen dan niet met elkaar communiceren).
Experimenten
Voor experimenten kan het thuislab (home lab) gebruikt worden. Het is niet wenselijk om bepaalde zaken te testen binnen het kantoornetwerk. Ook hobbyprojecten passen goed binnen een labnetwerk.
Verdere indeling
Uiteraard is het bovenstaande een voorbeeld. Een netwerk kan naar wens ingericht worden. Zo kan het handig zijn om een DMZ aan te maken waar bijvoorbeeld een eigen web- of mailserver in hangt. Of een telefonienetwerk voor VoIP toestellen. Zo kan iedere groep apparaten (of toepassingen) ingedeeld worden in een eigen netwerk.
Configuratie pfSense
Introductie
Een op pfSense gebaseerde router/firewall wordt met de WAN poort aangesloten op de apparatuur van de internetprovider. Dat kan op diverse - manieren maar is afhankelijk van de manier hoe de internet provider de internetverbinding aanbiedt. De mogelijkheden die door pfSense worden ondersteund zijn Static, DHCP, PPPoE en PPTP. In dit voorbeeld stel ik het IPv4 van de WAN statisch in.
Het standaard LAN IPv4 van pfSense is 192.168.1.1 /24. Ik pas dat aan naar 172.31.224.1 /22, met als doel om het standaard VLAN (VLAN 1) als management netwerk te gebruiken. Op het management VLAN wordt alle netwerkapparatuur aangesloten. Denk hierbij aan de pfSense router/firewall, netwerk switches en access points. Toegang tot deze apparatuur vanuit andere VLAN's blokkeer ik standaard.
Omdat deze post bedoeld is voor een breed publiek, beschrijf ik eerst de initïele configuratie van pfSense.
Onderaan deze post staat een kopie van de gebruikte pfSense configuratie. Het is (voor de oefening) het beste om de configuratie handmatig in te voeren - maar er kan (indien gewenst) gebruik gemaakt worden van een kopie config.
Initïele configuratie pfSense
Web interface
De web interface van pfSense kan geopend worden via het adres https://192.168.1.1. De waarschuwing met betrekking tot het certificaat kan genegeerd worden. Kies voor "Geavanceerd" en daarna voor "Accepteer het risico en ga door". Deze melding kan per browser verschillen.
Er kan ingelogd worden met het standaard wachtwoord voor de admin gebruiker.
Gebruikersnaam: admin
Wachtwoord: pfsense
Setup Wizard
De eerste pagina die getoond wordt is de Setup Wizard (menu-item: System - Setup Wizard). Klik op de knop Next om de setup wizard te starten.
Klik vervolgens opnieuw op de knop Next.
Voer een hostname, domain en DNS servers in. Vink de optie "Override DNS" uit, zodat (bij DHCP/PPP) de bovenstaande DNS servers gebruikt worden.
- Hostname: secure
- Domain: lan.netwerk.inet
- Primary DNS Server: 1.1.1.1
- Secundary DNS Server: 9.9.9.9
Klik vervolgens op de knop Next.
Tijd is belangrijk binnen een netwerk. Er kunnen meerdere time servers opgegeven worden - maar de standaard van pfSense is prima. Selecteer minimaal de tijdzone (timezone) op.
Klik vervolgens op Next.
WAN Interface (internetverbinding)
Configureer de WAN interface voor de internetverbinding en klik vervolgens op de knop Next.
In dit voorbeeld wordt een statisch IPv4 ingevoerd. Let daarbij op het netwerkmasker, wat in CIDR formaat genoteerd moet worden.
Gebruik een network calculator (zie ook hierboven) en/of de onderstaande tabel om eenvoudig het netwerkmasker te converteren naar CIDR (en omgekeerd).
In de onderstaande tabel staat in de eerste kolom de notatie in CIDR formaat. In de vijfde kolom staat het netwerkmasker.
CIDR | Netwerken | Potentiele Hosts | Actuele Hosts | Netwerkmasker | Subnets |
---|---|---|---|---|---|
/31 | 1/128 | 2 | 0 | 255.255.255.254 | 128 |
/30 | 1/64 | 4 | 2 | 255.255.255.252 | 64 |
/29 | 1/32 | 8 | 6 | 255.255.255.248 | 32 |
/28 | 1/16 | 16 | 14 | 255.255.255.240 | 16 |
/27 | 1/8 | 32 | 30 | 255.255.255.224 | 8 |
/26 | 1/4 | 64 | 62 | 255.255.255.192 | 4 |
/25 | 1/2 | 128 | 126 | 255.255.255.128 | 2 |
/24 | 1 | 256 | 254 | 255.255.255.0 | 1 |
/23 | 2 | 512 | 510 | 255.255.254.0 | 128 |
/22 | 4 | 1,024 | 1,022 | 255.255.252.0 | 64 |
/21 | 8 | 2,048 | 2,046 | 255.255.248.0 | 32 |
/20 | 16 | 4,096 | 4,094 | 255.255.240.0 | 16 |
/19 | 32 | 8,192 | 8,190 | 255.255.224.0 | 8 |
/18 | 64 | 16,384 | 16,382 | 255.255.192.0 | 4 |
/17 | 128 | 32,768 | 32,766 | 255.255.128.0 | 2 |
/16 | 256 = 1 class B network | 65,536 | 65,534 | 255.255.0.0 | 1 |
/15 | 512 = 2 B networks | 131,072 | 131,070 | 255.254.0.0 | 128 |
/14 | 1,024 = 4 B networks | 262,144 | 262,142 | 255.252.0.0 | 64 |
/13 | 2,048 = 8 B networks | 524,288 | 524,286 | 255.248.0.0 | 32 |
/12 | 4,096 = 16 B networks | 1,048,576 | 1,048,574 | 255.240.0.0 | 16 |
/11 | 8,192 = 32 B networks | 2,097,152 | 2,097,150 | 255.224.0.0 | 8 |
/10 | 16,384 = 64 B networks | 4,194,304 | 4,194,302 | 255.192.0.0 | 4 |
/9 | 32,768 = 128 B networks | 8,388,608 | 8,388,606 | 255.128.0.0 | 2 |
/8 | 65,536 = 256 B/1 A network | 16,777,216 | 16,777,214 | 255.0.0.0 | 1 |
/7 | 131,072 = 2 A networks | 33,554,432 | 33,554,430 | 254.0.0.0 | 128 |
/6 | 262,144 = 4 A networks | 67,108,864 | 67,108,862 | 252.0.0.0 | 64 |
/5 | 524,888 = 8 A networks | 134,217,728 | 134,217,726 | 248.0.0.0 | 32 |
/4 | 1,048,576 = 16 A networks | 268,435,456 | 268,435,454 | 240.0.0.0 | 16 |
/3 | 2,097,152 = 32 A networks | 536,870,912 | 536,870,910 | 224.0.0.0 | 8 |
/2 | 4,194,304 = 64 A networks | 1,073,741,824 | 1,073,741,822 | 192.0.0.0 | 4 |
/1 | 8,388,608 = 128 A networks | 2,147,483,648 | 2,147,483,646 | 128.0.0.0 | 2 |
/0 | 16,777,216 = 256 A networks | 4,294,967,296 | 4,294,967,294 | 0.0.0.0 | 1 |
Bron: https://pbxbook.com/other/cidrcheat.html
Meer informatie over CIDR: Wikipedia uitgelegd.
Standaard worden private IPv4 adressen en bogon netwerken geblokkeerd. De eerste optie is logisch - maar kan problematisch zijn wanneer het WAN IPv4 binnen een RFC1918 netwerk ligt.
LAN Interface (lokaal netwerk)
Voer het LAN IP Adres in en geef het subnet op in CIDR formaat (zie ook hierboven). Klik vervolgens op de knop Next.
Wachtwoord
Voer een sterk wachtwoord in en klik vervolgens op de knop Next.
Opnieuw inloggen
Klik vervolgens op de knop Reload. De nieuwe config wordt daarmee actief gezet.
Omdat het IPv4 adres is gewijzigd, moet opnieuw verbinding gemaakt worden met de router/firewall - maar dan op het nieuwe IPv4 adres.
Windows: open de Command Prompt met het commando CMD
. Dat commando kan gegeven worden via het zoek-icoon.
Andere besturingssystemen: zorg ervoor dat er opnieuw een IPv4 opgehaald wordt middel DHCP. Bijvoorbeeld door de netwerkkabel even los te trekken - even wachten - en opnieuw aansluiten.
Geef vervolgens het commando ipconfig /release * && ipconfig /renew *
om een nieuw IPv4 adres te krijgen.
Het nieuwe IPv4 zal 172.31.224.10
zijn. De default gateway is 172.31.224.1
.
Maak opnieuw verbinding met de web interface via https://172.31.224.1 en negeer de waarschuwing voor een potentieel beveiligingsrisico. Log vervolgens in met gebruikersnaam admin en het nieuwe wachtwoord.
De copyright- en handelsmerk notificatie worden getoond. Klik op Accept. De enquête kan ingevuld worden - maar het advies is om gewoon op de knop OK te klikken.
Copyright en handelsmerk | Enquête |
---|---|
Klik op de knop Accept | Klik op OK |
Dashboard aanpassen
Op het dashboard kan met het plus-teken dashboard widgets toegevoegd worden. Deze stap is optioneel maar het advies is om minimaal de volgende wijzigingen te maken:
- Verwijder de widget "Netgate Services And Support" door op het min-teken te klikken van de widget
- Voeg de widget "Interface Statistics" toe
- Voeg de widget "Traffic Graphs" toe.
Hiermee is pfSense in de basis geconfigureerd. In het volgende deel worden nog een paar aanpassingen beschreven. Vervolgens wordt uitgelegd hoe VLAN's geconfigureerd worden.
Aanpassingen
Interfaces hernoemen
Het is handig om overzicht over de interfaces te hebben. Om de LAN interface te kunnen hernoemen moet om IPv6 (wat in dit voorbeeld niet gebruikt wordt) heen gewerkt worden. Dit wordt gedaan door de DHCPv6 Server service uit te schakelen.
Klik op DHCPv6 Server & RA onder Services.
Klik vervolgens op de tab "Router Advertistements" en zet selecteer bij "Router mode" de optie "Disabled". Pas de wijziging toe onderaan de pagina door op de knop "Save" te klikken. Klik op "Apply Changes" om de wijziging door te voeren.
Klik tot slot op de tab "DHCPv6 Server" en vink de optie "Enable DHCPv6 on Interface LAN" uit. Pas de wijziging toe onderaan de pagina door op de knop "Save" te klikken. Klik op "Apply Changes" om de wijziging door te voeren.
Nu de DHCPv6 Server service uit is geschakeld, kunnen de interfaces hernoemd worden.
Klik op "Assignments" onder "Interfaces"
Klik op "WAN" onder "Interface"
Pas bij "Description" de omschrijving aan naar "W_WAN1" en selecteer achter "IPv6 Configuration Type" de optie "None". Pas de wijziging toe onderaan de pagina door op de knop "Save" te klikken. Klik op "Apply Changes" om de wijziging door te voeren.
Klik op "LAN" onder "Interface".
Pas bij "Description" de omschrijving aan naar "L_MNGMNT" en selecteer achter "IPv6 Configuration Type" de optie "None" (indien van toepassing). Pas de wijziging toe onderaan de pagina door op de knop "Save" te klikken. Klik op "Apply Changes" om de wijziging door te voeren.
Firewall alias voor private netwerken
Om de verschillende netwerken firewall-technisch van elkaar te kunnen scheiden is het handig om een alias aan te maken waar alle mogelijke IPv4 adressen in staan.
Klik op "Aliasses" onder "Firewall".
Klik op de knop "Add".
Properties:
- voer achter "Name" de naam: "NETs_Private"
- voer achter "Description" de omschrijving in: "RFC 1918 privé-adresruimte IPv4"
- Selecteer bij "Type" de optie "Network(s)"
Vier onder "Network(s)" de volgende gegevens in. | Network or FQDN | CIDR | Description |
---|---|---|---|
10.0.0.0 | 8 | 10.0.0.0 - 10.255.255.255 | |
172.16.0.0 | 12 | 172.16.0.0 - 172.31.25.255 | |
192.168.0.0 | 16 | 192.168.0.0 - 192.168.255.255 |
Gebruik de knop "Add Network" om een nieuwe regel aan te maken. Klik op de knop "Save" om de alias op te slaan. Klik op de knop "Apply Changes" om de wijzigingen op te slaan.
VLAN's configureren
VLAN Interfaces
De optie om VLAN's in te stellen zit onder "Assignment". Klik op "Assignment" onder "Interfaces".
Klik vervolgens op de tab "VLANs". Klik op de knp "Add" om een VLAN toe te voegen.
VLAN toevoegen:
- Selecteer achter "Parent Interface" de LAN interface. In dit voorbeeld is dat "em1" maar er moet vooral op het achtervoegsel gelet worden: "lan".
- Voer het VLAN in achter "VLAN Tag".
- Voer een omschrijving in achter "Description".
- Klik op de knop "Save" om de toevoeging op de slaan.
- Klik op de knop "Apply Changes" om de wijzigingen op te slaan.
Herhaal het voorgaande proces totdat alle VLAN's zijn ingevoerd. Zie de onderstaande tabel en screenshot voor de benodigde gegevens.
Interface | VLAN tag | Priority | Description |
---|---|---|---|
lan | 96 | L_KANTOOR (96) | |
lan | 128 | L_THUIS (128) | |
lan | 160 | L_IoT (160) | |
lan | 192 | L_GASTEN (192) | |
lan | 224 | L_LAB (224) |
Netwerkpoorten
Nu de VLAN's toe zijn gevoegd, kunnen de VLAN's uitgedrukt worden in poorten.
Klik op "Assignments" onder "Interfaces".
Er zijn meerdere netwerkpoorten beschikbaar. Het gaat om virtuele netwerkpoorten.
- Selecteer "VLAN96" achter "Available network ports" en klik vervolgens op de knop "Add".
- Herhaal het toevoegen van de netwerkpoorten voor VLAN's 128, 160, 192 en 224.
- Klik tot slot op de knop "Save".
- Klik op de knop "Apply Changes" om de wijzigingen op te slaan.
Het resultaat ziet eruit zoals in de onderstaande schermafdruk.
De volgende stappen bestaan uit het hernoemen en instellen van de nieuwe interfaces OPT1 t/m OPT5:
- Klik op "OPT1"
- Voer achter "Description" de beschrijving in: "L_KANTOOR"
- Selecteer achter "IPv4 Configuration Type" de optie "Static IPv4"
- Selecteer achter "IPv6 Configuration Type" de optie "None"
- Voer achter "IPv4 Address" het volgende in: 10.10.96.1
- Selecteer het netwerkmasker "/24"
Klik onderaan de pagina op de knop Save.
Klik op de knop "Apply Changes" om de wijziging op te slaan.
Herhaal de bovenstaande stappen voor alle VLAN's. De gegevens staan in de onderstaande tabel en schermafdruk.
Description | IPv4 Address | CIDR |
---|---|---|
L_KANTOOR | 10.10.96.1 | 24 |
L_THUIS | 10.10.128.1 | 24 |
L_IoT | 10.10.160.1 | 24 |
L_GASTEN | 10.10.192.1 | 24 |
L_LAB | 10.10.224.1 | 24 |
Het resultaat is goed te zien op de widget "Interfaces" op het dashboard.
Standaard gateway
De standaard gateway staat op "Automatic". Dat is niet in alle gevallen ideaal.
Pas de standaard gateway aan via "Routing" onder "System" (tab "Gateways").
Firewallregels instellen
Zolang er geen firewallregels zijn ingesteld, wordt er niets toegestaan vanaf de desbetreffende interfaces (lees: virtuele LAN's). Bij het maken van firewallregels, is het de bedoeling om lekkage tussen de VLAN's te voorkomen. Om dat lekken te voorkomen wordt de eerder aangemaakt alias NETs_Private toegepast. Hierover zo meteen meer.
Klik op "Rules" onder "Firewall" om de huidige regels te bekijken.
Standaard wordt de WAN interface getoond. Hier zijn twee standaard block rules op gedefinieerd. Op dit moment zijn erop de WAN interface geen regels nodig.
Klik op de tab "L_MNGMNT" om de regels op de management interface te bekijken.
Wat opvalt is dat er drie standaard regels in de lijst staan. Er is op dit moment geen noodzaak om hier iets in aan te passen.
Klik op de tab "L_KANTOOR" om de regels voor het kantoor VLAN te bekijken.
Op dit moment zijn er geen regels gedefinieerd. Dat betekent dat er geen verkeer wordt toegestaan op deze interface. Binnen het kantoornetwerk is communicatie met onderlinge hosts mogelijk - maar zodra er verkeer op de interface aankomt, dan wordt dat verkeer tegengehouden.
Klik op de linker "Add" knop (pijltje omhoog) om een nieuwe regel toe te voegen.
De volgende velden moeten als volgt ingesteld worden:
- Action: Pass
- Interface: L_KANTOOR
- Address Family: IPv4
- Protocol: UDP
- Source: L_KANTOOR
- Destination: This firewall (self)
- Destination port: 53 (DNS)
- Description: Allow: DNS
Klik op de knop "Save" om de regel op te slaan.
Klik op de knop "Apply Changes" om wijziging toe te passen.
Tijd is erg belangrijk binnen een netwerk. Het is goed om een regel toe te voegen voor NTP.
Klik op de tweede knop "Add" (pijltje omlaag).
De volgende velden moeten als volgt ingesteld worden:
- Action: Pass
- Interface: L_KANTOOR
- Address Family: IPv4
- Protocol: UDP
- Source: L_KANTOOR
- Destination: This firewall (self)
- Destination port: 123 (NTP)
- Description: Allow: NTP
Klik op de knop "Save" om de regel op te slaan. Klik op de knop "Apply Changes" om wijziging toe te passen.
Om er voor te zorgen dat verkeer het internet op mag, wordt er een brede regel aangemaakt voor alle verkeer.
Het is verstandig om hiervoor meerdere regels aan te maken en bijvoorbeeld alleen de hoogtsnodige TCP en UDP poorten toe te staan - maar dat wordt in dit voorbeeld buiten beschouwing gelaten.
Klik op de tweede knop "Add" (pijltje omlaag).
De volgende velden moeten als volgt ingesteld worden:
- Action: Pass
- Interface: L_KANTOOR
- Address Family: IPv4
- Protocol: Any
- Source: L_KANTOOR
- Destination:
- Vink de optie "Invert Match" aan (belangrijk!)
- Selecteer de optie "Single host or alias"
- Vul in het veld de alias in: "NETs_Private"
- Description: Allow: Outbound Traffic
Met deze regel wordt verkeer toegestaan naar alle IPv4 adressen, tenzij het om een IPv4 binnen de RFC 1918 privé-adresruimte gaat. Het is belangrijk om de optie "Invert Match" aan te vinken!
Klik op de knop "Save" om de regel op te slaan.
Klik op de knop "Apply Changes" om wijziging toe te passen.
Firewallregels worden van boven naar beneden geevalueerd. Mocht een firewallregel niet op de juiste positie staan, dan kan dat zeer nadelig zijn. Een regel kan door middel van "slepen" verplaatst worden.
Naast de juiste volgorde is een ordelijk overzicht van belang. Om meer orde te scheppen is het handig om regels in secties op te delen. Dit kan in pfSense door gebruik te maken van separators.
Klik op de knop "Separator" om een separator te maken. Maak een separator met de titel "Allow Core Services" en een separator met de titel "Allow Outbound". Plaats de separator "Allow Core Services" bovenaan de firewallregels. Plaats de separator "Allow Outbound" boven de outbound regel.
Klik op de knop "Save" om de separators op te slaan.
Verkeer van het kantoornetwerk kan niet naar de andere netwerken. Indien er uitzonderingen nodig zijn, dan kunnen daarvoor regels ingesteld worden. Handig is om daarvoor een extra separator aan te maken met de naam "Exceptions". Plaats deze separator boven de separator "Allow Outbound". Plaats de nieuwe uitzonderingsregels onder de separator "Exceptions".
Werk met kleuren. Het is handig om voor passende signaalkleuren te werken. Zo is de outbound rule bijvoorbeeld met de kleur rood (roze?) gemarkeerd.
Er hoeft geen firewallregel voor DHCP gemaakt te worden. Wel is het handig om DHCP voor het kantoornetwerk in te stellen, indien er geen andere DHCP server actief is.
Klik op "DHCP Server" onder "Services"
Vink de optie "Enable" aan en vul minimaal de range in. In dit voorbeeld wordt uitgegaan van "10.10.96.101 ~ 10.10.96.200".
Omdat tijd belangrijk is binnen een netwerk, wordt de firewall opgegeven als NTP Server 1: "10.10.96.1".
Klik op de knop "Save" om de wijziging op te slaan. Klik op de knop "Apply" om de wijziging door te voeren.
Ook voor de andere VLAN's (L_THUIS, L_IoT, L_GASTEN en L_LAB) moeten soortgelijke regels toegevoegd worden. Let daarbij ook op DHCP.
Het is mogelijk om regels te kopieren - en toe te passen op andere interfaces. Hierbij moet in de context van dit voorbeeld gelet worden op de "Interface" en de "Source".
Wordt de regel "Allow: DNS" gekopieerd op de interface "L_KANTOOR" voor "L_THUIS", dan moet het volgende aangepast worden:
- Wijzig bij "Interface" de selectie "L_KANTOOR" naar "L_THUIS"
- Wijzig bij "Source" de selectie "L_KANTOOR net" naar "L_THUIS net"
Voor de NTP regel en Outbound regel geldt hetzelfde.
Hiermee is de pfSense configuratie afgerond. De volgende stap is om de switch te configureren.
Switch configuratie
Inleiding
De LAN poort van de pfSense firewall kan fysiek met een netwerkkabel op een poort van een switch aangesloten worden. Er is minimaal één poort op de switch nodig waar alle VLAN's doorheen vloeien. In dit voorbeeld wordt poort 24 van een 24-poorts switch gebruikt om de firwall aan te sluiten. Een dergelijke poort wordt vaak een "trunk port" genoemd. In dit voorbeeld wordt een HP ProCurve switch gebruikt. De terminologie met betrekking tot een trunk is dan wat verwarrend. Op een HP switch wordt met een trunk een groep poorten bedoeld om bandbreedte en redundancy te verbeteren. In de context van dit voorbeeld wordt met trunk echter een poort bedoeld waar alle VLAN's op zijn geconfigureerd.
Een node (lees: computer of andere op het netwerk aangesloten apparaat) verbindt standaard met het standaard VLAN wat op de switchpoort is ingesteld. Het standaard VLAN op een switchpoort is over het algemeen VLAN 1. De poort kan echter op een ander VLAN geconfigureerd worden, zodat het verkeer wat op de poort aankomt in het geconfigureerd VLAN wordt ingedeeld.
Belangrijk om te weten is dat het in het voorgaande geconcentreerd wordt op "untagged" verkeer. Untagged betekent "zonder kenmerk" (of "ongecodeerd"). Naast "untagged" is er ook "tagged" verkeer. Tagged verkeer betekent "gekenmerkt" (of "gecodeerd").
In dit voorbeeld wordt VLAN 1 (Management VLAN) gebruikt om pfSense met de switch te verbinden. Op poort 24 wordt VLAN 1 "untagged" doorgegeven - en de andere VLAN's worden tagged doorgegeven.
Om het doel van VLAN's te demonstreren zullen poorten 1 t/m 4 ingesteld worden op VLAN 96. Dit standaard VLAN wordt "PVID" genoemd. Met "PVID" wordt "Port VLAN ID" bedoeld. Met "ID" wordt "identifier" bedoeld. Het doel van een PVID is - naast indelen - identificeren.
Het bovenstaande wordt hieronder nader toegelicht.
Configuratie
Netwerkconfiguratie
Het IPv4 van de HP ProCurve 1810G-24 is 192.168.2.10. Voor dit voorbeeld is het IPv4 ingesteld op 172.31.224.251 door middel van DHCP (DHCP reservering). Het is overigens verstandiger om een statisch IPv4 adres te configureren op een switch. Houdt er rekening mee dat op veel switches vervolgens een default route (standaard route) ingesteld moet worden. Dat betekent dat er een route toegevoegd moet worden voor "0.0.0.0" naar de default gateway. In de context van dit voorbeeld zou dat dan "172.31.224.1" zijn. Op de HP ProCurve volstaat het instellen van de default gateway (172.31.224.1).
VLAN's toevoegen
Standaard is er slechts één VLAN gedefinieerd.
Op een HP ProCurve wordt een VLAN toegevoegd door de optie "Create VLAN" aan te vinken. Vervolgens wordt het VLAN ingevuld. Met de knop "Apply" wordt het VLAN aangemaakt.
Op dezelfde manier kunnen alle VLAN's toegevoegd worden.
Indien mogelijk, dan is het handig om de "VLAN Name" in te vullen.
Op poort 24 is pfSense aangesloten. Het is handig om naast poort 24 ook een aantal andere poorten in te stellen als VLAN Trunks. In dit voorbeeld worden de poort 21 t/m 24 als VLAN Trunk Ports geconfigureerd.
Op de HP ProCurve kunnen de VLAN's ingesteld worden op de onderliggende poorten.
Eerst wordt VLAN 96 geselecteerd (onder "Participation / Tagging). Vervolgens wordt voor poort 21 en vervolgens 22, 23 en 24 de selectie omgezet van "E" naar "T".
Betekenis selectie:
- E: Excluded
- T: Tagged
- U: Excluded
Dezelfde selectie wordt gemaakt voor VLAN 128 en vervolgens 160, 192 en 224.
VLAN 128 Thuis | VLAN 160 IoT | VLAN 192 Gasten | VLAN 224 Home Lab |
---|---|---|---|
Zodra de configuratie is gewijzigd, dan moet de configuratie opgeslagen worden. Op sommige switches worden wijzigingen direct opgeslagen en toegepast tijdens het wijzigen van de configuratie. Op een HP ProCurve moeten de wijzigingen opgeslagen worden via de optie "Save Configuration" onder "Maintenance". Wanneer de configuratie niet op wordt geslagen, dan gaan de wijzigingen verloren zodra de spanning van de switch gehaald wordt.
De poorten 1 t/m 4 worden in dit voorbeeld ingesteld voor het kantoor netwerk.
Via de optie "VLAN Ports" onder "VLANs" kan per interface de "PVID" gecontroleerd worden. Uit de onderstaande schermafdruk wordt duidelijk dat de PVID van interface (poort) "1" op PVID "1" staat ingesteld.
Via de optie "Participation / Tagging" onder "VLANs" kan de PVID geconfigureerd worden. In de onderstaande schermafdruk is VLAN 96 geselecteerd achter "VLAN". Vervolgens zijn de poorten 1 t/m 4 op "U" ingesteld.
Er wordt een waarschuwing gegeven. Er kan op de knop "OK" geklikt worden, omdat er zekerheid is over de keuze.
Via "VLAN Ports" onder "VLANs" kan per poort gecontroleerd worden of de PVID inderdaad gewijzigd is. Uit de onderstaande schermafdruk wordt duidelijk dat dat voor poort "1" het geval is.
Op de bovenstaande manier kan iedere poort naar wens aangepast (lees: ingedeeld) worden voor het desbetreffende VLAN.
Het is van belang om ook deze wijziging van de configuratie op te slaan!
Tot slot is het belangrijk om te controleren of de firewallregels effectief zijn.
Om de firewallregels te testen is een laptop aangesloten op poort "1" van de switch. Vervolgens is geprobeerd om de standaard gateway van het IoT netwerk te pingen. Uit de onderstaande schermafdruk wordt duidelijk dat een ping vanaf 10.10.96.101 naar 10.10.128.1 wordt geblokkeerd.
Hiermee is de basis uitgelegd om VLAN's te configureren op pfSense en op een switch.
VLAN's en draadloze netwerken
In deze post wordt tot slot kort ingegaan op het toepassen van een VLAN op een draadloos netwerk.
Waar het bij de deze toepassing op neerkomt is dat een access point op een trunk poort aangesloten wordt (bijvoorbeeld poort 21). Het access point wordt daardoor aangesloten op het management VLAN. Vervolgens kan een draadloos netwerk (SSID) aangemaakt worden waarbij het VLAN op wordt gegeven. Het access point zorgt er vervolgens voor dat draadloze apparaten in het desbetreffende VLAN terecht komen.
In deze post wordt VLAN 192 gebruikt voor gasten. Aan de hand van dit VLAN is een draadloos netwerk (SSID) met de naam "GASTEN" gemaakt. Hierbij is het desbetreffende VLAN ingevoerd. Omdat het om een gastennetwerk gaat, is ook de optie "Guest Network" aangevinkt. Deze laatste optie is belangrijk omdat daarmee voorkomen wordt dat clients verbinding kunnen maken met de RFC 1918 IPv4 privé-adresruimte. Op een gastennetwerk is dat een "must" omdat het onwenselijk is dat clients met elkaar kunnen communiceren! Het is de bedoeling dat er alleen verbinding gemaakt kan worden met internet. Daarnaast is het goed om na te denken waarmee een gast verbinding mag maken op internet. Een idee is om de uitgaande TCP en UDP poorten te beperken. Maar ook het wegfilteren van ongewenste websites is een goed idee.
De onderstaande schermafdruk is van een OC200 controller van TP-Link. Deze controller kan bijvoorbeeld op poort 23 (van de switch uit deze poort) aangesloten worden.
Een prettige combinatie is overigens een TP-Link OC200 of OC300 controller in combinatie met een TP-Link PoE switch. Daarbij passen bijvoorbeeld EAP245 of EAP660 access points - die via de switch - (naast data) ook van spanning voorzien kunenn worden (PoE). Zowel de TP-Link switch(es) als de TP-Link access points kunnen in de controller op worden genomen en beheerd. Vooral bij een aantal VLAN's en een aantal access points loont een dergelijke combinatie/configuratie zeer de moeite. Het is ook mogelijk om een router/firewall op te nemen in een OC controller. Hierover is het één en ander geschreven in de post met de titel TP-Link Omada 3-in-1 Gigabit VPN Router. De persoonlijke voorkeur van de auteur gaat echter uit naar pfSense wanneer het om een router/firewall gaat.
Hiermee komt een einde aan de (lange) post waarin de basis van VLAN's onder pfSense uit de doeken wordt gedaan.
pfSense Configuratie
Hieronder staat een kopie van de pfSense config die gebruikt is voor deze post.
De kopie van de pfSense config mag naar wens gebruikt worden (bijvoorbeeld voor eigen gebruik maar ook voor commerciële doeleinden). Gebruik van de informatie op deze site en beschikbaar gestelde configs (en dergelijke) is geheel op eigen risico (en ook voor eigen rekening mocht er iets mis gaan; bijvoorbeeld door fouten in de config, bugs in de gebruikte software (pfSense) of foutief gebruik). Advies is om altijd een back-up te maken, mocht er reeds een config in de eigen pfSense installatie gebruikt worden. Met een back-up kan (meestal) herstelt worden naar een eerdere toestand.
Configuratiebestand pfSense
pfSense versie 2.6 CE is gebruikt. Advies is om deze config niet te gebruiken voor een lagere versie van pfSense.
Bestand | Omschrijving |
---|---|
pfsense-config-vm-em-interfaces.xml | Origineel - VM |
pfsense-config-intel-igb-interfaces.xml | Aangepase interfaces voor Intel Gigabit Interfaces |
Gebruik het bestand pfsense-config-vm-em-interfaces.xml
indien er gebruik gemaakt wordt van een hypervisor.
Gebruik het bestand pfsense-config-intel-igb-interfaces.xml
indien er gebruik gemaakt wordt van bare metal in combinatie met Intel Gigabit netwerkadapters.
Een andere optie is om de interfaces in het .xml bestand te hernoemen met een text editor (zoeken/vervangen; alles vervangen).
Zo is het bestand pfsense-config-intel-igb-interfaces.xml
gemaakt door in pfsense-config-vm-em-interfaces.xml
de interface em0
te vervangen door igb0
en em1
te vervangen door igb1
. Deze laatste is de LAN interface (L_MNGMNT, et cetera). Deze interface wordt 16 maal vermeld in het .xml bestand. Met bijvoorbeeld Notepad++ kan de optie "Replace (CTRL+H)" onder "Search" gebruikt worden. Met de knop "Replace All" kunnen alle vermeldingen in één keer vervangen worden.
Configuratie inlezen
De configuratie kan ingelezen worden via de optie "Backup & Restore" onder "Diagnostics". Onder de sectie "Restore Backup" kan de configuratie ingelezen worden in pfSense.
De gebruikersnaam en het wachtwoord zijn gereset naar de standaard (admin / pfsense).
Tips
Het is verstandig om het volgende aan te passen nadat de configuratie is ingelezen.
- WAN Interface: er wordt gebruik gemaakt van een statisch IPv4
100.127.248.1
met100.127.248.254
als default gateway binnen een /24 subnet. Pas dit naar wens aan. - Certificaat: pas via "Cert Manager" onder "System" het certificaat aan. Dat kan onder de tab "Certificates". Klik op het icoon "Reissue/Renew" (ronde pijl). Vink "Reuse key" uit en klik vervolgens op "Renew/Reissue" (rode knop). Klik vervolgens op de knop "OK". Druk tot slot op de "F5" toets op het toetsenbord om de web interface opnieuw in te laden.
- Wachtwoord: pas het wachtwoord aan. De standaard login (admin / pfsense) wordt gebruikt. Het wachtwoord kan aangepast worden via "User Manager" onder "System" (of via de link in de waarschuwing bovenaan de web UI).