Wie lässt sich ein Server härten? – Teil 3

Wer einen Server betreibt, der öffentlich zugänglich gemacht wird, hat es nicht immer leicht mit der Sicherheit. Der kleinste Fehler kann dazu führen, dass die Maschine kompromittiert wird und Daten von Kunden oder eigene Daten gestohlen werden können. Hin und wieder werden diese Server weiter für andere kriminelle Zwecke missbraucht. Meistens ohne, dass der Betreiber dies bemerkt. Also müssen Schutzmechanismen her, um die Anwendungen und das Betriebssystem zu schützen. Im Allgemeinen ist dies bekannt als Serverhärtung oder Serverhardening.

Dieser Artikel ist Teil einer Serie, die laufend veröffentlicht wird. Fett gedruckte Einträge in der To-Do Liste werden im Artikel behandelt. In diesem Artikel geht es um nicht benötigte Dienste und um die Fernwartung.

To-Do Liste

Damit ihr das Problem kurzerhand angehen könnt kommt hier eine schnelle To-Do Liste. Im Nachgang werden alle Punkte detaillierter erläutert.

  • Server über 1 bis mehrere DMZ betreiben
  • Nur benötigte Rollen und Features installieren
  • Nicht benötigte Dienste beenden
  • Standard Konfiguration der Dienste prüfen
  • Remotecontrol nur über interne Netzwerke erlauben
  • Unbenutzte Ports am Server schließen
  • Software so aktuell wie möglich halten

Unbenutzte Ports am Server schließen

Der nächste Schritt bei der Härtung eines Servers ist es dafür zu sorgen, dass gar keine Anfragen an ihn gelangen. Der Titel ist leider etwas irreführend, denn damit meine ich die Schließung der Ports an entsprechenden Firewalls. An dieser Stelle ist nun die Frage: Schließt man die Ports an der externen Firewall oder/und an der serverinternen Firewall. Ich werde kurz auf beides eingehen, wobei die externe Firewall natürlich immer abhängig vom Hersteller ist. Was die interne Firewall von Windows und Linux (nicht direkt Firewall) angeht.

Grundsätzlich sollte man im Vorfeld klären welche Ports überhaupt benötigt werden. Dabei geht man wie folgt vor:

  • Alle nötigen Dienste notieren und dokumentieren
  • Alle Ports schließen
  • Anhand der zuvor definierten Dienste werden diese nun explizit freigegeben (Das Freigeben ist ähnlich wie das Blockieren von Ports)

Windows Server

  • Rechtsklick auf das Windows Symbol links unten
  • Einstellungen“ auswählen
  • Netzwerk & Internet“ auswählen
  • Mittig herunter scrollen und „Windows Firewall“ anklicken
  • Erweiterte Einstellungen“ auswählen
  • Rechtsklick auf „Eingehende Regeln
  • Neue Regel“ auswählen

Als nächstes es geht es darum eine Port Regel zu registrieren. Dafür muss die Option „Port“ ausgewählt werden.

Firewall Port

Der nächste Schritt ist die tatsächliche Definition des Ports. Dabei muss aber noch entschieden werden welches Protokoll zum Einsatz kommt. Dabei können wir wählen zwischen TCP und UDP. In der Regel handelt es sich meistens um TCP Ports, aber eine gute Serverhärtung beinhaltet auch die Filterung und/oder Blockierung der ungenutzten UDP Ports. Gleichzeitig muss man die Nummer des Ports, den man schließen möchte, angeben.

Port Regel

Der letzte Schritt beinhaltet die Entscheidung, ob die zuvor konfigurierten Daten genutzt werden sollen um eine Verbindung zu blockieren oder zu erlauben. Je nach Strategie muss man entsprechende Radiobuttons auswählen, wie folgt beschrieben:

Ports Firewall

Zuletzt kann es sein, dass man gefragt wird welche Netze durch diese Firewallregel betroffen sind. Dabei kann man entscheiden zwischen:

  • Domänen Netzwerk
  • Öffentliches Netzwerk
  • Privates Netzwerk

Dadurch lassen sich drei Firewall Konfigurationen nutzen. Für stationäre Server reicht wohl die Konfiguration des Domänen Netzwerkes, vorausgesetzt das angeschlossene Netzwerk wird auch als Domänen Netzwerk identifiziert. Die anderen eignen sich vor allem für mobile Geräte wie Laptops, die zwischen Büro, Privat und Öffentlich (Hotspots) wechseln. Selbstredend sollte die Konfiguration der öffentlichen Netzwerke vor allem alle Ports aller Protokolle von außen blockieren.

Linux Server

Windows Server lassen sich mittels Klick-Lösung relativ einfach bedienen. Linux hingegen ist nicht ganz so komfortabel, bietet dafür aber wesentlich mehr Spielraum. Unter Linux wird als „Host-Firewall“ das Programm iptables verwendet. Es kann auf Grund von festgesetzten Regeln Pakete im Netzwerkverkehr umlenken. Kurzgesagt: Es verhält sich wie eine Firewall, oder eine Firewall verhält sich wie iptables? Unter der Haube vieler Firewallhersteller verbirgt sich meistens ein Linux System, dass über eine webbasierte Oberfläche bequem bedient werden kann. Die Oberfläche steuert am Ende lediglich das dort ebenfalls vorhandene Programm iptables. Für alle trifft dies nicht zu, aber für die meisten mir bekannten. Zusätzlich wird auch ipset hin und wieder betrieben, um iptables zu ergänzen. Darauf wird hier aber nicht näher eingegangen.

Im folgenden Beispiel wollen wir also auf einem Linux System Port 80 sperren:

iptables -A INPUT -p tcp --destination-port 80 -j DROP

So ähnlich lassen sich natürlich auch alle anderen Ports sperren. In Windows haben wir bereits gesehen, dass man zwischen diversen Netzwerken auswählen und damit entscheiden kann, für welches Netz eine Regel gilt. Unter Linux geht dies auch. Hierzu wird das entsprechende Netzwerkinterface mit angegeben:

iptables -A INPUT -i eth0 -p tcp --destination-port 80 -j DROP

Das ganze ist sehr flexibel und lässt uns zusätzlich zu einer Netzwerkkarte (eth0) auch ein Subnetz oder eine IP Adresse mit angeben:

iptables -A INPUT -i eth0 -p tcp --destination-port 80 -s 192.168.1.0/32 -j DROP
iptables -A INPUT -i eth0 -p tcp --destination-port 80 -s 192.168.1.34 -j DROP

Weitere Details, und wie man mit iptables die verrücktesten Dinge anstellen kann können hier eingesehen werden (ich empfehle vor allen Webseiten vor allem diese beiden Bücher zu tieferem Wissen dazu):

 

Software so aktuell wie möglich halten

Wie hält man die Software eines Systems so aktuell wie möglich? Nun dieses Kapitel generisch zu schreiben ist sehr schwer, da es einfach keinen generischen Ansatz gibt. Grob gesagt ist die Lösung folgende:

  • Eingesetzte Software komplett identifizieren
  • Updates nach Möglichkeit automatisch konfigurieren
  • (Alternative 1) Benachrichtigungen zentral empfangen
  • (Alternative 1) Updates manuell an Hand einer ToDo Liste abarbeiten

Je nach eingesetzter Software ist dies mehr oder weniger einfach durchzuführen. Windows selbst ist mit wenigen Klicks im Autoupdate Modus. Linux hingegen benötigt, je nach Distribution unterschiedliche Befehle:

  • Ubuntu/Debian: apt-get update && apt-get upgrade
  • Fedora: dnf upgrade
  • uvm.

Da der letzte Punkt sehr speziell wird, ist es mir nicht möglich alle Fälle in einem Blogbeitrag abzudecken. Da müsste ein Buch geschrieben werden, dass aber nach wenigen Monaten wieder veraltet ist. Die Technik schreitet ja bekanntermaßen sehr schnell voran. Der einzige logische Schritt an dieser Stelle ist das Hinzuziehen eines Profis, der unterstützten kann. Wobei auch hier gesagt werden soll: 100%ige Sicherheit ist auch hier nicht möglich!

Berater für die Serverhärtung buchen

Als Partner im Janotta & Partner EBS Security Team biete ich zusammen mit meinen Kollegen Server Härtung an.

Ziele

Ziel Angriffsoberfläche verringern
Ziel Beschränkung der Werkzeuge nach erfolgreichem Angriff
Ziel Minimierung der Privilegien nach erfolgreichem Angriff
Ziel Erhöhung der Wahrscheinlichkeit, dass ein erfolgreicher Angriff entdeckt wird
Ziel Minimierung möglicher Angriffsmethoden

Vorteile

Vorteil Serverhärtung ist kostengünstiger als Incident Response
Vorteil Zeitaufwand hält sich in Grenzen (wenige Stunden)
Vorteil Wir härten: Windows Server
Vorteil Wir härten: Linux Server
Vorteil Sicherheitsbestätigungen des jeweiligen Arbeitszeitpunkts werden erstellt

Lassen wir also die Server nicht weiter unsicher im Netzwerk stehen sondern sichern diese heute noch ab!

 

 

Anfrage zur Serverhärtung

 

 

Beitragsbild: Cortana scripting language verändert, von Christiaan ColenCC BY-SA 2.0

Artikel teilen:

Kommentar verfassen