PF Firewall configureren op FreeBSD

PF (Packet Filter) is de ingebouwde firewall van FreeBSD en OpenBSD. Met PF kun je netwerkverkeer filteren, poorten openen of sluiten en ongewenste verbindingen blokkeren. In deze handleiding lees je hoe je PF installeert, activeert, configureert en test.

PF Firewall inschakelen

Laad de PF-kernelmodule handmatig met:

kldload pf

PF automatisch starten bij het opstarten

Open het configuratiebestand:

ee /etc/rc.conf

Voeg vervolgens de onderstaande regels toe:

# Enable PF
pf_enable="YES"

# PF configuratiebestand
pf_rules="/etc/pf.conf"

# Extra opties
pf_flags=""

# PF logging
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

PF-configuratiebestand aanpassen

Open het configuratiebestand:

ee /etc/pf.conf

Basisinstellingen

Pas minimaal de netwerkinterface en het externe IP-adres aan:

ext_if="fxp0"
external_addr="192.168.1.139"

Vervang deze waarden door de netwerkinterface en het IP-adres van jouw server.

Voorbeeld van firewallregels

Onderstaande configuratie bevat onder andere regels voor:

  • SSH (poort 22)
  • HTTP (poort 80)
  • HTTPS (poort 443)
  • FTP en FTPS
  • Plesk
  • MySQL
  • PostgreSQL
  • Tomcat
  • E-mailprotocollen (SMTP, POP3, IMAP)
  • DNS
  • ICMP (ping)
  • NTP
  • Blokkeren van NetBIOS-poorten

Plaats hiervoor de gewenste regels in /etc/pf.conf.

PF-regels laden

Nadat de configuratie is aangepast laad je de regels opnieuw in:

pfctl -f /etc/pf.conf

PF-configuratie controleren

Controleer of PF correct draait:

pfctl -s all

Toon uitsluitend de actieve firewallregels:

pfctl -s rules

Firewalllog bekijken

Bekijk de PF-logbestanden met tcpdump:

tcpdump -n -e -ttt -i pflog0

of

tcpdump -netttvvv -i pflog0

Firewallregels opnieuw laden

Na iedere wijziging kun je de configuratie opnieuw laden zonder de firewall te stoppen:

pfctl -f /etc/pf.conf

Firewall testen met Nmap

Met Nmap kun je controleren welke poorten bereikbaar zijn en of de firewall correct werkt.

Nmap installeren

cd /usr/ports/security/nmap
make install

Willekeurige hosts scannen

nmap -v -iR 10 -P0 -p 80

TCP Connect Scan

nmap -v -sT localhost
nmap -v -sT 192.168.0.0/24

TCP SYN Scan (Half Open)

nmap -v -sS localhost
nmap -v -sS 192.168.0.0/24

TCP FIN Scan

nmap -v -sF localhost
nmap -v -sF 192.168.0.0/24

TCP Xmas Scan

Controleert of de firewall bescherming biedt tegen Xmas-scans.

nmap -v -sX localhost
nmap -v -sX 192.168.0.0/24

TCP NULL Scan

Controleert of de firewall bescherming biedt tegen NULL-scans.

nmap -v -sN localhost
nmap -v -sN 192.168.0.0/24

TCP Window Scan

nmap -v -sW localhost
nmap -v -sW 192.168.0.0/24

RPC Scan

Zoekt naar actieve RPC-services.

nmap -v -sR localhost
nmap -v -sR 192.168.0.0/24

UDP Scan

Controleert welke UDP-poorten geopend zijn.

nmap -v -sU localhost
nmap -v -sU 192.168.0.0/24

Let op: in de oorspronkelijke handleiding werd -O gebruikt. Dat is een OS-detectie. Voor een echte UDP-scan gebruik je -sU.

Versiedetectie

Controleer welke software achter een geopende poort draait:

nmap -v -sV localhost
nmap -v -sV 192.168.0.0/24

Veelgebruikte PF-opdrachten

OpdrachtOmschrijving
kldload pfPF laden
pfctl -f /etc/pf.confFirewallregels laden
pfctl -s allStatus van PF bekijken
pfctl -s rulesActieve regels tonen
tcpdump -i pflog0Firewalllog bekijken

Samenvatting

Met PF beschik je over een krachtige firewall voor FreeBSD. Door alleen noodzakelijke poorten open te zetten, logging in te schakelen en de configuratie regelmatig met Nmap te testen, verbeter je de beveiliging van je server aanzienlijk.

Gerelateerde onderwerpen

Add a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *