Aan de slag met UFW (Uncomplicated Firewall) op Ubuntu 20.04
UFW of Ongecompliceerde Firewall is een toepassing om een iptables gebaseerde firewall op Ubuntu te beheren. UFW is het standaard firewall configuratieprogramma voor Ubuntu Linux en biedt een gebruikersvriendelijke manier om de firewall in te stellen, de UFW commando’s zijn net als in het Engels, zodat de commando’s gemakkelijk te onthouden zijn. De UFW firewall ondersteunt IPv4 en IPv6.
UFW biedt ook een GUI toepassing, als je een GNOME desktop gebruikt kun je gufw installeren, of als je een KDE desktop gebruikt kun je kcm-ufw installeren.
Vereisten
- Ubuntu versie tussen 15.04 en 21.04. Nieuwere Ubuntu versies zouden ook moeten werken.
- root privileges
Wat wordt in deze handleiding behandeld?
- Installatie van UFW.
- De basis UFW commando syntaxis.
- Het UFW Allow en Deny commando.
- Geavanceerde UFW commando’s.
- Het verwijderen van een regel in UFW.
- UFW uitschakelen en resetten.
Installatie van UFW
Standaard zou UFW al geïnstalleerd moeten zijn op ubuntu 20.04. Je kunt dit testen met het commando:
which ufw
Als het niet het pad naar het commando teruggeeft, installeer UFW dan met het volgende apt commando:
sudo apt-get install ufw
Gebruik voor de volgende commando’s sudo of root privileges. Je kunt root gebruiker worden met het commando:
sudo -s
Voer dan het volgende commando uit om UFW in te schakelen:
ufw enable
Resultaat:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Het basis UFW commando
Het “ufw enable” commando schakelt UFW in met de standaard de regels. Je kunt controleren of UFW draait door dit commando te geven:
ufw status verbose
Resultaat:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
Als je UFW wilt uitschakelen of uitzetten, kun je het volgende gebruiken:
ufw disable
Resultaat:
Firewall stopped and disabled on system startup
Het UFW Allow en Deny commando
1. UFW toestaan commando
UFW zal alle inkomende verbindingen weigeren nadat je het ingeschakeld hebt. Het eerste wat je dus moet doen is SSH toegang voor de server toestaan als je het systeem op afstand wilt beheren. Het commando “ufw allow sshport” staat toegang via SSH toe, vervang SSHPORT door de poort van de SSH dienst, de standaard SSH poort is 22.
ufw allow 22
Resultaat:
Rules updated
Rules updated (v6) #For IPv6
Als je inkomende verbindingen op poort 22 alleen voor TCP wilt toestaan, voeg dan aan het eind van het commando “/tcp” toe zoals in het volgende voorbeeld.
ufw allow 22/tcp
Als de dienst waartoe je toegang wilt toestaan op zijn standaard poort luistert, dan kun je de dienstnaam gebruiken in plaats van het poortnummer. Dit maakt het gemakkelijker de poort te openen omdat je de poort misschien niet kent. UFW zoekt dan het juiste poortnummer in /etc/services voor je op.
Dit commando opent de standaard SSH poort:
ufw allow ssh
Controleer nu de regel met:
ufw status
2. UFW weiger commando
Het “deny” commando werkt ongeveer hetzelfde als het “allow” commando en wordt gebruikt om een poort in de firewall te sluiten:
Deny met de optie Port:
ufw deny 80
Resultaat:
Rule added
Rule added (v6)
Voorbeeld voor “deny” met dienstnaam. In dit voorbeeld blokkeer ik http poort/80:
ufw deny http
Opmerking:
Je kunt alle poorten en hun dienstnamen zien in het bestand “/etc/services”.
Geavanceerde UFW commando’s
Nu gaan we dieper graven in de syntaxis van de UFW commando’s, leren hoe je deelbereiken kunt toestaan (bv. voor de passieve poorten van FTP) en hoe je alleen toegang kunt toestaan vanaf één IP of subnet.
1. Sta een poortbereik toe
Je kunt in UFW een bereik van poorten toestaan. Sommige diensten zoals FTP of IRC gebruiken een bereik van poorten om met zijn cliënten te communiceren.
Voor dit voorbeeld zullen we de poortreeks toestaan die door ircd op mijn server gebruikt wordt de reeks is poort 6660 tot 6670:
sudo ufw allow 6660:6670/tcp
sudo ufw allow 6660:6670/udp
Het commando zal verbindingen naar de poorten 6660-6670 toestaan via het TCP en UDP protocol.
2. Sta een specifiek IP adres toe
En je kunt een specifiek IP toevoegen om toegang tot alle diensten toe te staan door de optie“from” toe te voegen. Dit is bv. handig als je thuis of op kantoor een statisch IP hebt en van daaruit toegang tot alle diensten op je server wilt toestaan. Onderstaand commando geeft het IP 192.168.1.106 toegang tot alle poorten op de server:
ufw allow from 192.168.1.106
Resultaat:
Rule added
3. Subnet toestaan
Als je alle IP adressen op je subnet wilt toestaan, kun je het IP subnet (bereik van IP adressen) aan het UFW commando toevoegen zoals dit:
ufw allow from 192.168.1.1/24
Resultaat:
WARN: Rule changed after normalization
Rule added
4. Sta toegang toe van een specifiek IP adres tot één poort
Als je toegang tot een poort wilt toestaan van alleen een bepaald IP, kun je de UFW commando’s combineren die we hierboven geleerd hebben.
Bijvoorbeeld alleen IP 192.168.1.106 kan toegang krijgen tot ssh poort 22 tcp en andere IP’s worden van die poort afgewezen, je kunt het volgende commando gebruiken:
ufw allow from 192.168.1.106 proto tcp to any port 22
Resultaat:
Rule added
5. Al het binnenkomende verkeer naar een bepaalde poort toestaan
Als je alle verkeer op poort 80 wilt toestaan, kun je dit commando gebruiken:
ufw allow to any port 80
Een UFW Firewall Regel Verwijderen
In dit onderdeel leer je hoe je een regel kunt verwijderen die in UFW is opgeslagen. Je kunt het“delete” commando gebruiken om de ufw regel te wissen. Typ het commando“ufw delete” en gevolgd door de optie die je wilt laten verwijderen, allow of deny.
Hier zijn enkele voorbeelden:
Verwijderen van de allow SSH regel met dienstnaam:
ufw delete allow ssh
Resultaat:
Rule deleted
Rule deleted (v6)
Dat commando verwijdert de regel“allow ssh“. Wees voorzichtig, sluit jezelf niet buiten van de server.
Verwijder de regel “deny” op poort 80:
ufw delete deny 80
Resultaat:
Rule deleted
Rule deleted (v6)
Heb je een complexe regel dan is er een eenvoudige manier om de regel te identificeren en te verwijderen aan de hand van zijn regel ID. Voer het volgende commando uit om een lijst van alle regels met hun ID’s te krijgen:
ufw status numbered
Resultaat:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
Verwijder nu de SSH regel voor alleen IPv6 door het nummer van de regel te gebruiken:
ufw delete 2
UFW uitschakelen en terugzetten
Als je UFW wilt uitschakelen zonder je regels te wissen, kun je het commando“disable” gebruiken:
ufw disable
Resultaat:
Firewall stopped and disabled on system startup
Als je UFW helemaal wilt uitschakelen en alle regels wilt wissen, kun je het commando“reset” gebruiken:
ufw reset
Resultaat:
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351'
Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351'
Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351'
Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351'
Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'
Conclusie
UFW (Uncomplicated Firewall) is het standaard configuratieprogramma voor firewalls in Ubuntu. UFW commando’s lijken op de Engelse taal, dit maakt ze gemakkelijk te gebruiken en te onthouden. Deze UFW handleiding is een gids om met dit aardige firewall gereedschap aan de slag te gaan Als je meer over UFW wilt weten, kun je naar de ubuntu wiki of ufw-man pagina gaan.