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 -LAusgabe:
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 ACCEPTErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 22 (SSH).
Befehl:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 80 (HTTP).
Befehl:
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 443 (HTTPS).
Befehl:
sudo iptables -P INPUT DROPErklä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 rulesetAusgabe:
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 acceptErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 22 (SSH).
Befehl:
sudo nft add rule inet my_table input tcp dport 80 acceptErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 80 (HTTP).
Befehl:
sudo nft add rule inet my_table input tcp dport 443 acceptErklärung: Diese Regel erlaubt eingehenden TCP-Verkehr auf Port 443 (HTTPS).
Befehl:
sudo nft add rule inet my_table input dropErklä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.