Einführung
Hetzner Online hat mit der stateless Firewall
eine kostenlose Sicherheitslösung für Ihre Dedicated Root Server implementiert. Sie haben in Ihrer Administrationsoberfläche Robot im Reiter Firewall
Ihres Servers die Möglichkeit, Filterregeln für Ihren eingehenden und ausgehenden Datenverkehr zu definieren.
Die Firewall dient dazu, den Netzwerkzugriff basierend auf von Ihnen festgelegten Regeln zu beschränken. Sie überwacht den laufenden Datenverkehr und entscheidet anhand der Regeln, ob bestimmte Netzwerkpakete durchgelassen werden oder nicht. Auf diese Weise lassen sich unerlaubte Zugriffe unterbinden.
Insgesamt gilt: Die Funktion einer Firewall besteht nicht darin, Angriffe zu erkennen. Sie soll ausschließlich Regeln für die Netzwerkkommunikation umsetzen. Hetzner Online bietet Ihnen so neben dem DDoS-Schutz eine ergänzende Möglichkeit, Ihre Dedicated Root Server vor Gefahren aus dem Internet abzusichern.
Die Firewall für Dedicated Root Server im Robot wird auf dem Switch-Port konfiguriert. Standardmäßig filtert die Firewall nur IPv4-Datenverkehr, ein zusätzlicher IPv6-Filter kann über die Option IPv6-Pakete filtern
aktiviert werden.
Wie aktiviere ich die Firewall?
Sie können die Firewall im Robot unter Hauptfunktionen
-> Server
-> Server auswählen -> Firewall
aktivieren. Wird diese aktiviert und es sind noch keine Firewall Regeln hinterlegt, wird jeglicher eingehender Traffic blockiert.
Das Aktivieren der Firewall wird direkt umgesetzt und am Switch konfiguriert. Die Konfiguration dauert ca. 20 – 30 Sekunden.
Firewall-Regeln
Pro Richtung können maximal 10 Regeln gesetzt werden.
Parameter
- Name: Der Name kann frei vergeben werden. Lediglich Sonderzeichen sind nicht erlaubt
- IP-Version: IPv4, IPv6 oder keine Angabe (
*
) - Protokoll: Auswahl des Protokolls (z.B. TCP oder UDP)
- Ziel-IP und Quell-IP: IP-Adressen können entweder als Einzel-IPs oder als Subnetz in CIDR Notation angegeben werden (z.B.
<192.168.0.1>
oder<192.168.0.0/30>
). Da die Firewall auf dem Switch-Port konfiguriert wird, gilt die Regel ohne Angabe der Ziel-IP für alle IP-Adressen des Servers. - Ziel-Port und Quell-Port: Die Ziel- und Quell-Ports können als Einzel-Port oder als Bereich angegeben werden (z.B. 80 oder 32768-65535).
- TCP-Flags: TCP-Flags (syn, fin, rst, psh, urg) können einzeln oder als logische Kombination (
|
für logisches Oder = mindestens eines der Flags muss gesetzt sein;&
für logisches Und = alle Flags müssen gesetzt sein) angegeben werden. - Aktion: Die Aktion definiert, was mit Paketen geschehen soll, die auf die Regel zutreffen, also ob das Paket verworfen werden soll (
discard
) oder an den Server weitergeleitet (accept
) werden soll.
Priorisierung
Die Regeln werden genau in der Reihenfolge angelegt, wie sie im Robot definiert werden, und der Reihe nach von oben nach unten abgearbeitet. Sie können die Reihenfolge nachträglich über die grünen Pfeile am Ende der Regel ändern.
Trifft Regel #1 nicht zu, wird Regel #2 geprüft. Trifft diese ebenfalls nicht zu wird Regel #3 geprüft. Sobald eine Regel zutrifft, wird die Abarbeitung der Regeln beendet und das Paket entsprechend der definierten Aktion entweder verworfen oder weitergeleitet. Somit werden bei zutreffender Regel alle nachfolgenden Regeln nicht beachtet. Trifft keine der Regeln zu, wird das Paket verworfen.
Hetzner Dienste freigeben
Über die Checkbox Hetzner Services
können Sie ohne zusätzliche Konfiguration alle wichtigen Infrastrukturdienste von Hetzner Online freigeben. Wenn diese Option aktiviert ist, werden Dienste wie beispielsweise das Hetzner Rescue-System, DHCP, DNS, Storage Boxen, System Monitor(SysMon) nicht blockiert, sondern direkt freigegeben.
Bitte beachten Sie, dass die Infrastrukturdienste nur für eingehende Pakete freigeschaltet werden können. Sollten Sie auch ausgehende Pakete filtern, sind zusätzliche Regeln nötig, um die Antwortpakete Ihres Server zu den Hetzner-Diensten zu erlauben. Weitere Informationen finden Sie unter Hinweise zu stateless Firewall.
IPv6-Filter
Der IPv6-Filter kann über die Checkbox "IPv6-Filter" aktiviert werden.
Bitte beachten Sie, dass bei Aktivierung des IPv6-Filters sämtlicher IPv6 Traffic blockiert wird, wenn noch keine Regeln für IPv6 Pakete angelegt wurden.
Wenn Sie bei einer Regel keine IP-Version angeben, dann gilt die Regel sowohl für IPv4 als auch für IPv6.
Einschränkungen IPv6
- Es ist nicht möglich, das Protokoll ICMPv6 zu filtern. ICMPv6 Traffic vom und zum Server ist immer erlaubt. Es ist notwendig, ICMPv6 standardmäßig zuzulassen, da ICMPv6 ein wichtiges Hilfsprotokoll ist und für den Betrieb von IPv6 zwingend erforderlich ist.
- Bei Regeln mit IP-Version IPv6 oder keiner Angabe der IP-Version kann nicht auf Ziel- und Quell-IP-Adresse gefiltert werden.
- Ohne Angabe der IP-Version kann nicht auf ein bestimmtes Protokoll gefiltert werden.
Hinweise zu stateless Firewall
Bei einer stateless Firewall wird die Entscheidung, was mit einem Paket passieren soll, immer nur anhand eines Paketes getroffen. Die Firewall merkt sich somit nicht, ob ein Paket zu einer bestehenden Verbindung gehört. Dies hat zur Folge, dass ohne zusätzliche Regeln vom Server ausgehende Verbindungen, und bei Filterung von ausgehenden Paketen auch zum Server eingehende Verbindungen, nicht mehr funktionieren, da die jeweiligen Antwortpakete in Gegenrichtung den Filter nicht mehr passieren können.
Eingehende Richtung
Ohne zusätzliche Regel können alle zum Server eingehenden Antwort-Pakete die Firewall nicht passieren.
Um generell alle Antworten auf TCP-Verbindungen zuzulassen, kann folgende Regel verwendet werden:
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 32768-65535 (Ephemeral Port Range)
Protokol: tcp
TCP-Flags: ack
Aktion: accept
Die Regel kann natürlich auch durch Angabe von IP-Adressen und TCP-Ports restriktiver gestalten werden.
Beispiel
In der Firewall sind folgende Regeln definiert:
Eingehend: Nur HTTP Pakete erlaubt
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 80
Protokol: tcp
TCP-Flags: keine Angabe
Aktion: accept
Ausgehend: Alles erlaubt
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: keine Angabe
Protokol: *
TCP-Flags: keine Angabe
Aktion: accept
Der Server 1.2.3.4 baut eine Verbindung zum externen Webserver 4.3.2.1 auf und sendet folgendes TCP-Paket:
Quell-IP: 1.2.3.4
Ziel-IP: 4.3.2.1
Quell-Port: 44563 (zufälliger Port aus der Ephemeral Port Range)
Ziel-Port: 80
Protokol: tcp
TCP-Flags: syn
Dieses ausgehende Paket wird von der Firewall nicht blockiert, da im Beispiel nur eingehende Verbindungen gefiltert werden.
Der Webserver 4.3.2.1 antwortet mit folgendem Paket:
Quell-IP: 4.3.2.1
Ziel-IP: 1.2.3.4
Quell-Port: 80
Ziel-Port: 44563
Protokol: tcp
TCP-Flags: syn & ack
Dieses Paket wird ohne die zusätzliche Regel blockiert, eine Verbindung kann somit nicht aufgebaut werden.
Ausgehende Richtung
Ähnlich wie bei Eingehende Richtung gilt auch für die Gegenrichtung, dass Antwortpakete nicht automatisch freigeschaltet werden.
Wenn nur bestimmte ausgehende Pakete zugelassen sind, werden ohne weitere Regeln auch Antwortpakete vom Server auf Verbindungsanfragen an Server-Dienste die Firewall nicht mehr passieren können.
Sie können auch für die ausgehende Richtung eine allgemeine Regel hinzufügen, um alle Antwortpakete zuzulassen:
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 32768-65535 (Ephemeral Port Range)
Protokol: tcp
TCP-Flags: ack
Aktion: accept
Bitte beachten Sie, dass hier die Ephemeral Port Range aller Clients beachtet werden muss. Diese kann von der Range des Server abweichen.
Als weitere essentielle Freigabe empfiehlt sich auch, Pakete zum DNS-Dienst zuzulassen. Da die Option Hetzner Services
nur bei eingehenden Regeln zur Verfügung steht, muss bei ausgehender Filterung dieser Traffic auch für Hetzner-DNS-Server freigeschaltet werden.
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 53
Protokol: udp
TCP-Flags: keine Angabe
Aktion: accept
Beispiel
In der Firewall sind folgende Regeln definiert:
Eingehend: Alles erlaubt
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: keine Angabe
Protokol: *
TCP-Flags: keine Angabe
Aktion: accept
Ausgehend:
Nur HTTP und DNS Traffic erlaubt:
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 80
Protokol: tcp
TCP-Flags: keine Angabe
Aktion: accept
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: keine Angabe
Ziel-Port: 53
Protokol: udp
TCP-Flags: keine Angabe
Aktion: accept
Der Client 4.3.2.1 baut eine Verbindung zu Ihrem HTTP Server 1.2.3.4 auf.
Quell-IP: 4.3.2.1
Ziel-IP: 1.2.3.4
Quell-Port: 44563 (zufälliger Port aus der Ephemeral Port Range)
Ziel-Port: 80
Protokol: tcp
TCP-Flags: syn
Dieses Paket kann die Firewall passieren, da eingehend sämtlicher Traffic erlaubt ist.
Der Server möchte mit einem SYN & ACK Paket auf die Verbindungsanfrage antworten:
Quell-IP: 1.2.3.4
Ziel-IP: 4.3.2.1
Quell-Port: 80
Ziel-Port: 44563
Protokol: tcp
TCP-Flags: syn & ack
Dieses Paket kann die Firewall in ausgehender Richtung nicht passieren, da ausgehend nur TCP Traffic zu Port 80 erlaubt ist.
Abhilfe schafft entweder eine allgemeine Regel wie oben beschrieben, oder eine spezielle Regel, um nur Antworten des Webservers zu erlauben:
Quell-IP: keine Angabe
Ziel-IP: keine Angabe
Quell-Port: 80
Ziel-Port: 32768-65535 (Ephemeral Port Range)
Protokol: tcp
TCP-Flags: ack
Aktion: accept
Firewall-Vorlagen
Über den Button Firewall-Vorlagen
in der Serverübersicht (Hauptfunktionen
-> Server
) können Sie eigene Regelsätze anlegen. Diese Regeln können anschließend über das Drop-Down Menü bei der Firewallkonfiguration der Server eingefügt und konfiguriert werden.
Zusätzlich sind standardmäßig einige Beispiel-Vorlagen für gängige Serverdienste vordefiniert.
API
Die Firewall kann auch über den Robot-Webservice (API) konfiguriert werden.