Bij het horen en lezen van het commando ‘iptables’ zal menige lezer van dit blad de wenkbrauwen fronsen en diep zuchten. Gelukkig zijn er eenvoudig te bedienen gebruikersinterfaces die als een schil over dit programma heen werken. In deze workshop maak je kennis met één daarvan: UFW. Na een korte beschrijving over de achtergrond van UFW gaan we concreet aan de slag met achtereenvolgens de grafische interface en UFW vanaf de opdrachtprompt.

André Fondse

Met het commando iptables is het mogelijk om een firewall op een Linux computer te configureren. Iptables wordt standaard geïnstalleerd bij de installatie van Linux Mint en waarschijnlijk de meeste andere Linux distributies. De configuratie van iptables is relatief ingewikkeld. Als je maar incidenteel je firewall wilt configureren of aanpassen, dan neem best wel een hobbel om uit te zoeken welke commando’s je moet ingeven. Gelukkig zijn er programma’s die als een schil over iptables heen werken waardoor de configuratie van je firewall een stuk eenvoudiger wordt. Naast UFW zijn dit onder andere easywall, Firehol en Shorewall.

UFW staat voor Uncomplicated FireWall en is standaard geïnstalleerd bij de installatie van Linux Mint. Dit betreft zowel het ufw commando als de grafische interface. UFW is na de installatie nog niet actief. Dit is iets wat je zelf moet instellen. Op de achtergrond wordt alles wat je met UFW voor je firewall instelt, omgezet naar iptables. Hiernaar heb je geen omkijken en kun je op een relatief eenvoudige manier de instellingen voor je firewall maken.

Voordat je met UFW aan de slag gaat een waarschuwing vooraf als je niet fysiek bij de server kunt komen: Wees er van overtuigd dat de instellingen van UFW er niet toe leiden dat je niet meer bij je server kunt komen. Is de toegang door middel van de firewall afgesloten, dan kom je niet meer bij je server!

Grafische interface: GUFW 

De grafische interface van UFW heet GUFW. Als je nadat je op de startknop aan de onderkant van je scherm geklikt hebt ‘firewall’ intypt, dan zie je het programma Firewall-configuratie (zie onderstaande afbeelding). Start dit programma en na het ingeven van je wachtwoord kom je in de interface van GUFW terecht (afbeelding 2). Een eerste korte toelichting over het gebruik van GUFW kun je lezen in het tekstvak onderaan (je ziet meer tekst als je naar met je met het scrolwieltje van je muis in dit tekstvak naar beneden scrolt).

1 – starten grafische interface ufw

Je zet de firewall aan door met de muis het knopje bij status naar rechts te schuiven. Standaard is dan bij het profiel ‘Thuis’ ingeschakeld dat al het inkomende verkeer weigert en dat al het uitgaande verkeer toestaat. Dit geldt ook voor het profiel ‘Kantoor’. Bij het profiel ‘Openbaar’ wordt standaard het inkomende verkeer verworpen en het uitgaande verkeer toegestaan. Het verschil tussen weigeren en verwerpen van het inkomende verkeer is dat bij weigeren alle pakketten zonder nadere melding niet geaccepteerd worden en dat bij verwerpen aangegeven wordt dat de pakketjes niet geaccepteerd worden. In de documentatie over UFW wordt het advies gegeven om er voor te kiezen om alleen pakketten te weigeren, omdat de verzender het pakket hierover niet geïnformeerd hoeft te worden en het bovendien dataverkeer bespaart.

2 – interface GUFW

UFW is actief in het profiel dat je gekozen hebt. Dit maakt het ook makkelijk om eenvoudig van profiel te wisselen. Zo zet een klik op de muis je laptop dicht voor het binnenkomende verkeer als je met je laptop op een openbare internet aansluiting bent aangesloten. Heb je aan de standaard profielen van UFW niet genoeg, dan maak je een nieuw profiel aan via Bewerken -> voorkeuren. Onderaan dit scherm staan de profielen en een extra profiel maak je aan door op de plus te klikken. Daarna scrol je in het vak met de profielen naar onderen en je ziet het nieuw aangemaakte profiel staan. Als je op een profielnaam dubbelklikt, dan kun je de naam van het profiel aanpassen. Een profiel verwijder je door in dit zelfde scherm eerst het profiel te selecteren en daarna op het min teken onder de profielnamen te klikken. Je kunt nu de Firewall-voorkeuren sluiten.

GUFW biedt de mogelijkheid om in de aangemaakte profielen meer specifieke regels in te stellen. Standaard wordt bijvoorbeeld in het ‘Thuis’ profiel al het inkomende netwerkverkeer geweigerd. Je wilt op deze regel voor je interne netwerk een uitzondering maken. Dit doe je als volgt:

– Klik op ‘Rules’ iets boven het midden van het venster.

– Klik daarna op het plusteken onderaan het venster. Er wordt nu een nieuw venster geopend.

– Klik op het tabblad ‘Geavanceerd’. (Als je interne netwerk in de reeks 192.168.1.x ligt, neem je de instellingen uit onderstaande afbeelding over. In Linux Mint kun je eenvoudig zien wat het IP adres van je computer is en daarmee ook de IP-reeks zien waarvan je computer gebruik maakt. Als je na het klikken op de start knop ‘Netwerk’ intypt, dan zie je na het opstarten van dit programma het IP-adres van je computer.)

3 – Instellingen inkomend verkeer intern netwerk toestaan

– Klik ten slotte op de knop toevoegen. In UFW onder profiel thuis zie je nu dat de regel is aangemaakt.

4 – De aangemaakte regel is zichtbaar in het hoofdvenster van UFW

Stel, je hebt op je computer een website lopen die je over het internet benaderbaar wilt maken. Op basis van het voorgaande is (G)UFW nu zo geconfigureerd dat inkomend verkeer van buiten het interne netwerk geweigerd wordt. Je moet nu in UFW een uitzondering gaan instellen dat het binnenkomend verkeer voor de website wel toegestaan wordt. (Los hiervan moet je in je router ook forwarding naar je computer instellen. Dit wordt niet in deze workshop besproken.)  Het toevoegen van deze regel gaat ongeveer hetzelfde als de regel voor het toestaan van het interne netwerk:

– Klik in het venster dat geopend wordt na het klikken op het plusteken op het tabblad ‘Eenvoudig’.

– Neem de instellingen over van onderstaande afbeelding over en klik op de knop toevoegen. In plaats van het protocol kun je hier ook de poort gebruiken. Voor http is dit 80.

– Voeg op dezelfde wijze ook nog een regel toe voor het https protocol. Bij poort vul je dan https of 443 in plaats van http in.

5 – Toestaan inkomend verkeer voor webserver

Firewall regels verwijder je eenvoudig door de regel te selecteren en dan op het min teken onderaan het scherm van UFW te klikken. Een firewall regel pas je aan door op het tandwieltje onderaan UFW te klikken. Je komt dan standaard in het scherm voor de geavanceerde firewall regels die je bij de invoer hebt gebruikt.

Via Bestand -> Export this profile sla je het aangemaakte profiel op voor back-up doeleinden of voor gebruik op een andere computer. Een opslagen profiel importeer je via Bestand -> Import profile.

UFW via de opdrachtprompt

Met het commando ufw beheer je UFW. De instellingen die je gemaakt hebt, kun je alleen maar zien als UFW actief is. Als je ufw status intypt zie je vanzelf of UFW actief of inactief is. Je activeert UFW met het commando ufw enable en je zet UFW uit met de opdracht ufw disable. Als je bij een actieve UFW het commando ufw status intypt, dan zie je de instellingen die geconfigureerd zijn. Als je de configuratie gemaakt hebt op basis van de configuratie voorbeelden voor GUFW, dan ziet de configuratie in UFW er uit zoals hieronder is weergegeven.

6 – Configuratievoorbeeld UFW

Om een gevoel te krijgen hoe UFW vanaf de opdrachtprompt werkt, gaan we de configuratievoorbeelden die we met GUFW gemaakt hebben ook via de prompt instellen. Verwijder eerst eventuele alle regels die in UFW staan. Dit kan via de grafische interface, maar uiteraard ook met het ufw commando. Voordat je met het ufw commando regels kunt verwijderen, moet je weten welk nummer ze hebben. De nummers krijg je zichtbaar door ufw status numbered in te typen. De firewall regels verwijder je nu met het commando ufw delete regelnummer. Het makkelijkste is om bij het laatste regelnummer te beginnen, omdat UFW de regels hernummert als je niet de laatste regel verwijdert.

Standaard staat UFW zo ingesteld dat inkomend verkeer geblokkeerd wordt en uitgaand verkeer niet geblokkeerd wordt. Het standaard gedrag van UFW stel je in met ufw default. Als derde woord gebruik je dan ‘allow’ of ‘deny’ en als vierde woord ‘incoming’ of ‘outgoing’. Om standaard al het inkomende verkeer te blokkeren type je dan (op basis van het voorgaande):

ufw default deny incoming

Het volgende commando accepteert het inkomende verkeer van je interne netwerk:

ufw allow from 192.168.1.0/24

Om verkeer van buiten je netwerk voor je webserver toe te staan geef je de volgende commando’s:

ufw allow http
ufw allow https

In bovenstaand voorbeeld is voor de webserver gebruikt gemaakt van door UFW gedefinieerde services. In plaats van bovenstaande opdrachten is het mogelijk de onderstaande opdrachten (die gebruik maken van poortnummers) te geven die exact hetzelfde effect hebben.

ufw allow 80/tcp
ufw allow 443/tcp

Als je nu ufw status intypt, moet je dezelfde uitvoer krijgen als je kreeg van voorbeeldconfiguratie van UFW via de grafische interface GUFW.

Een andere methode om regels te wissen (zonder te weten welk regelnummer ze hebben) is door de actie en de naar velden mee te geven in het ufw delete commando. Op basis van de configuratie uit afbeelding 6 verwijder je de toegang tot de webserver met:

ufw delete allow 80/tcp
ufw delete allow 443/tcp

Tot slot

In deze workshop heb je kennis gemaakt met de basiswerking van UFW en GUFW. In de community help documentatie van Ubuntu staan veel meer voorbeelden voor de configuratie van UFW via de opdrachtprompt. Volg deze link naar de helpsite.