Hoe de Iptables Firewall Werkt

Introductie

Het opzetten van een firewall is een essentiële stap om elk modern besturingssysteem te beveiligen. De meeste Linux-distributies worden geleverd met een aantal verschillende firewalltools die je kunt gebruiken om een firewall te configureren. In deze handleiding zullen we de iptables firewall behandelen.

Iptables is een standaard firewall die standaard wordt meegeleverd in de meeste Linux-distributies. Het is een opdrachtregelinterface naar de kernel-level netfilter hooks die de Linux-netwerkstack kunnen manipuleren. Het werkt door elk pakket dat de netwerkinterface passeert te vergelijken met een reeks regels om te beslissen wat ermee moet gebeuren.

In deze handleiding zul je leren hoe Iptables werkt. Voor een meer diepgaande benadering kun je Een diepe duik in de Iptables en Netfilter-architectuur lezen.

Hoe Iptables Werkt

Laten we eerst enkele terminologieën bekijken en bespreken hoe iptables werkt.

De iptables firewall werkt door netwerkverkeer te vergelijken met een reeks regels. De regels definiëren de kenmerken die een netwerkpakket moet hebben om overeen te komen, en de actie die moet worden ondernomen voor overeenkomende pakketten.

Er zijn veel opties om te bepalen welke pakketten overeenkomen met een specifieke regel. U kunt het pakketprotocoltype matchen, het bron- of doeladres of poort, de interface die wordt gebruikt, de relatie met eerdere pakketten, enzovoort.

Wanneer het gedefinieerde patroon overeenkomt, wordt de actie die plaatsvindt een doel genoemd. Een doel kan een definitieve beleidsbeslissing zijn voor het pakket, zoals ACCEPT of DROP. Het kan ook het pakket naar een andere keten verplaatsen voor verwerking, of de ontmoeting loggen. Er zijn veel opties.

Deze regels zijn georganiseerd in groepen die ketens worden genoemd. Een keten is een reeks regels waartegen een pakket sequentieel wordt gecontroleerd. Wanneer het pakket overeenkomt met een van de regels, voert het de bijbehorende actie uit en slaat de overige regels in de keten over.

A user can create chains as needed. There are three chains defined by default. They are:

  • INPUT: Deze keten behandelt alle pakketten die zijn gericht aan uw server.
  • OUTPUT: Deze keten bevat regels voor verkeer dat door uw server is gemaakt.
  • FORWARD: Deze keten wordt gebruikt om verkeer af te handelen dat is bestemd voor andere servers die niet zijn gemaakt op uw server. Deze keten is een manier om uw server te configureren om verzoeken naar andere machines te routeren.

Elke keten kan nul of meer regels bevatten, en heeft een standaard beleid. Het beleid bepaalt wat er gebeurt wanneer een pakket door alle regels in de keten valt en geen enkele regel overeenkomt. U kunt het pakket ofwel laten vallen of accepteren als er geen regels overeenkomen.

Iptables kan ook verbindingen bijhouden. Dit betekent dat u regels kunt maken die bepalen wat er met een pakket gebeurt op basis van zijn relatie tot eerdere pakketten. De mogelijkheid is “staatstracking”, “verbindingstracking” of het configureren van de “statemachine”.

IPv4 versus IPv6

De netfilter-firewall die is inbegrepen in de Linux-kernel houdt IPv4- en IPv6-verkeer volledig gescheiden. De Iptables-tools die worden gebruikt om de tabellen te manipuleren die de firewall-regelsets bevatten, zijn ook verschillend. Als u IPv6 ingeschakeld heeft op uw server, moet u beide tabellen configureren om het verkeer op uw server aan te pakken.

Opmerking: Nftables, een opvolger van Iptables, integreert het beheer van IPv4 en IPv6 nauwer. Het iptables-translate-commando kan worden gebruikt om Iptables-regels te migreren naar Nftables.

De reguliere `iptables` opdracht wordt gebruikt om de tabel te manipuleren die de regels bevat die het IPv4-verkeer regeren. Voor IPv6-verkeer wordt een bijbehorende opdracht genaamd `ip6tables` gebruikt. Eventuele regels die u instelt met `iptables` zullen alleen van invloed zijn op pakketten die IPv4-adressering gebruiken, maar de syntaxis tussen deze opdrachten is hetzelfde. De `iptables` opdracht zal de regels maken die van toepassing zijn op IPv4-verkeer, en de `ip6tables` opdracht zal de regels maken die van toepassing zijn op IPv6-verkeer. Vergeet niet om de IPv6-adressen van uw server te gebruiken om de `ip6tables` regels te maken.

Dingen om in gedachten te houden

Nu je weet hoe iptables pakketten doorstuurt die via zijn interface binnenkomen – stuur het pakket naar de juiste chain, controleer het tegen elke regel totdat er een overeenkomt, geef het standaardbeleid van de chain uit als er geen overeenkomst is gevonden – kun je beginnen met het maken van regels.

Ten eerste moet je ervoor zorgen dat je regels hebt om huidige verbindingen actief te houden als je een standaard drop-beleid implementeert. Dit is vooral belangrijk als je verbonden bent met je server via SSH. Als je per ongeluk een regel of beleid implementeert dat je huidige verbinding verbreekt, moet je mogelijk inloggen op je server met behulp van een op browser gebaseerde herstelconsole.

Nog iets om in gedachten te houden is dat de volgorde van de regels in elke chain belangrijk is. Een pakket mag geen algemenere regel tegenkomen waar het mee overeenkomt als het bedoeld is om overeen te komen met een meer specifieke regel.

Vanwege dit moeten regels dichtbij de top van een keten een hoger niveau van specificiteit hebben dan regels onderaan. Je moet eerst specifieke gevallen matchen en vervolgens meer algemene regels bieden om bredere patronen te matchen. Als een pakket door de hele keten valt (als het geen regels matcht), volgt het de meest algemene regel, oftewel het standaardbeleid.

Om deze reden dicteert het standaardbeleid van een keten sterk het type regels dat in de keten zal worden opgenomen. Een keten met het standaardbeleid van ACCEPT bevat regels die pakketten expliciet laten vallen. Een keten met het standaardbeleid van DROP bevat uitzonderingen voor pakketten die specifiek moeten worden geaccepteerd.

Conclusie

Op dit punt ben je klaar om je eigen firewall te implementeren. Hiervoor moet je How To Set Up a Firewall Using Nftables on Ubuntu 22.04 lezen. Of, voor een meer hoog-niveau benadering, How To Set Up a Firewall with UFW on Ubuntu 22.04. Als je jouw firewall liever als een beheerde servicedienst wilt uitvoeren, kun je ook DigitalOcean’s Cloud Firewalls proberen.

Source:
https://www.digitalocean.com/community/tutorials/how-the-iptables-firewall-works