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?

  1. Installatie van UFW.
  2. De basis UFW commando syntaxis.
  3. Het UFW Allow en Deny commando.
  4. Geavanceerde UFW commando’s.
  5. Het verwijderen van een regel in UFW.
  6. 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

Schakel UFW in

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

Sta SSH toe in UFW

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)

UFW ontzegt commando.

Voorbeeld voor “deny” met dienstnaam. In dit voorbeeld blokkeer ik http poort/80:

ufw deny http

UFW ontkent 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

Het UFW status commando.

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.