Overzicht
iptables implementeert het beveiligingsbeleid van het systeem door regels te definiëren voor inkomende en uitgaande netwerkpakketten. Elke regel specificeert een actie (target) zoals ACCEPT (toestaan), DROP (negeren) of REJECT (weigeren) voor pakketten die aan specifieke voorwaarden voldoen. De INPUT, OUTPUT en FORWARD chains worden voornamelijk gebruikt, en de PREROUTING en POSTROUTING chains worden ook gebruikt voor NAT-functionaliteit.
Belangrijkste functies
- Pakketfiltering (firewall)
- Network Address Translation (NAT)
- Poort doorsturen en omleiden
- Verkeerscontrole gebaseerd op specifieke IP-adressen, poorten en protocollen
Belangrijkste opties
Het iptables commando wordt gebruikt met verschillende opties om specifieke regels toe te voegen, te verwijderen, te wijzigen of om de huidige regels op te vragen.
Regelbeheer
Matching voorwaarden
Targets (Acties)
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`iptables` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Voorbeelden van het instellen van algemene firewallregels met iptables. Het is raadzaam om altijd een back-up te maken van de huidige regels voordat u nieuwe regels toevoegt.
Alle huidige regels opvragen
sudo iptables -L -v -n
Vraagt de regels op met gedetailleerde informatie en IP-adressen in numerieke vorm.
SSH (poort 22) toestaan
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Sta inkomende SSH-verbindingen toe.
Specifiek IP-adres blokkeren
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
Blokkeert al het inkomende verkeer van een specifiek IP-adres (bijv. 192.168.1.100).
Al het uitgaande verkeer toestaan
sudo iptables -P OUTPUT ACCEPT
Stelt het standaardbeleid van de OUTPUT chain in om al het uitgaande verkeer toe te staan.
Webserver poort doorsturen (80 -> 8080)
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Leidt verzoeken op poort 80 om naar poort 8080 op de lokale machine. (Gebruikt de NAT table)
Intern netwerk masquerading (NAT)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Wijzigt het bron-IP-adres voor verkeer van het interne netwerk dat de externe interface (bijv. eth0) verlaat. (Gebruikt de NAT table)
Installatie
iptables is standaard geïnstalleerd op de meeste Linux-distributies. Als het niet is geïnstalleerd, kunt u het installeren met de volgende commando's.
Debian/Ubuntu
sudo apt update
sudo apt install iptables
CentOS/RHEL/Fedora
sudo dnf install iptables
Tips & Aandachtspunten
iptables-regels kunnen verloren gaan bij het opnieuw opstarten van het systeem, dus het is belangrijk om te weten hoe u regels permanent kunt opslaan. Wees ook voorzichtig met de volgorde van de regels en het standaardbeleid.
Regels permanent opslaan
iptables-regels zijn standaard vluchtig en moeten worden opgeslagen om behouden te blijven na het opnieuw opstarten. De aanbevolen methode verschilt per distributie.
- **Debian/Ubuntu**: Installeer `sudo apt install iptables-persistent` en sla de regels op met het commando `sudo netfilter-persistent save`. De regels worden opgeslagen in `/etc/iptables/rules.v4` en `/etc/iptables/rules.v6`.
- **CentOS/RHEL/Fedora**: Installeer `sudo dnf install iptables-services`, schakel de service in met `sudo systemctl enable iptables && sudo systemctl start iptables`, en sla de regels op met `sudo iptables-save > /etc/sysconfig/iptables`.
- **Algemene methode**: Sla de regels op in een bestand met `sudo iptables-save > /pad/naar/rules.v4` en maak vervolgens een script dat dit bestand laadt met `sudo iptables-restore < /pad/naar/rules.v4` bij het opstarten.
Belang van regelvolgorde
iptables-regels worden in een chain van boven naar beneden toegepast. Wanneer een pakket overeenkomt met een specifieke regel, wordt de actie van die regel uitgevoerd en worden verdere regels niet gecontroleerd. Daarom is het belangrijk om specifiekere regels (bijv. een specifiek IP blokkeren) boven algemenere regels (bijv. alle HTTP toestaan) te plaatsen.
Voorzichtigheid bij het instellen van standaardbeleid
Wees zeer voorzichtig bij het instellen van het standaardbeleid van een chain (bijv. `iptables -P INPUT DROP`). Voordat u het standaardbeleid instelt op DROP, moet u eerst regels toevoegen om essentiële services zoals SSH-verbindingen toe te staan. Anders kunnen alle netwerkverbindingen met het systeem worden geblokkeerd, waardoor toegang onmogelijk wordt.
Overgang naar nftables
Veel moderne Linux-distributies gebruiken `nftables` als het standaard firewall-framework in plaats van iptables. `nftables` integreert de functionaliteit van iptables en biedt een verbeterde syntaxis. Het `iptables` commando kan intern werken via een compatibiliteitslaag die `nftables` gebruikt, dus het is raadzaam om de standaard firewall-tool van uw systeem te controleren.