iptables – The Linux Firewall
Zoals Windows een ingebouwde firewall heeft, de Windows Firewall welke van “good-for-nothing” in Windows XP naar “pretty-good” in Windows 10 gegaan is. Zo heeft Linux ook een eigen ingebouwde firewall, namelijk “iptables”. iptables, soms ook geschreven als “IP Tables” is een front-end voor de “netfilter hooks” op kernelniveau welke de Linux-netwerkstack kunnen manipuleren. iptables werkt door elk pakket dat de netwerkinterface doorkruist te vergelijken met een reeks regels om te beslissen wat te doen, vergelijkbaar met een policy-based ofwel rule-based firewall. In deze post kijken we beter naar “iptables” en hoe we deze firewall configureren.
Ok, en nu in wat meer detail: iptables is onderdeel van de Linux kernel firewall. Deze firewall bestaat uit verschillende “Netfilter” modules. Elke module heeft een eigen tabel. Elke tabel heeft zijn eigen regels en koppelingen (chains). iptables faciliteert alleen IPv4. Voor IPv6 gebruik je de ip6tables. ARP gebruikt de “arptables” en ethernet frames de “ebtables”. Deze tables tezamen noemen we ook wel de “XTables”. De “echte” Linux firewall bevindt zich in de kernel. Bovenstaande applicaties maken het mogelijk om op CLI level filtertabellen in de kernel aan te passen. Omdat “iptables” vaak de tool is die meestal gebruikt wordt om de firewall te configureren wordt “iptables” de Linux firewall genoemd. In essentie is het dus alleen een onderdeel van de firewall.
Deze Linux firewall is standaard aanwezig in de meeste Linux distributies. Sinds Linux kernel 3.13 (2014) wordt “nftables” gebruikt om bepaalde netfilter modules te vervangen. nftables gebruikt de onderdelen van de Netfilter-infrastructuur, zoals de bestaande “hooks” in de netwerkstack, het verbindingsvolgsysteem (connection tracking), de gebruikerswachtrij en het logboek-subsysteem. nftables zorgt voor minder code en een hogere troughput. nftables wordt geconfigureerd via het nft hulpprogramma terwijl de netfilter modules worden geconfigureerd via de eerder besproken iptables, ip6tables, arptables en ebtables programma’s.
Om iptables te kunnen gebruiken zijn “elevated privileges” benodigd (root). Op de meeste Linux-systemen wordt iptables geïnstalleerd als /usr/sbin/iptables en gedocumenteerd in de betreffende man-pagina’s, die kunnen worden geopend met
man iptables |
Telkens wanneer netwerkverkeer de computer verlaat of de computer inkomt wordt dit verkeer gerouteerd tussen diverse tabellen. Deze tabellen bevatten geen of meerdere regels waarop de beslissingen gemaakt worden. Hoe de filtering en de routering exact gaat is afhankelijk van de configuratie. Een netwerkpakket kan simpelweg worden geaccepteerd, geweigerd, genegeerd en kan worden doorgestuurd naar een andere tabel met regels. Het configureren van iptables en feitelijk van elke firewall vereist veel kennis van netwerken en de opzet van betreffende firewall. Ook moet goed nagedacht worden over het doel van de firewall. De gekozen oplossingen moeten altijd zo flexibel en schaalbaar mogelijk gemaakt worden. Zorg voor goede documentatie zodat vastgelegd is hoe een firewall geconfigureerd is. Dit is handig voor jezelf en voor al je collega netwerkbeheerders.
iptables Routering en Termen
Dit hoofdstuk is speciaal bedoeld om iets bekender te worden met iptables. Hoe werkt de firewall en welke begrippen zijn essentieel voor het werken met iptables.
Laten we eerst de flow bekijken van een netwerkpakketje:
Wat we hier zien is dat binnenkomende pakketten eerst gerouteerd worden volgens de “PREROUTING” tabel. Vanuit hier kunnen ze doorgestuurd worden naar de “FORWARD” of de “INPUT” tabel. De forward tabel wordt alleen gebruikt op computers waar “routing” op geactiveerd is. Deze computers kunnen dus pakketten verder het netwerk op routeren. Dan hebben we ook nog een “OUTPUT” tabel. De OUTPUT tabel wordt gebruikt om pakketten te modificeren die afkomstig zijn van de lokale computer. De “POSTROUTING” tabel wordt vervolgens gebruikt om pakketten naar de netwerkinterface af te leveren voor verdere routering op het netwerk.
Bovenstaande tabellen zijn eigenlijk deel-tabellen. Deze noemen we CHAINS. De chains die dus van toepassing zijn op inkomend verkeer zijn de INPUT en FORWARD tabellen. Voor uitgaand verkeer wordt de OUTPUT en POSTROUTING chain gebruikt. Er zijn maar 3 soorten tabellen, namelijk:
- Filter Table
Deze table zorgt voor het filteren van pakketjes op basis van ACL regels. Deze tabel heeft 3 ingebouwde CHAINS, namelijk:INPUT – Filtert pakketten welke bestemd zijn voor de host
OUTPUT – Filtert pakketten welke afkomstig zijn van de host
FORWARD – filter pakketten verder op het netwerk
- NAT Table
De NAT tabel is verantwoordelijk voor het regelen van NAT regels. Er wordt zowel PAT (Port Address Translation) ondersteund waarbij het publieke IP adres gekoppeld wordt aan elke interne host. Voor het forewarden van pakketjes worden poortnummers gebruikt. We noemen deze vorm van NAT ook wel “Masquerading”. Ook statische NAT is mogelijk waarbij aan elke interne host een publiek IP adres wordt toegekend zodat deze bereikbaar is v.a. het internet. Deze tabel heeft ook 3 CHAINS, namelijk:PREROUTING – NAT vindt plaats voor routering. Vergemakkelijkt de transformatie van het destination IP-adres om compatibel te zijn met de routeringstabel van de firewall. Gebruikt met NAT van het bestemmings-IP-adres, ook wel bestemmings-NAT of DNAT genoemd.
OUTPUT – NAT voor pakketjes welke door de host gegenereerd zijn.
POSTROUTING – NAT vindt plaats na routering. Dit impliceert dat het IP-adres van de bestemming van het pakket niet gewijzigd hoeft te worden zoals bij pre-routing. Gebruikt met één-op-één NAT of many-to-one NAT (ook wel bekend als bron-NAT of SNAT).
- Mangle Table
Deze tabel verzorgt de wijzigingen in de TCP headers. De Mangle tabel wordt alleen in speciale gevallen gebruikt, bijvoorbeeld bij het gebruik van speciale services zoals QoS waarbij pakketjes een hogere prioriteit kan worden gegeven. Deze tabel bestaat uit 5 ingebouwde CHAINS:PREROUTING – Aanpassen van de TCP packet quality alvorens routering plaatsvindt.
OUTPUT – Idem als bij PREROUTERING
FORWARD – Aanpassen van TCP headers bij het doorsturen / routeren.
INPUT – Aanpassen van TCP headers bij het ontvangen van pakketten.
POSTROUTING – Aanpassen van TCP headers nadat routering heeft plaatsgevonden.
- RAW Table
De RAW tabel is speciaal voor het configureren van uitzonderingen. De RAW table heeft 2 ingebouwde CHAINS, namelijk:PREROUTING
OUTPUT
Pakketjes die door iptables gefilterd worden hanteren een zogenaamde “first-match” principe. Dit betekend dat een pakketje vergeleken wordt met alle regels (rules) in de tabel van boven naar beneden. De eerste match die gevonden wordt, wordt ook gebruikt. Dit betekend dat alle overige regels welke lager in de tabel staan niet meer aan bod komen. Het is dus essentieel om de regels goed te sorteren. Hanteer altijd de vuistregel “hoe minder regels hoe beter”. Want als de tabellen erg groot worden kan dit performance issues opleveren.
Op een regel kunnen we dan 4 verschillende filter policies plaatsen, te weten:
- ACCEPT – Het pakketje wordt geaccepteerd.
- DROP – Het pakketje wordt zonder tegenbericht verwijderd.
- REJECT – Het pakketje wordt verwijderd maar stuurt een retourmelding aan de verzender dat het pakket is verwijderd. De retourmelding is gebaseerd op een aantal aanwezige “qualifiers” zoals “echo-reply” – “tcp-reset” – “icmp-port-unreachable” etc.
- LOG – Het pakket wordt doorgestuurd naar de “systemlog deamon” om er een log-notitie van te maken. Vervolgens wordt het pakket doorgestuurd naar onderliggende regel in de tabel. Het is onmogelijk om een pakket in 1 regel te loggen en te verwijderen. Als dit de wens is dan maak je dus 2 dezelfde regels aan waarbij de LOG policy in de bovenste regel aanwezig is en de DROP of REJECT policy in de onderste regel.
Bij het gebruik van NAT regels heb je nog eens de keuze uit 3 mogelijke policies:
- DNAT – Wordt gebruikt bij “destination NAT” ofwel DNAT. De tabel verteld wat het destination IP adres zou moeten zijn.
- SNAT – Wordt gebruikt bij “source NAT” ofwel SNAT. De tabel verteld wat het source IP + poortnummer moet zijn.
- Masquerade – Wordt ook gebruikt bij SNAT waarbij het source IP adres hetzelfde is als het publieke IP adres op de interface van de firewall.
Bovenstaande is een hele berg informatie maar vormt de basis om goed de iptables te kunnen configureren en beheren. Laten we nu eens gaan kijken hoe we werkelijk de iptables kunnen bewerken.
Werken met iptables
Alvorens we echt gaan kijken wat we met iptables kunnen doen is het zaak om je firewall regels persistent te maken. Dit is niet nodig in alle distributies maar wel in sommige zoals Kali Linux.
Normaliter kun je na het uitvoeren van een aanpassing je tabel opslaan met het commando:
iptables-save > /etc/iptables/rules.v4 |
Bovenstaande commando slaat de IPv4 IP table op naar het bestand “/etc/iptables/rules.v4”. Voor het opslaan van de IPv6 table gebruik je dan:
ip6tables-save > /etc/iptables/rules.v6 |
Deze commando’s werken prima in Debian, Ubuntu, Mint en Linux Kali. Voor CentOS, Fedora en RedHat gebruik je een iets andere variant met aangepast pad, namelijk:
iptables-save > /etc/sysconfig/iptables EN ip6tables-save > /etc/sysconfig/ip6tables |
Voor Debian, Ubuntu, Mint en Linux Kali is er echter nog een ander commando waarbij alle tables automatisch opgeslagen worden naar de juiste bestanden, namelijk:
iptables-persistent |
Om niet-opgeslagen aanpassingen ongedaan te maken kun je simpelweg rebooten of de iptable herstellen met het “restore” commando, bijvoorbeeld:
iptables-restore < /etc/iptables/rules.v4 |
Ok, nu we dat ook netjes onder controle hebben eerst maar eens een aantal switches (flags) voor het beheren van CHAINS:
- -A / Append
Voeg 1 of meerdere regels toe aan een CHAIN. Deze regels worden achteraan in de CHAIN toegevoegd. - -I / Insert
Voeg een regel toe aan de chain. Met de -I optie kun je opgeven achter welke regel de nieuwe regel moet worden toegevoegd. De regel komt dus niet achteraan in de table. - -D / Delete
Verwijder 1 of meerdere regels uit een opgegeven CHAIN. - -R / Replace
De “Replace” optie wordt gebruikt om een nieuwe regel aan te maken en met deze een bestaande regel te overschrijven. Hiermee wordt de regel dus vervangen. - -L / List
Deze optie toont alle CHAINS en bijbehorende regels of, indien opgegeven alle regels uit een specifieke CHAIN. - -F / Flush
Verwijder alle regels uit een CHAIN. - -N / New
Met deze optie kun je een nieuwe CHAIN, met eigen (unieke) naam aanmaken. - -P / Policy
Met de -P optie definieer je het type CHAIN zoals b.v. een default DROP of een default ACCEPT CHAIN. - -X
Verwijder een CHAIN. Je kunt alleen CHAINS verwijderen die je zelf hebt aangemaakt. Je kunt dus geen default CHAINS verwijderen.
Er zijn ook een aantal veelgebruikte schakelopties voor het werken met rules. Deze zijn in tegenstelling tot de CHAIN schakelopties allemaal met kleine letters i.p.v. met hoofdletters:
- -s of -src of –source/ Source
Deze schakeloptie wordt gebruikt om de source / bron aan te geven. De bron kan zowel een IP adres zijn als een hostnaam. Er hoeft geen subnet meegegeven te worden maar dat is uiteraard wel mogelijk. - -d of -dst of –destination / Destination
Deze schakeloptie wordt gebruikt om de destination / bestemming aan te geven. De bestemming kan zowel een IP adres zijn als een hostnaam. Er hoeft geen subnet meegegeven te worden maar dat is uiteraard wel mogelijk. - -p / Protocol
Hiermee geven we het protocol aan waar de regel op van toepassing is. Hier kun je kiezen uit tcp, udp of beide (all). De default waarde is “all”. Je kunt hier ook de numerieke waardes gebruiken. Het cijfer 0 staat voor “all”. - -i of –in-interface/ Input Interface
Naam van de ontvangende interface. Alleen te gebruiken bij de INPUT, FOREWARD en PREROUTING CHAINS. - -o of –out-interface/ Output Interface
Naam van de verzendende interface. Alleen te gebruiken bij de OUTPUT, FOREWARD en POSTROUTING CHAINS. - -j of –jump-target / Target
Hiermee geef je het doel op van de regel. Wil je het verkeer toestaan of weigeren? DROP, ACCEPT, REJECT of LOG. - –sport / Source Port
Hiermee geef je de binnenkomende poort aan. Naar welke poort moet het pakket gerouteerd worden. - –dport / Destination Port
Hiermee geef je de uitgaande poort aan. Naar welke poort moet het pakket toe gerouteerd worden.
Top! De basis zit er nu lekker in. Dan gaan we hem nu in de Praktijk brengen. Laten we eerst eens kijken welke CHAINS en rules we hebben:
iptables -L |
Bovenstaande commando geeft de volgende output.
Nice. Er zijn geen regels en er wordt dus helemaal niets geblokkeerd.
Zoals je weet bestaan de CHAINS uit verschillende tabellen. Om b.v. de “filter” tabel te bekijken gebruik je:
iptables -t filter --list |
Nu zien we de status van de “filter” tabel in alle CHAINS.
Met de “-t” flag specificeren we de tabel (filter). Nu is de filter tabel de default tabel dus zonder de -t flag zou deze tabel standaard worden weergegeven. Met de “–list” flag vertellen we dat het systeem de output op het scherm moet tonen. In plaats van “–list” kunnen we ook “-L” gebruiken.
Maar om de NAT tabel te bekijken gebruiken we dus:
iptables -t nat -L |
Zoals je ziet is de inkomende policy default een “ACCEPT” policy. Laten we deze eens aanpassen naar een default DENY policy. Dit wil zeggen als het verkeer in de lijst niet voldoet aan een regel die het verkeer toelaat wordt al het verkeer geblokkeerd. Deze chain veranderen doen we met:
iptables -P INPUT DROP |
Laten we eens een regel toevoegen. In deze regel gaan we een specifiek IP adres blokkeren. Dit doen we op het binnenkomende (INPUT) verkeer:
iptables -A INPUT -s 84.33.122.1 -j DROP |
We kunnen dit commando uitbreiden met de “-i” flag om alleen verkeer van dat IP adres te blokkeren v.a. interface 0 en de “-p” flag om alleen het TCP verkeer te blokkeren:
iptables -A INPUT -i eth0 -p tcp -s 84.33.122.1 -j DROP |
In deze regel specificeren we dat uitgaand SMTP (poort 25) verkeer geblokkeerd is. Deze regel moeten we dus toevoegen aan de “OUTPUT” CHAIN:
iptables -A OUTPUT -p tcp --sport 25 -m state --state NEW -j DROP |
In bovenstaande commando blokkeren we TCP poort 25 (SMTP) voor alle nieuwe verbindingen. De controle voor nieuwe verbindingen gebeurt met het “-m state -state NEW” gedeelte.
De -m flag is de “match” flag. In dit geval gaan we “matchen” op basis van de verbindingsstatus. de –state flag stelt de voorwaarde aan de verbindingsstatus. Er zijn een aantal mogelijke voorwaardes:
- INVALID – Van toepassing op een pakket welke niet gevalideerd kon worden. Bijvoorbeeld bij ICMP errors of als je machine out-of-memory loopt.
- ESTABLISHED – Van toepassing op een pakket welke over een verbinding loopt welke al eerdere pakketten in beide richtingen gestuurd heeft.
- NEW – Van toepassing op een pakket welke een nieuwe verbinding opzet. Er zijn dus nog geen pakketten in beide richtingen gestuurd.
- RELATED – Het pakket start een nieuwe verbinding maar wel geassocieerd is met een bestaande verbinding.
- UNTRACKED – Het pakket wordt niet getraceerd. Dit kan voorkomen als je b.v. NOTRACK gebruikt in de “RAW” tabel.
Als we SMTP willen blokkeren maar wel toe willen staan naar een specifiek netwerk maken we 2 regels aan. Hierbij zetten we de ACCEPT regel boven de DROP regel.
iptables -A OUTPUT -p tcp -s 192.168.200.0/24 --sport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j DROP |
Als we inkomend verkeer toe wilt staan op meerdere poorten kunnen we daar verschillende regels voor aanmaken. Maar we kunnen ook meerdere poorten in een regel specificeren. Dit noemen we de “multiport extension” en ziet er als volgt uit:
iptables -A INPUT -p tcp -m multiport --dports 22,25,80,443 -j ACCEPT |
Zoals je ziet maken we gebruik van de -m (match) flag om de match te maken op meerdere poorten (multiport).
Het toestaan van een PING (van buiten naar binnen) doen we als volgt:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT |
We kunnen zelfs load-balancing toepassen. Stel je voor dat we binnenkomend SMTP pakketten evenredig willen distribueren naar verschillende servers. We kunnen dan de “nth” extensie gebruiken om dit te doen. We doen dit voordat de pakketten gerouteerd worden, dus in de PREROUTING CHAIN.
iptables -A PREROUTING -p tcp --dport 25 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.1:25 iptables -A PREROUTING -p tcp --dport 25 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.2:25 iptables -A PREROUTING -p tcp --dport 25 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.3:25 |
Als je een server hebt waarin meerdere netwerkkaarten zitten zoals een “internal” en een “external” verbonden kaart en tussen deze netwerken verkeer wilt routeren kun je deze netwerken goedkeuren in de FORWARD CHAIN. Om bijvoorbeeld verkeer van de internal (eth0) naar external (eth1) toe te staan:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT |
Om verkeer toegang te geven tot de loopback interface (vaak benodigd op een server) gebruik je:
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT |
We kunnen uiteraard ook port forwarding toepassen. Laten we het inkomende verkeer v.a. poort 25 eens doorsturen naar poort 5025:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.100 --dport 25 -j DNAT --to 192.168.1.100:5025 |
In dit voorbeeld gebruiken we de “-t nat” toevoeging om aan te geven dat deze regel in de NAT tabel geplaatst wordt. Deze regel wordt geplaatst op de PREROUTING CHAIN omdat de poortomzetting voor pakket routering toegepast moet worden.
Stel je voor dat we alle pakketten willen loggen welke we DROPPEN. Om dit te doen moeten we eerst een nieuwe CHAIN maken:
iptables -N LOGGING |
Nu maken we een regel aan het einde van de INPUT CHAIN. Deze zorgt ervoor dat we het verkeer naar de LOGGING CHAIN sturen:
iptables -A INPUT -j LOGGING |
Nu kunnen we alle pakketten loggen die naar deze LOGGING CHAIN gestuurd worden:
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix “DROPPED pakketen volgens onze iptables: ” --log-level 7 |
Na deze LOG regel in de LOGGING CHAIN droppen we de pakketten:
iptables -A LOGGING -j DROP |
We hadden de LOG regel ook in de INPUT chain kunnen maken. Op deze manier is het echter duidelijker. Zoals je ziet schrijven we slechts 2x een log in de logfile weg (per minuut) en geven we deze pakketten een omschrijving mee (–log-prefix). We hanteren voor deze pakketten het laagste log niveau (debug). Het default log niveau is 4 (warning). Dit zijn alle LOG niveau’s:
- 0 – Emergency
- 1 – Alert
- 2 – Critical
- 3 – Error
- 4 – Warning
- 5 – Notice
- 6 – Info
- 7 – Debug
Om een DoS aanval op de server te voorkomen kunnen we de volgende regel toevoegen aan de INPUT CHAIN:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 15/minute --limit-burst 100 -j ACCEPT |
In bovenstaande commando zeggen we date r slechts 15 verbindingen per minuut gemaakt mogen worden op poort 80. De toevoeging van de “–limit-burst” flag zorgt ervoor dat het maximum van 15 verbindingen per minuut pas afgedwongen wordt als het totaal aantal verbindingen de 100 gepasseerd is.
Zoals je ziet kun je met iptables tot in detail een firewall instellen en configureren. Hoe je deze het beste in moet stellen is geheel afhankelijk van het netwerk. Het is belangrijk om vooraf goed na te denken over de opzet van het netwerk en hoe de firewall moet fungeren. Als er goed nagedacht is en het e.e.a. is uitgetekend dan kun je vrij gemakkelijk de configuratie maken. Maak je CHAINS deny-by-default en laat je alleen ge-whitelist verkeer toe, of juist andersom? Ga je zaken loggen? Wat zijn de gebruikte protocollen etc. Zorg ervoor dat je zo min mogelijk regels maakt en de regels zo optimaal mogelijk indeelt.
iptables Grafische Interface
iptables heeft geen echte RUI variant. In het verleden was “Firestarter” en prima GUI voor iptables maar deze is uit de repositories verwijderd. Wie nu met een GUI wilt werken kan “gufw” gebruiken. Dit is de grafische shell voor de “ufw” firewall welke gebruik maakt van de Linux iptables. ufw staat voor “Uncomplicated FireWall”. ufw maakt het beheren van de iptables een stuk simpeler en inzichtelijker. Let op, ufw gebruikt iptables maar wel zijn eigen tables. Aanwezige IP tables zullen dus niet inzichtelijk zijn via gufw. Om gufw te installeren gebruiken we:
apt-get install gufw |
Na installatie kunnen we gufw terugvinden op het systeem:
Als gufw opstart is deze uitgeschakeld. Deze moet nog ingeschakeld worden (door het kiezen van een ander profiel wordt deze ook automatisch ingeschakeld):
Kies eerst het gewenste profiel (Home, Office of Public). Deze profielen zijn speciaal gemaakt voor remote devices. Kies het profiel n.a.v. je werklocatie, thuis, op het werk of op een andere openbare plek. Zo kun je altijd met de gewenste settings werken. Iemand die de firewall instelt voor een faste locatie zal gewoon het “Home” of “Office” profiel gebruiken. Alle profielen zijn nog leeg en dus maakt het niet zoveel uit welk profiel je gebruikt.
Je kunt uiteraard je standaard instellingen kiezen per profiel. Je geeft op hoe het profiel om moet gaan met inkomend en uitgaand verkeer. Is het Allow-by-default of Deny-by-default.
Om regels aan te maken klik je op het + icoontje onderaan het venster. Er komt nu een popup om nieuwe regels aan te maken. Deze popup geeft je 3 opties om een regel aan te maken.
- Preconfigured – Dit is de makkelijkste methode waarbij veel settings al ingesteld worden na aanleiding van je keuze. Applicaties worden gekozen op basis van naam. Je hoeft dus niet na te denken over de poorten.
- Simple – Deze methode is ook simpel. In plaats van applicaties maak je hier regels op basis van poortnummers.
- Advanced – De geavanceerde tab geeft je veel extra opties. Hier kun je de interface kiezen, portforwarding instellen, logging instellen etc.
Een policy aanmaken gaat dus als volgt. ufw maakt automatisch een IPv6 regel aan:
Logging opties bewerken, het aanmaken van extra profielen en nog een aantal andere opties zijn te bewerken via de gufw preferences.
Zoals je ziet worden de ufw regels toegevoegd aan iptables (in hun eigen CHAINS).
Het verwijderen van de regels kun je doen door de regels te selecteren en het “-“ icoontje te gebruiken.
We kunnen uiteraard ook de hele chain flushen:
iptables -F ufw-user-input |
Tot zover de basis van “iptables”. Hopelijk vond je deze post interessant. Ik vond het in ieder geval leuk om hem te maken. Nog leuker zou ik het vinden als jullie de post delen, commenten en/of liken. Deze positieve feedback houd me enthousiast om dit soort blogs te blijven schrijven! En wil je graag een vervolg op deze post laat het me dan ook even weten, dan maak ik gewoon een “iptables advanced” post.
Tot de volgende!