Firewalls sind essenziell für die Netzwerksicherheit und schützen
Systeme vor unerwünschtem Netzwerkverkehr. Unter Linux gibt es zwei
Haupttools zur Verwaltung von Firewalls: iptables
und
nftables
.
iptables
ist ein weit verbreitetes Tool zur Verwaltung
der Netfilter-Firewall, die in den Linux-Kernel integriert ist.
iptables
arbeitet mit Tabellen, die wiederum aus Ketten
bestehen. Jede Kette enthält eine Liste von Regeln, die nacheinander
abgearbeitet werden. Die wichtigsten Tabellen sind:
filter
: Standardtabelle für die Paketfilterung.nat
: Tabelle für Network Address Translation
(NAT).mangle
: Tabelle zur Modifikation von Paketen.INPUT
: Eingehende Pakete.OUTPUT
: Ausgehende Pakete.FORWARD
: Pakete, die weitergeleitet werden.Befehl:
sudo iptables -L
Ausgabe:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Befehl:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 22 (SSH).
Befehl:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 80 (HTTP).
Befehl:
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 443 (HTTPS).
Befehl:
sudo iptables -P INPUT DROP
Erklärung: Diese Regel setzt die Standardpolitik für
die INPUT
-Kette auf DROP
, wodurch alle nicht
explizit erlaubten eingehenden Verbindungen blockiert werden.
nftables
ist der moderne Nachfolger von
iptables
und bietet eine effizientere und flexiblere
Möglichkeit zur Firewall-Verwaltung.
nftables
verwendet ebenfalls Tabellen und Ketten, jedoch
mit einer einheitlicheren und einfacheren Syntax.
Befehl:
sudo nft list ruleset
Ausgabe:
table inet filter {
chain input {
type filter hook input priority 0; policy accept;
}
chain forward {
type filter hook forward priority 0; policy accept;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Befehl:
sudo nft add table inet my_table
sudo nft add chain inet my_table input { type filter hook input priority 0 \; }
Erklärung: Diese Befehle erstellen eine neue Tabelle
my_table
und eine neue Kette input
innerhalb
dieser Tabelle.
Befehl:
sudo nft add rule inet my_table input tcp dport 22 accept
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 22 (SSH).
Befehl:
sudo nft add rule inet my_table input tcp dport 80 accept
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 80 (HTTP).
Befehl:
sudo nft add rule inet my_table input tcp dport 443 accept
Erklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 443 (HTTPS).
Befehl:
sudo nft add rule inet my_table input drop
Erklärung: Diese Regel blockiert alle anderen eingehenden Verbindungen, die nicht explizit erlaubt wurden.
Sowohl iptables
als auch nftables
bieten
mächtige Werkzeuge zur Verwaltung der Netzwerksicherheit unter Linux.
Während iptables
weit verbreitet und gut dokumentiert ist,
bietet nftables
eine modernere und effizientere
Alternative. Im nächsten Kapitel werden Sicherheitskonzepte wie AppArmor
und SELinux behandelt.