Linux Sicherheit - Firewall und Netzwerkschutz
Zur Navigation springen
Zur Suche springen
Linux Sicherheit - Firewall und Netzwerkschutz
- Der Netzwerkschutz ist ein zentrales Element jeder Linux-Sicherheitsstrategie. Firewalls kontrollieren, welche Verbindungen erlaubt oder blockiert werden, und bilden die erste Verteidigungslinie gegen Angriffe aus dem Netzwerk. Ein gehärtetes System erlaubt nur den ausdrücklich benötigten Verkehr — alles andere wird verworfen.*
Grundlagen
- Firewalls dienen der Filterung von Netzwerkverkehr auf Basis von IP, Port, Protokoll und Verbindungsstatus.
- Linux bietet mit nftables, firewalld und ufw mehrere etablierte Frameworks.
- Ziel: Prinzip „default deny“ – alles blockieren, nur explizit erlauben.
- Firewalls können sowohl zentral (Server, Gateway) als auch lokal (Personal Firewall) eingesetzt werden.
Überblick über Firewall-Frameworks
- nftables – moderne, performante Standardlösung ab Debian 10/RHEL 8.
- firewalld – Abstraktionsschicht über nftables, zonenbasiert, komfortabel via CLI oder GUI.
- ufw – vereinfachte Firewall für Desktop- oder Einzelplatzsysteme, ideal als Personal Firewall.
- iptables – ältere Technik, wird zunehmend durch nftables ersetzt.
Systemzustand prüfen
- systemctl status nftables
- systemctl status firewalld
- ufw status verbose
- Nur eine Firewall gleichzeitig aktivieren, um Konflikte zu vermeiden.
- Regeln mit `ss -ltnup` oder `netstat -tulpen` prüfen, um offene Ports zu sehen.
nftables - moderne Standardlösung
- apt install nftables -y
- systemctl enable --now nftables
- vi /etc/nftables.conf
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
# Lokale Kommunikation
iif lo accept
# Bereits bestehende Verbindungen erlauben
ct state established,related accept
# SSH- und HTTPS-Zugriff
tcp dport {22,443} accept
# Ping erlauben
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
}
}
- systemctl reload nftables
- nft list ruleset
- Standardpolicy ist „drop“, Ausnahmen werden gezielt erlaubt.
- Regeln regelmäßig dokumentieren und versionieren (z. B. via Git).
firewalld - zonenbasierte Firewall
- apt install firewalld -y
- systemctl enable --now firewalld
- firewall-cmd --state
- firewall-cmd --get-zones
- firewall-cmd --get-active-zones
- Firewalld arbeitet mit vordefinierten Zonen (public, internal, trusted, drop, etc.).
- Jeder Netzwerkadapter wird einer Zone zugeordnet.
Beispielkonfiguration für firewalld
- firewall-cmd --set-default-zone=public
- firewall-cmd --zone=public --add-service=ssh --permanent
- firewall-cmd --zone=public --add-service=https --permanent
- firewall-cmd --reload
- Erlaubt SSH und HTTPS in der Zone „public“.
- Weitere Dienste können mit „--add-service“ oder „--add-port“ definiert werden.
- firewall-cmd --zone=public --add-port=8443/tcp --permanent
- firewall-cmd --reload
firewalld erweiterte Beispiele
- firewall-cmd --new-zone=management --permanent
- firewall-cmd --zone=management --add-source=10.0.10.0/24 --permanent
- firewall-cmd --zone=management --add-service=ssh --permanent
- firewall-cmd --reload
- Damit wird ein dedizierter Verwaltungsbereich geschaffen, der nur für bestimmte Netze erreichbar ist.
- Zonen erlauben granulare Segmentierung: intern, dmz, extern, management.
ufw - einfache Personal Firewall
- apt install ufw -y
- ufw default deny incoming
- ufw default allow outgoing
- ufw allow 22/tcp
- ufw allow 443/tcp
- ufw enable
- ufw status numbered
- ufw eignet sich besonders für Einzelplatzsysteme und Workstations.
- Einfache Syntax für lokale Absicherung.
- Auch IPv6-Unterstützung aktivierbar:
- vi /etc/default/ufw
IPV6=yes
- ufw reload
Logging und Kontrolle
- ufw logging on
- firewall-cmd --set-log-denied=all
- journalctl -u firewalld
- journalctl -u nftables
- Firewall-Logs sollten regelmäßig geprüft werden.
- Verdächtige Muster (z. B. viele Verbindungsversuche von einer IP) können auf Portscans oder Angriffe hindeuten.
Netzwerk-Härtung über sysctl
- vi /etc/sysctl.d/90-network-security.conf
net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.log_martians = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.tcp_syncookies = 1 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_source_route = 0
- sysctl -p /etc/sysctl.d/90-network-security.conf
- Diese Einstellungen härten den Netzwerkstack und reduzieren Angriffsflächen auf Layer 3/4.
Erkennung und Monitoring
- Tools wie iptraf, nload oder iftop überwachen den Netzwerkverkehr in Echtzeit.
- IDS/IPS-Systeme (z. B. Suricata, Snort) ergänzen die Firewall durch Angriffserkennung.
- apt install suricata -y
- systemctl enable --now suricata
- Suricata kann auf Basis von nftables-Mirror-Interfaces eingesetzt werden.
Quick Checklist
- Standard-Policy: DROP für eingehend, ALLOW für ausgehend.
- SSH nur von definierten IPs zulassen.
- Unnötige Dienste blockieren (z. B. SMB, RPC, mDNS).
- IPv6-Regeln separat pflegen und nicht vergessen.
- Logging aktivieren und regelmäßig prüfen.
- firewalld oder ufw als Personal Firewall auf Workstations einsetzen.
- nftables für Server- und Zonenfirewalls bevorzugen.
Zusammenfassung
- Ein sicher konfigurierter Netzwerkschutz ist unverzichtbar. Firewalls bilden die erste Schutzlinie gegen Angriffe.
- firewalld bietet flexible Zonenverwaltung für Server, ufw eine einfache Handhabung für Clients.
- Ergänzend sollten Kernelparameter, Logging und Intrusion Detection eingesetzt werden.
- Ziel: kontrollierter, nachvollziehbarer und dokumentierter Netzwerkverkehr mit minimaler Angriffsfläche.