Was ist eine Firewall?
Eine Firewall ist ein Filter zwischen Netzen oder vor einem Server, der nur ausdrücklich erlaubte Verbindungen durchlässt und alle anderen abweist.
Ohne Fachbegriffe, für Betriebe ohne eigene IT.
Auf dieser Seite3 Abschnitte
Einfach erklärt
Eine Firewall ist der Pförtner Ihres Netzes oder Servers. Sie lässt nur ausdrücklich erlaubte Verbindungen durch, etwa Besuche auf der Website. Alle anderen weist sie ab. Jeder Dienst auf einem Server wartet an einer eigenen Tür, dem Port. Die Firewall entscheidet, welche Türen von außen überhaupt erreichbar sind.
Es gibt sie als eigenes Gerät (etwa im Router Ihres Büros) und als Programm direkt auf dem Server. Auch Rechenzentren und Cloud-Anbieter bieten Firewalls an, die vor den Servern sitzen.
Was Sie tun können
- Lassen Sie sich von Ihrem IT-Dienstleister eine Liste geben, welche Ports von außen offen sind und wofür.
- Wartungszugänge wie SSH oder Verwaltungsoberflächen sollten nicht für das ganze Internet offen sein, sondern nur über ein VPN oder von festen Adressen aus.
- Jede neue Freigabe wird mit Grund und Ansprechpartner dokumentiert. Nicht mehr benötigte Freigaben werden wieder geschlossen.
Was eine Firewall nicht kann
Eine Firewall schützt nicht den Dienst, den sie freigibt. Ist die Website erreichbar, erreicht ein Angreifer auch ihre Sicherheitslücken. Gegen Phishing, schwache Passwörter oder fehlende Updates hilft sie nicht. Sie ist eine Schutzschicht unter mehreren.
Gut zu wissen: Eine Firewall kann auch Verbindungen nach außen begrenzen. Ein übernommener Server kann dann nicht ohne Weiteres Daten an fremde Adressen schicken.
Funktionsweise
Ein Paketfilter prüft Pakete nach Quell- und Zieladresse, Port und Protokoll. Zustandsbehaftete Filter (stateful) merken sich Verbindungen und lassen Antworten auf erlaubte Verbindungen ohne eigene Regel zurück. Application-Level-Gateways prüfen zusätzlich Inhalte einzelner Protokolle. Der BSI-Baustein NET.3.2 „Firewall“ verlangt den Allowlist-Ansatz: Erlaubt ist nur, was eine Regel freigibt, alles andere wird unterbunden (A2). Gefiltert wird grundsätzlich zustandsbehaftet, ICMP und ICMPv6 restriktiv (A3). Zwischen Netzen empfiehlt das BSI eine mehrstufige Struktur aus Paketfilter, Application-Level-Gateway und zweitem Paketfilter (P-A-P, A16). Die Firewall direkt auf dem Server ergänzt das, sie ersetzt es nicht.
Unter Linux ist nftables der Nachfolger von iptables. Werkzeuge wie ufw oder firewalld erzeugen die Regeln auf dieser Grundlage. Eine schlanke Regel für einen Webserver:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
meta l4proto ipv6-icmp accept
icmp type echo-request limit rate 5/second accept
tcp dport { 80, 443 } accept
ip saddr 198.51.100.10 tcp dport 22 accept
}
}
ICMPv6 bleibt offen, weil IPv6 ohne Neighbor Discovery nicht funktioniert. SSH ist nur von einer festen Adresse erreichbar.
Typische Fehler
- Docker an der Host-Firewall vorbei. Veröffentlichte Container-Ports laufen über eigene NAT-Regeln an ufw vorbei, mehr unter Container.
- IPv6 vergessen. Die Regeln gelten nur für IPv4, über IPv6 ist der Dienst offen.
- Freigaben ohne Ende. Regeln für ein abgeschlossenes Projekt oder einen früheren Dienstleister bleiben jahrelang stehen.
- Ausgesperrt. Wer per SSH neue Regeln setzt, braucht einen Notzugang, etwa die Konsole des Anbieters. NET.3.2.A7 verlangt, dass sich eine Firewall im Notfall auch ohne funktionierendes Netz direkt verwalten lässt.
- Nur eingehend gefiltert. NET.3.2.A2 verlangt auch, unerlaubte Verbindungen aus dem geschützten Netz heraus zu unterbinden.
Prüfen
nft list ruleset
ufw status verbose
nmap -Pn -p- <server-ip>
nmap gehört auf einen Rechner außerhalb, denn nur dort zeigt sich, was wirklich offen ist. Portscans nur gegen eigene Systeme oder mit Erlaubnis des Betreibers.