Installatie pfSense

Uit computer infrastructuur
Naar navigatie springen Naar zoeken springen

Nu ga je pfSense installeren. Dit gebruik je om je netwerk beter te beveiligen en te monitoren.

PCLe passthrough

Voordat je verder kan gaan moet je de NIC isoleren van de kernel. Dit doe je door een zogeheten "PCLe passthrough" te doen. Hierbij isoleer je de NIC kaart van Proxmox, zodat deze niet kan worden gebruikt door proxmox maar alleen door de pfSense virtual machine. Dit doe je als volgt:

Open de shell van Proxmox vanaf de browser of de server console en typ het volgende in:

nano /etc/default/grub

Met de arrow keys kan je naar boven en beneden gaan:

Verander GRUB_CMDLINE_LINUX_DEFAULT="<commands>"

in GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

type ctl + x

druk op y en dan enter . Belangrijk is dat je niks anders aanpast!

Vervolgens slaan we de aanpassing op door middel van:

update-grub

Nu moet je een aantal modules toevoegen aan /etc/modules. Dit kan weer worden gedaan door nano /etc/modules.

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Om problemen van een slechte IOMMU grouping te voorkomen, maak je gebruik van onderstaande.

echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf

Nu moet je zoeken welke "device id" de NIC heeft die je wil gebruiken voor pfSense. Dit doe je als volgt:

lspci -nnk

Dan zoek je de naam van de netwerkkaart. In mijn geval krijg ik de volgende output. Als je kijkt zie je dat in mijn geval de 4 verschillende ethernet poorten apart worden gedetecteerd in de groepen 4:00 en 5:00 Je typt dan ook

lspci -n -s 04:00
lspci -n -s 05:00

Als het goed is moet ongeveer hetzelfde uit beide komen. In mijn geval krijg ik 04:00.0 0200: 8086:10bc (rev 06). Het stuk dat je wilt gebruiken ligt in het deel dat net voor (rev 06) ligt. In mijn geval is dit 8086:10bc.

In het volgende gedeelte krijg ik dan ook:

echo "options vfio-pci ids=8086:10bc" > /etc/modprobe.d/vfio.conf

Vervolgens voer je de volgende commands uit:

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
update-initramfs -d -u
reboot now

Nu wordt de computer opnieuw opgestart. Nadat deze is opgestart kijk je of alles is gelukt met

lspci -nnk

Onder de groepen waar de NIC zat moet nu staan Kernel driver in use: vfio-pcid . Als dit niet het geval is dan is er iets mis gegaan. Als dit er wel staat kun je doorgaan naar de volgende stap.

Maken van de virtual machine (VM)

instellingen doe moeten woorden angebracht in de wizzard

Click met de rechtermuis knop op <jou hostnaam> en druk dan op Create VM. Hiermee open je een wizzard waarmee je de VM configureert. Kies de naam voor de VM. Vervolgens kies je pfSense iso installatie die je ingevolge het vorige hoofdstuk hebt geüpload naar de proxmox server. Onder het kopje "systeem" pas je de bios naar UEFI en machine naar Q35. Vervolgens kies je de locatie waar hij de EFI disk opslaat. Onder het kopje CPU verander je het aantal cores naar 3. De memory zet je naar 4096 en network doe je naar "no network device". Nu wordt er een VM voor je gemaakt.
Als dit gelukt is moet je de NIC toevoegen. Vergeet niet om alle groepen aan de VM toe te voegen. In mijn geval zijn dit groepen 4:00 en 5:00. Als vergelijkingsmateriaal laat ik hieronder mijn VM.config zien. Deze is te vinden onder

plek waar je instellingen kunt wijzigen in proxmox

/etc/pve/qemu-server/<vmid>.conf

bios: ovmf
bootdisk: scsi0
cores: 3
efidisk0: local-lvm:vm-101-disk-0,size=128K
hostpci0: 04:00
hostpci1: 05:00
ide2: local:iso/pfSense-CE-2.4.4-RELEASE-p3-amd64.iso,media=cdrom
machine: q35
memory: 4098
name: pfsense
numa: 0
onboot: 1
ostype: l26
scsi0: hdd1:101/vm-101-disk-0.qcow2,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=<my uuid>
sockets: 1
vmgenid: <my vmgenid>

Installatie van pfSense

mijn pfsense basis configuratie

Nu kun je de VM starten. Als alles soepel verloopt kom je nu in de installatie wizzard van pfSense terecht. Ook hierbij - zoals bij proxmox - ga ik ervan uit dat je hier makkelijk doorheen gaat. Hierbij kan bij bijna elke vraag "enter" worden geselecteerd (tenzij er nog andere aanpassingen moeten worden volbracht). Na het opnieuw opstarten van de VM moet worden gecontroleerd of alle NIC interfaces aanwezig zijn in de VM.

hoe ik mijn ethernet kabels heb liggen vanaf de pfsense router

Hierna kan verder worden gegaan met de volgende stap. In mijn geval zet ik de ISP router naar bridge modus. Dit houdt in dat het public IP wordt doorverwezen naar de pfSense box. Dit kan worden gedaan door dit te vragen aan je eigen ISP. Onthoud wel dat wanneer je dit doet het internet er voor langere tijd uit ligt tot alles is geconfigureerd. Bij het instellen van de bridge modus zullen alle ethernet poorten van de ISP router worden uitgezet behalve de eerste. In de eerste port doen we de ethernet kabel. Zo hebben we een WAN interface op de pfSense box. Nu doen we een tweede ethernet kabel in een tweede wireless router. Deze kabel gaat dan in de LAN port van de wireless router en niet de WAN port. Als het goed is wordt een public IP adres via de DHCP servers van jou ISP toegewezen aan de pfSense box. Vergeet niet dat het LAN interface hetzelfde subnet moet hebben als de 2de wireless router. De 2de wireless router moet dus eerst worden geconfigureerd voordat deze kan worden aangesloten. Op de wireless router mag de DHCP server uitgezet worden, want er wordt gebruik gemaakt van de DHCP server op de pfSense box. Ervan uitgaande dat de pfSense box en de wireless router dezelfde LAN instellingen hebben, kun je nu een ethernet kabel van de wireless router naar je computer doen. Je moet nu handmatig de adapter instellingen laten overeenkomen met die van de pfSense box en de wireless router, zodat deze een verbinding met elkaar kunnen maken. Hierna kun je beginnen met de installatie wizzard van pfSense in de browser. Hierbij moet je het IP-adres opzoeken van pfSense in de browser.

De plaatjes rechts kunnen worden gebruikt als referentie. Het public IP is zwart gemaakt vanwege beveiligingsredenen.

Configuratie van pfsense

voorbeeld van krunker.io blocked

Als alle bovenstaande stappen zijn doorlopen kan worden genavigeerd naar https://<router ip> .Als het goed is wordt er een wizzard geopend. Pas hier zo nodig de instellingen aan. Pas de DNS server tijdelijk aan naar 1.1.1.1. Later kun je de dns server van windows gebruiken. Dubbelcheck of de DHCP server aanstaat en kijk of de wireless router IP adressen uitdeelt via de wifi verbinding. Als dit lukt kun je beginnen met een aantal applicaties te installeren op pFsense. De package manager is te vinden onder systeem-PackageManager-AvailablePackages.

De volgende applicaties raad ik ten zeerste aan om te installeren: TFTPD, suricata en pfBlockerNG-devel. Optioneel kunnen voor diagnose de volgende applicaties worden geïnstalleerd: arpwatch, nmap, iperf, zabbix-agent44, Status_Traffic_Totals en darkstat. Als eerste begin je met de configuratie van pfBlockerNG. Deze is te vinden onder firewall-pfBblockerNG. Hier wordt weer een wizzard geopend waar je zo nodig aanpassingen in kan maken. Als eerste raad ik aan om een MaxMind GeoIp key aan te vragen. Dit is namelijk gratis en kost 10 minuutjes werk voor extra beveiliging. Zo kun je zorgen dat alle netwerk traffic afkomstig uit Asia, Africa, China en andere landen die mogelijke beveiligingsrisico's opleveren, worden geblokkeerd. Dit is handig omdat er veel brute force attacks uit deze landen komen. Je kunt pfblocker gebruiken om games, malware, tracking en nog veel meer te blokkeren. Het is ook mogelijk om een custom error message te maken en deze te laten zien wanneer iemand bijvoorbeeld een spel wil spelen.

Rechts staat een plaatje van hoe een dergelijke error er uit ziet. TFTPD zal later moeten worden geconfigureerd nadat de windows server is geïnstalleerd. Iets wat wel belangrijk is om te configureren is suricata. Dit verbetert de beveiliging van het netwerk en is vooral handig om deze wiki server te beschermen. Alternatieven voor suricata kunnen ook worden gebruikt, zoals Snort. Het is daarom niet noodzakelijk om verder uit te leggen hoe pFsense blocker en suricata werken. Afhankelijk van wat de netwerk administrator wil bereiken moet dit anders worden geconfigureerd.

Installatie OpenVPN