Firewall des netcup VCP
Hinweis: Diese Anleitung ist ausschließlich für vServer basierend auf Linux-VServer gültig.
Firewall
Eine Firewall ist ein Dienst bzw. Service der die Zugriffe zwischen verschiedenen Netzwerkkomponenten reglementiert. Sie ist der wesentliche Bestandteil eines Sicherheitskonzepts im Bereich des Hosting bzw. Serverbetriebs im World wide Web.
Mit der netcup VCP Firewall können Sie Regeln aller üblichen Arten definieren was wir Ihnen hier näher erläutern. Am Ende der Seite gibt es zusätzlich ein Glossar welches die einzelnen Begriffe erläutert.
Inhaltsverzeichnis
Übersicht der Firewall
Die Übersicht der Firewall trennt sich in Bereiche für IPv4 und IPv6 Adressen des vServers, sowie den generellen Einstellungen der Firewall.
Auf den Übersichtsseiten erfolgt getrennt die Ausgabe der INPUT sowie OUTPUT Filterregeln. Am Ende der jeweiligen Auflistung, wenn Filter erstellt sind, wird die Standardeinstellung zusätzlich angezeigt, ACCEPT oder DROP.
Am Ende der jeweiligen Seite steht Ihnen das Formular zum Anlegen neuer Regeln / Filter zur Verfügung. Hierzu folgt weiter unten eine Vorstellung.
In den Einstellungen können Sie für INPUT sowie OUTPUT die Standard Werstellung definieren, akzeptieren für ACCEPT bzw. verweigern für DROP.
Aufbau einer Regel in der Übersicht

von Links nach Rechts:
- Auf- Zuklapp Button der Regeldetails / des Bearbeitungsformulars der Regel
- Anzeige der Regel-Informationen
- Richtung: INPUT oder OUTPUT
- Protokoll: TCP / UDP / ICMP / ANY (alle)
- Quell IP: Quelle bei welcher diese Regel greifen soll.
- Ziel IP: Ziel bei welchem diese Regel greifen soll.
- Quell Port: Bei welchem Quell-Port diese Regel greifen soll.
- Ziel Port: Bei welchem Ziel-Port diese Regel greifen soll.
- Zusatz / Zusatz Wert: Zusätzliche Filteroptionen (hierzu weiter unten mehr)
- ACCEPT / DROP: Hier wird angezeigt ob die Regel eine ACCEPT oder DROP Wertstellung hat
(über einen Klick hierauf kann der Wert geändert werden) - Sortierung der Regel
- Aktivieren, Deaktivieren, Löschen der Regel
- Kommentar der Filter Regel
Wenn Sie eine Regel über das aufklappbare (+) Formular bearbeiten, durch einen Klick auf ACCEPT/DROP die Wertstellung ändern, die Sortierung bearbeiten oder die Löschfunktion nutzen, ändert sich die Hintergrundfarbe und der Rahmen in gelb. Eine Übernahme der Änderung erfolgt sobald Sie dies über den Button speichern am Ende der Regelauflistung bestätigt haben.
Erstellen einer neuen Regel

Das Anlegen neuer Regeln ähnelt in den Angaben dem üblichen iptables Schema, wurde jedoch auf ein komfortabel zu bedienendes Formular umgesetzt.
Position
Geben Sie bereits beim Erstellen der Regel an, auf welcher Position in Ihrer Filterliste die Regel gesetzt werden soll. Dies erspart die spätere Einsortierung der Regel.
Richtung
Zur Auswahl stehen hier INPUT sowie OUTPUT, also ob die Regel für eingehenden Verkehr (zum vServer hin) oder ausgehenden Verkehr (vom vServer weg) greifen soll.
Protokoll
Es gibt die Protokolle TCP, UDP, ICMP und ANY (gleichstehend für "alle" Protokolle).
TCP
TCP ist die Abkürzung für Transmission Control Protocol, auf Deutsch Übertragungssteuerungsprotokoll. Das TCP Protokoll dient der Definition auf welche Art und Weise Daten zwischen Quelle und Ziel ausgetauscht werden (z.B. SSH, http, ftp, etc.)
Näheres dazu finden Sie im Wikipedia.de Artikel zu TCP.
UDP
UDP steht für User Datagram Protocol, zu deutsch Benutzer Datagramm-Protokoll. Das UDP Protokoll gehört zu den Transport-Protokollen und definiert welche Daten der jeweils zugehörigen Anwendung zu übergeben bzw. an diese zu übertragen.
Näheres dazu finden Sie im Wikipedia.de Artikel zu UDP.
ICMP
ICMP bedeutet Internet Control Message Protocol, übersetzt also Internet Nachrichten Protokoll. Das ICMP Protokoll übermittelt Nachrichten und Informationen bzw. Fehlermeldungen per Netzwerk. Im Gegensatz zu anderen üblichen Protokollen gibt es bei ICMP einen eigenen Protokollstandard für IPv6 namens ICMPv6. Im ICMP Protokoll gibt es für die Übermittlung der Nachrichten vielseitige Pakettypen welche die Art der Nachricht definieren. Die wohl bekannteste bzw. üblichste ist der "Echo Reply" womit man z.B. das Antworten auf einfache Pings verhindern kann.
Näheres dazu finden Sie im Wikipedia.de Artikel zu ICMP.
Quell IP und Quell Port
Eine Regel kann so definiert werden das sie abhängig von der Quelle ist, um z.B. eingehenden Verkehr einer einzelnen IP-Adresse oder einer definierten IP-Range zu behandeln. Die Angabe des Quell Ports ist abhängig von einem Protokoll. Sie müssen daher explizit ein Protokoll wählen um einen Quell Port definieren zu können.
Ziel IP und Ziel Port
Eine Regel kann so definiert werden das sie für eine Ziel IP greift, um z.B. eingehenden Verkehr zu einer einzelnen IP-Adresse oder einer definierten IP-Range zu behandeln. Die Angabe des Ziel Ports ist abhängig von einem Protokoll. Sie müssen daher explizit ein Protokoll wählen um einen Ziel Port definieren zu können.
Bei Ziel-IP werden Ihnen die IP-Adressen Ihres vServers direkt zur Auswahl vorgegeben. ANY ist gleichbedeutend für alle IP-Adressen des vServers.
Zusatz
Zusätze sind, wie der Name schon sagt, zusätzliche Definitionen für Ihre Filterregeln. Die Zusätze haben mitunter weitere Parameter welche gesetzt werden müssen.
STATE Zusatz
Der State Zusatz ist viel mehr als das bekanntere Connection Tracking Element in einer Firewall (bei iptables) zu verstehen. Die Arten die das Connection Tracking "kennt" sind dann die sogenannten "States". Es gibt 4 States wovon 3 die sind, die für Sie für die Konfiguration der Firewall wichtig sind, und bei Auswahl des Zusatz State auch als Zusatz Werte auswählbar sind. Die States lauten NEW, ESTABLISHED und RELATED.
Erläuterung von Connection Tracking
Connection Tracking ist die Verbindungsverfolgung von Paketen. Darüber wird definiert welchen State ein Paket bzw. eine Paketfolge erhält. Dies vereinfacht die Abarbeitung seitens der Firewall da spezielle Verbindungsinformationen vorgehalten sind und Pakete somit "defragmentiert" behandelt werden können was die Zuteilung und Verarbeitung seitens der Firewall beschleunigt. Eine ausgehende Verbindung hat z.B. erstmal ein NEW State, sobald eine Antwort auf das Paket erfolgt wird kein neuer State für dieses Paket gesetzt sondern das State der ausgehenden Verbindung auf ESTABLISHED gesetzt.
Wenn Pakete untereinander nur eine verwandschaftliche Beziehung zueinander haben, also nicht direkt aufeinander aufbauen oder eine direkte Antwort sind, kommt der State RELATED zum Einsatz.
Beispiel für Connection Tracking
Ein ICMP Echo Request (ausgehende Ping Abfrage) ist ein ausgehendes Paket, es erhält den State NEW. Ein ICMP Echo Reply Paket (die Antwort auf den Ping) wäre eine Antwort auf einen Request und würde den Status der "Verbindung" somit auf ESTABLISHED setzen (erfolgreiche Verbindung). Ein Echo Redirect hingegen würde lediglich den State RELATED erhalten da es keine geforderte Verbindung aufbaut sondern eine Weiterleitung ist bzw. verursacht.
LIMIT Zusatz
Das LIMIT ist eine Limitierung der Anzahl von zulässigen Anfragen / Verbindungen auf den Vorweg definierten Verbindungsparametern. So lassen sich z.B. effektiv FTP Hammer oder Brute-Force Attacken unterbinden. Die Angabe des Zusatz Wertes erfolgt dabei von Haus aus in Anfragen pro Sekunde (n/s). Anfragen welche das Limit überschreiten erhalten dabei einen DROP.
ICMPTYPE Zusatz
Für Informationspakete muss der entsprechende Informations- bzw. Nachrichtentyp deklariert werden. Die Typen sind dabei sehr vielfältig. Die bekanntesten sind die ECHO Definitionen welche für Ping Anfragen verwendet werden.
Näheres dazu finden Sie im Wikipedia.de Artikel zu ICMP.
Beispielregeln

Globaler DROP
Eine sinnvolle Vorgehensweise zum Begin eines Serverbetriebs ist die oftmals empfohlene Variante den INPUT Verkehr komplett zu droppen (verwerfen). Der Server ist auf diese Weise von aussen nicht erreichbar, über keinen Port, auch nicht per ssh. Hierfür bietet netcup das bereits erwähnte Feature der "Standardeinstellung" für INPUT sowie OUTPUT an.
Wenn man nun also INPUT per Standard auf DROP stellt und anschließend eine Regel erstellt mit welcher der Zugriff per SSH auf Port 22 erlaubt (ACCEPT) ist damit man per Shell auf seinen Server kommt um diesen zu administrieren, würde es bereits daran scheitern einen "apt-get update" oder z.B. "yum update" Befehl abzusetzen. Da der INPUT generell verworfen wird, bis auf den freigeschalteten SSH Port 22, kann im Server zwar eine Anfrage nach aussen geschickt werden, z.B. durch die Namensauflösung des Paketmanagers, die Antwortpakete jedoch, kommen auf dem Rückweg nicht durch da man ja ausschließlich SSH aktiviert hat. Die eine Variante ist es, alle Ports entsprechend zu aktivieren.
Die empfehlenswerte Variante ist es eine globale ACCEPT Regel für den INPUT zu erstellen welche die States ESTABLISHED und RELATED besitzt. Das bedeutet das Pakete bereits aufgebauter Verbindungen oder weitergeleitete Pakete in jedem Fall durch dürfen, z.B. die Pakete welche bei einer DNS Auflösungsanfrage zurück kommen.
Anhand des oben genannten Beispiel würde die Konstellation somit wie folgt aussehen.

weitere Beispiele
Als Standardeinstellung wurde hier definiert das jeglicher Verkehr verweigert werden soll. Durch folgende Regeln wird einzeln aktiviert, was benötigt wird.
Position 1
Freischaltung für SSH auf Port 22 für neue und bestehende Verbindungen mit einer definierten Ziel IP-Adresse.
Position 2
Aktivierung von POP3 auf Port 110 für jegliche Verbindungen.
Position 3
Aktivierung und Limitierung für Anfragen auf Port 21 für FTP Zugriffe.
Position 4
Erlaubnis für Zugriff auf Port 80, typischer Port für http / Webserver Anfragen ohne spezielle Begrenzungen.
Position 5
Freischaltung von Port 25, Standard für SMTP Verbindungen, auf einer definierten IP-Range als Ziel.
Position 6
Aktivierung von Ping Anfragen über den ICMPTYPE Echo Request auf allen IP-Adressen des vServers.
Glossar
INPUT
INPUT definiert in einer Firewall den eingehenden Verkehr, also Netzwerkverkehr der zum vServer führt.
OUTPUT
OUTPUT ist der ausgehende Netzwerkverkehr, also dem vServer als Quelle des Verkehrs.
ACCEPT
ACCEPT steht für akzeptieren, also dem Zulassen von Netzwerkverkehr.
DROP
DROP ist der Gegenpart zu ACCEPT und verweigert den Netzwerkverkehr.
BRUTE-FORCE
Brute-Force ist eine spezielle Methode eines Angriffs. Die Brute-Force Methode basiert auf dem "try & error" Prinzip. Es werden also eine ggf. definierte Anzahl an Verbindungs- und Loginversuchen auf einem Dienst durchgeführt. Hierbei kommen oftmals entsprechende Passwortlisten, sogenannte Rainbow-Tables zum Einsatz. Auf diesem Wege versuchen Angreifer ein System zu kompromitieren bzw. zu kapern um dieses zu übernehmen und für eigene, oftmals illegale Zwecke zu verwenden.