Zugang zu Diensten des Strato-V-Servers einschränken

Standardmäßig sind alle Ports nach der Installation eines V-Servers erreichbar und bieten daher potenzielle Einfallstore für Viren und Malware. Der Strato-V-Server lässt sich auf zwei Ebenen schützen:

  • Strato-Firewall im Netzt des Rechenzentrums
  • Windows-Firewall auf dem Server

Strato-Firewall

Im Kundencenter kann für den Server die Firewall des Rechenzentrums so konfiguriert werden, dass nur benötigte Ports überhaupt Anfragen erhalten können. Zur Verwaltung muss hier mindestens der RDP-Port 3389 konfiguriert werden, um weiterhin per RDP auf den Server zugriefen zu können.

notwendige Ports

  • TCP/3389 – Remote Desktop

optionale Port typischer Dienste

  • TCP/21 – FTP
  • TCP/80 – Webserver (HTTP)
  • TCP/443 – Webserver (HTTPS)
  • UDP/514 – Syslog
  • TCP/3306 – MySQL / MariaDB
  • TCP/32400 – Plex (ohne Weiterleitung für Gäste-Netzwerke)

Für die hier konfigurierten Ports können Anfragen noch am Server selber ankommen und müssen dann dort durch die Windows-Firewall bearbeitet werden.

Windows-Firewall

Über die Strato-Firewall lassen sich die Ports (effektiv) nur uneingeschränkt freigeben. Für spezielle Dienste, wie etwa Syslog-Server, FTP-Zugriff oder Plex, kann eine weitere Beschränkung auf einzelne bekannte Netze sinnvoll sein, um die Angriffsfläche weiter zu reduzieren.

Die Windows-Firewall bietet dafür die Möglichkeit die einzelnen Regeln nur für bestimmte Quellen zuzulassen, Anfragen anderer Standorte werden nach wie vor blockiert. Allerdings lassen sich hier nur IP-Adressen (Remote-IP-Adresse) und keine Domain-Namen angeben.

Um die Definition über Dyn-DNS-Namen vornehmen zu können, lässt sich eine Übersetzung von Dyn-DNS-Namen zu IP-Adressen über Komandozeilen-Skripte einplanen. Diese bestehen aus folgenden Schritten.

  • Auflösen der Dyn-DNS-Namen zu IP-Adressen
  • Umformatieren der Liste für PowerShell
  • Anpassen der Remote-IP-Adresse der Firewall-Regel

Die folgenden Skriptstücke ermitteln die IP-Adressen für die gewünschten Domain-Namen und schreiben diese zunächst als (temporäre) Datei. Diese wird im zweiten Schritt ausgelesen und die Liste der zulässigen IP-Adressen als eine Zeichenkette erstellt. Im letzten Schritt wird diese Liste an die Firewall-Regel übergeben.

Auflösen der Dyn-DNS-Namen zu IP-Adressen

Das Ermitteln der IP-Adressen aus Dyn-DNS-Namen setzt sich aus folgenden Power-Shell-CMDlets zusammen.

powershell "Resolve-DnsName -NoHostsFile plex.tv         | select IP4Address | Select-Object -ExpandProperty IP4Address | Out-File -FilePath 'D:\Meine Ablage\Automation\KUMO\Firewall\IP_Plex.txt'       -Encoding ASCII        "
powershell "Resolve-DnsName -NoHostsFile plex.dachs.blog | select IP4Address | Select-Object -ExpandProperty IP4Address | Out-File -FilePath 'D:\Meine Ablage\Automation\KUMO\Firewall\IP_Plex.txt'       -Encoding ASCII -Append"

Resolve-DnsName – ermittelt für die angegebene Domain Routing Infos vom DNS-Dienst. Im Falle von „plex.tv“ werden 4 IPv4-Adressen zurückgegeben. Der nächste Teil wählt nur die Spalte IPAddress aus und gibt diese ohne Spaltenkopf aus.

powershell Resolve-DnsName -NoHostsFile plex.tv

Name       Type   TTL   Section    IPAddress
----       ----   ---   -------    ---------
plex.tv    A      59    Answer     52.213.118.233
plex.tv    A      59    Answer     34.250.156.248
plex.tv    A      59    Answer     52.30.172.197
plex.tv    A      59    Answer     54.72.40.42

Resolve-DnsName -NoHostsFile plex.tv | select IP4Address | Select-Object -ExpandProperty IP4Address
54.72.40.42
52.30.172.197
52.213.118.233
34.250.156.248

Der letzte Teil schreibt dieses Ergebnis als Text-Datei. Mit „-Append“ wird die bestehende Datei erweitert, so dass auch mehrere Dyn-DNS-Namen berücksichtigt werden können.

Umformatieren der Liste für PowerShell

Der zweite Block liest die zuvor erstellte Datei zeilenweise ein erstellt daraus eine Aufzählung der ermittelten IPs.

REM IP_Plex.txt durchsuchen und IP-Liste aufbauen
set IP_PlexListe=D:\Meine Ablage\Automation\KUMO\Firewall\IP_Plex.txt
set IP_Plex=
setlocal EnableDelayedExpansion
for /F "usebackq delims=" %%A in ("%IP_PlexListe%") do (
    set IP_PlexZeile=%%A
    if "!IP_Plex!"=="" (
        set IP_Plex=!IP_PlexZeile!
    ) else (
        set IP_Plex=!IP_Plex!,!IP_PlexZeile!
    )
)

Anpassen der Remote-IP-Adresse der Firewall-Regel

Im letzten Schritt wird diese Liste an die Firewall übermittelt, und die zulässigen IP-Adressen gesetzt.

powershell -File "D:\Meine Ablage\Automation\KUMO\Firewall\Firewall-Set-IPs.ps1" "Plex"  "!IP_Plex!"

This post is also available in: Deutsch

Schreibe einen Kommentar