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
-Ogebruikt. 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
| Opdracht | Omschrijving |
|---|---|
kldload pf | PF laden |
pfctl -f /etc/pf.conf | Firewallregels laden |
pfctl -s all | Status van PF bekijken |
pfctl -s rules | Actieve regels tonen |
tcpdump -i pflog0 | Firewalllog 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
- PF (Freebsd handboek)
- FreeBSD Firewall configuratie
- Plesk firewallpoorten
- Nmap port scanning
- Netwerkbeveiliging op FreeBSD