Hulpartikel overzicht

Hulpartikel

Uncomplicated Firewall (UFW) in Ubuntu 16

UFW, of de Uncomplicated Firewall is een veel gebruikte firewall in Debian en Ubuntu. UFW is een beheerlaag / frontend voor iptables dat als doel heeft het beheer van je firewall eenvoudiger te maken.

  • Verbind via SSH / de vps-console en gebruik een root-user, of sudo bij het uitvoeren van de commando's in dit artikel.
  • UFW voert configuratiewijzigingen in real-time door.

UFW installeren

UFW is standaard geïnstalleerd in elke Ubuntu 16 installatie. Je hoeft hem dan enkel nog in te schakelen en logging aan te zetten:

ufw enable
ufw logging on

Met logging on zorg je dat UFW notities aanmaakt in een log (/var/log/syslog), wat zeker aan te raden is. Zo heb je bij problemen meer informatie om mee te troubleshooten.


 

De initiële configuratie

UFW komt na de installatie zonder standaard configuratie. Het is aan te raden om te beginnen met een blokkade op al het inkomende verkeer en het toestaan van uitgaand verkeer, en daarna specifieke poorten services open te zetten. Het eerste doe je met de commando's:

ufw default deny incoming
ufw default allow outgoing

De status van UFW controleer je met:

ufw status verbose

Poorten openen

Voor het openen van poorten zijn er drie opties:

  • tcp- en udp-poorten openen:
    ufw allow 22
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw allow 1234:2345
    
  • een tcp-poort openen:
    ufw allow 22/tcp
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw allow 1234:2345/tcp
  • een udp-poort openen:
    ufw allow 22/udp
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw allow 1234:2345/udp

Poorten sluiten

Voor het sluiten van poorten zijn er eveneens drie opties:

  • tcp- en udp-poorten sluiten:
    ufw deny 22
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw deny 1234:2345
    
  • een tcp-poort sluiten:
    ufw deny 22/tcp
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw deny 1234:2345/tcp
  • een udp-poort sluiten:
    ufw deny 22/udp
    Vervang hier 22 door het gewenste poortnummer. Voor een poort-range gebruik je de syntax:
    ufw deny 1234:2345/udp

Services toestaan

Naast het openen van poorten kun je ook specifieke services openen met UFW. Je voegt de service toe in UFW en UFW opent vervolgens inkomend verkeer voor een of meerdere poorten. Er is hier wel een kanttekening bij:

UFW gebruikt /less/services (zie beschikbare services) om te bepalen welke poorten aan services zijn gekoppeld. Bij het toevoegen van de service worden die poorten geopend. Verander je bijvoorbeeld je SSH-poort, dan zal als je de SSH-service hebt toegevoegd de nieuwe poort niet automatisch open staan, tenzij je de poort handmatig open zet, of de configuratie van de betreffende service in UFW aanpast.

Je staat services in UFW toe met onderstaande commando's, waarbij je SSH vervangt door de betreffende service naam:

UFW gebruikt configuratiebestanden (zie beschikbare services) waar de poorten van verschillende services in zijn vastgesteld. Verander je bijvoorbeeld je SSH-poort, dan zal dus als je de SSH-service hebt toegevoegd, de nieuwe poort niet open staan tenzij je de poort handmatig open zet.

ufw allow ssh

Beschikbare services

UFW haalt al zijn poortinformatie voor het toestaan of weigeren van services uit het bestand /less/services. De inhoud bekijk je bijvoorbeeld met:

nano /less/services

In onze nano- en vi-documentatie leggen we uit hoe je snel specifiek op woorden zoekt (i.e. in dit geval de namen van services).


Services weigeren

Services zet je in UFW net zo eenvoudig dicht als open:

ufw deny ssh

Alle inkomende verbindingen staan standaard dicht, dus in principe is het specifiek weigeren van een service niet direct noodzakelijk.


Regels verwijderen

In het begin van dit artikel hebben we als default actie een deny op alle inkomende verbindingen gezet. Ongeacht of je poorten of services daarna nog handmatig opent, of sluit, zijn in alle gevallen dit UFW-regels. Deze regels kun je verwijderen als volgt:

ufw delete deny ssh
ufw delete allow 22/tcp
  • Het eerste commando is een voorbeeld voor het verwijderen van een service regel, de tweede voor het verwijderen van een poort regel
  • gebruik deny of allow afhankelijk van of de poort/service open / dicht staat.
  • Vervang ssh door de naam van de service, of door het poortnummer en protocol zoals in het tweede voorbeeld: 22/tcp, of 22 voor tcp en udp.

Ter verduidelijking: aangezien alle inkomende verbindingen standaard dicht staat, volstaat het om allow regels te maken voor poorten en services en eventueel die regels te verwijderen. Het sluiten van specifieke poorten / services is in principe dus niet nodig.


IP's blokkeren

Het kan gebeuren dat je VPS met bruteforce aanvallen bestookt wordt door bots. Wij raden aan dit op te lossen door Fail2Ban te gebruiken, maar daarnaast kun je uiteraard ook handmatig IP's blokkeren. Je hebt hiervoor drie opties (vervang 123.123.123.123 en 1234 door je daadwerkelijke IP / poort):

  • De toegang tot je gehele VPS blokkeren:
    ufw deny from 123.123.123.123 to any
  • De toegang tot een specifieke poort en protocol blokkeren:
    ufw deny proto tcp from 123.123.123.123 to any port 1234
  • Je kunt het ook omkeren en alle IP's blokkeren (de default actie van UFW) en een specifiek IP toestaan:
    ufw allow from 123.123.123.123 to any port 1234
    Je kunt in plaats van 123.123.123.123 ook een IPv6 adres opgeven met deze syntax.

    Gebruik je deze laatste methode bijvoorbeeld om alleen jezelf toegang via SSH te geven, dan kan dit soms problematisch zijn wanneer je een VPN gebruikt. Controleer dan voor de zekerheid je IP door te proberen te verbinden met je VPS en dan in /var/log/syslog te kijken welk IP geblokkeerd wordt op je SSH-poort.

IP's deblokkeren

IP's deblokkeren werkt heel eenvoudig in UFW, en je kunt deze optie ook gebruiken als alternatief om specifieke regels te verwijderen (zie de eerdere paragraaf). Controleer eerst alle huidige regels met het commando:

ufw status numbered

Je krijgt dan een output met alle regels keurig genummerd. Een specifieke regel verwijder je met het commando:

ufw delete 1

Vervang 1 door het regelnummer dat je wil verwijderen.

Als je 'ufw delete 1' gebruikt, dan is voorheen regel 2 nu regel 1 geworden. Je kunt dan ook het beste na elke delete een nieuwe ufw status numbered gebruiken om te voorkomen dat je ongewild de verkeerde rule delete.


 

Wil je nog meer weten over UFW of met anderen bespreken? Laat het ons weten onder 'Reacties' onderaan dit artikel en bekijk ook de UFW-documentatie.

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op