Sicheren FTP-Server (FTPS) auf Windows einrichten


    Tags: , ,

    File Transfer Protocol (FTP)Die Internet Information Services (IIS) von Windows enthalten neben dem Web- auch einen FTP-Server. Er ist in die Benutzer- und Berechtigungs­verwaltung von Windows integriert und erstellt die nötigen Firewall-Regeln bei seiner Installation. Für die sichere Übertragung unterstützt er FTP über TLS/SSL (FTPS), aber nicht das SSH-basierte SFTP.

    Das File Transfer Protocol erweist sich oft noch als einfachste Möglichkeit, um Dateien zwischen Rechnern zu übertragen. Das gilt besonders in heterogenen Umgebungen. Allerdings sollte man auf den unverschlüsselten Transfer nach Möglichkeit verzichten und den Server für FTPS konfigurieren.

    Die Bereitstellung eines sicheren FTP-Servers auf Windows erfordert folgende Schritte:

    1. Hinzufügen des FTP-Servers als optionales Feature (Windows 11) oder als Rolle (Windows Server)
    2. Site im IIS Manager hinzufügen und mittels Wizard anpassen
    3. Berechtigungen für Benutzer und Gruppen konfigurieren
    4. SSL-Zertifikat erstellen
    5. SSL-Einstellungen konfigurieren
    6. Firewall-Regeln für FTP aktivieren
    7. FTP-Server durch Filter absichern

    FTP-Server installieren

    Während sich der FTP-Server auf allen Varianten des Betriebs­systems einheitlich über die Konsole des IIS-Managers verwalten lässt, fällt die Installation auf dem Client und dem Server verschieden aus.

    In Windows 10 / 11 installiert man den FTP-Server über die Systemsteuerung unter Programme => Windows-Funktionen aktivieren oder deaktivieren. Dort klappt man die Struktur unterhalb von Internetinformations­dienste auf und aktiviert unter FTP-Server die Checkbox für FTP-Dienst und unter Webverwaltungstools jene für IIS-Verwaltungskonsole.

    FTP-Server und Verwaltungs-Tools als Windows-Feature hinzufügen

    Alternativ kann man den FTP-Server in einer PowerShell-Sitzung mit erhöhten Rechten folgender­maßen hinzufügen:

    Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerManagementTools,IIS-ManagementConsole,IIS-FTPServer,IIS-FTPSvc

    Installation des FTP-Servers als optionales Feature mit PowerShell

    Auf dem Server führt man für diese Aufgabe den Wizard für das Hinzufügen von Rollen und Features aus und wählt dort die Rolle Web-Server aus. Im Dialog Rollendienste deaktiviert man dann Web Server und hakt die benötigten Komponenten unter FTP Server und Management Tools an.

    FTP-Server über den Wizard im Server Manager installieren

    Bevorzugt man PowerShell, dann gibt man diesen Befehl ein:

    Install-WindowsFeature Web-FTP-Server, Web-Mgmt-Console

    Site im IIS Manager hinzufügen

    Nach Abschluss der Installation startet man Internetinformationsdienste (IIS)-Manager über die Suchfunktion oder durch Eingabe von InetMgr.exe. Die Konfiguration des FTP-Servers enthält nur die Default Web Site. Sie verweist auf C:\inetpub\wwwroot und ist nicht aktiviert.

    In der Praxis wird man jedoch eher eine eigene Site anlegen. Dazu startet man den Befehl FTP-Site hinzufügen aus dem Kontextmenü von Sites.

    Neue FTP-Site über den IIS-Manager hinzufügen

    Wir verwenden in dieser Anleitung die Default Web Site, die Konfiguration ist aber für jede Site gleich.

    FTP-Site anpassen

    Wenn man die Default-Site nutzt, dann sollte man das vorgegebene Root-Verzeichnis auf den Ordner %SystemDrive%\inetpub\ftproot verlegen, weil der FTP-Server dieses nutzt. Dazu führt man in der Aktionsleiste den Befehl Grundeinstellungen aus.

    Root-Verzeichnis für die Default Web Site anpassen

    Danach startet man für die weitere Konfiguration den Befehl FTP-Publishing hinzufügen, der den zuständigen Wizard aktiviert. Legt man hingegen eine neue FTP-Site an, dann landet man nach Eingabe der Basisdaten automatisch auf der ersten Seite dieses Assistenten.

    Dabei bindet man im ersten Dialog den Dienst bei Bedarf an eine bestimmte IP-Adresse und kann hier auch den vorgegebenen Port 21 überschreiben. Zudem lässt sich der FTP-Site ein virtueller Hostname zuweisen.

    FTP-Site mit Hilfe des Wizards für das Publishing konfigurieren

    Wenn man mehrere FTP-Sites anlegt, dann benötigt jede eine eigene IP-Adresse, an die sie gebunden werden kann. Virtual Hosts sind dagegen dann interessant, wenn man mehrere FTP-Server über eine IP-Adresse bereitstellen möchte.

    Im Abschnitt SSL wählen wir vorerst die Option Kein SSL aus, weil wir noch kein Zertifikat importiert oder selbst ausgestellt haben.

    Im zweiten Dialog des Wizards legt man fest, wie sich Benutzer authentifizieren müssen und welche Berechtigungen sie bekommen. Aktiviert man Anonym, dann reicht es, wenn sich User mit der Kennung FTP oder Anonymous und ihrer Mail-Adresse als Passwort anmelden.

    Berechtigungen für die FTP-Site festlegen

    Entscheidet man sich für die Anmeldung mit Benutzername und Passwort, dann kann man die Zugriffsrechte für bestimmte Konten bzw. Gruppen von Windows erteilen. Zu diesem Zweck trägt man entweder bestehende User ein oder man legt eine eigene Gruppe für FTP an.

    In diese kann man nicht nur lokale, sondern auch AD-Konten aufnehmen. Zu beachten ist, dass diese auf NTFS-Ebene die nötigen Rechte in den festgelegten Verzeichnissen haben müssen.

    Erweitertes Rechte-Management

    Man kann zwar innerhalb des Wizards beide Formen der Authentifizierung auswählen, aber benannte und anonyme User lassen sich nicht gleichzeitig im Abschnitt Autorisierung eintragen.

    Nach dem Start der Site kann man jedoch über das Applet FTP-Authentifizierung bei Bedarf beide Arten der Anmeldung konfigurieren.

    Die Rechtevergabe erfolgt dann über FTP-Autorisierung. Hier kann man beliebig viele Zulassungs- und Ablehnungsregeln für User und Gruppen hinzufügen, um die Lese- und Schreiberechte zu steuern.

    Benutzergruppe für die FTP-Site berechtigen

    Zertifikat erstellen

    Für die Konfiguration einer SSL-Verbindung benötigt man ein Zertifikat. Der Internet­informations­dienste (IIS)-Manager bietet Funktionen zum Erstellen eines Requests (CSR) und zum Ausstellen eines Domänen- sowie eines selbstsignierten Zertifikats. Letzteres eignet sich primär für den internen Gebrauch oder für Tests.

    Zu diesem Zweck wechselt man im Fenster Verbindungen zum Wurzelverzeichnis (also zum Namen des Servers) und öffnet im Hauptfenster das Applet für Serverzertifikate. Nun kann man im Aktions­fenster den Befehl Selbstsigniertes Zertifikat erstellen ausführen.

    Selbstsigniertes Zertifikat für den FTP-Server ausstellen

    Im daraufhin angezeigten Dialog gibt man einen Namen für das Zertifikat ein, der nur der Beschreibung dient und nichts mit dem Common Name oder dem Subject Alternate Name zu tun hat. Für kleinere Umgebungen wählt man als Store Personal aus. Nach dem Abschicken des Dialogs erhält man ein Zertifikat mit einer Gültigkeit von einem Jahr.

    SSL-Verbindungen konfigurieren

    Die SSL-Konfiguration erfolgt mit Hilfe des Applets SSL-Einstellungen für FTP. Dort wählt man das zuvor ausgestellte Zertifikat aus und entscheidet sich danach für eine SSL-Richtlinie.

    Zertifikat und SSL-Richtlinie auswählen

    • SSL-Verbindungen erforderlich lässt keine unver­schlüs­selte Kommu­ni­ka­tion zu
    • SSL-Verbindung zulassen räumt dem Client die Möglichkeit ein, alle Daten inklusive der Anmelde­informationen im Klartext zu übertragen
    • Benutzerdefiniert erlaubt eigene SSL-Einstellungen für den Steuer- und Datenkanal. Damit kann man beispielsweise erzwingen, dass Passwörter kodiert werden, aber alle anderen Daten über eine unver­schlüsselte Verbindung gehen.

    Firewall-Regeln aktivieren

    Der IIS-FTP-Server unterstützt sowohl den Active Mode als auch den Passive Mode. Der Unterschied zwischen den beiden besteht darin, wer nach der initialen Anfrage des Clients (über Port 21) die Datenverbindung aufbaut. Beim passiven Modus ist das der Client, beim aktiven der Server.

    Der aktive Modus führt häufig zu Problemen mit der Firewall auf der Client-Seite, weil diese zumeist die eingehende Verbindung blockiert. Die Konfiguration des Modus erfolgt über den Client, wobei die in Windows enthaltene ftp.exe nur den aktiven Modus und keine SSL-Verbindung unterstützt.

    Nach der Installation des FTP-Servers enthält die Windows-Firewall drei neue Regeln, die man nun aktiviert:

    • FTP Server (FTP Traffic-in): Sie gibt den Port 21 frei, der für den Control Channel zur Übertragung von FTP-Befehlen benötigt wird.
    • FTP Server Passive (FTP Passive Traffic-in): Sie definiert den Port-Bereich für den Aufbau der Datenverbindung durch den Client.
    • FTP Server Secure (FTP SSL Traffic-in): FTP über SSL läuft über den TCP-Port 990 und diese Regel öffnet ihn.

    Zu diesem Zweck öffnet man Windows Defender Firewall mit erweiterter Sicherheit und wechselt zur Liste mit den eingehenden Regeln und schaltet sie über den Befehl Regel aktivieren frei.

    Firewall-Regeln für den FTP-Server aktivieren

    Ergänzend zu FTP Passive Traffic-in öffnet man das Applet FTP Firewall Support, indem man im IIS-Manager unter Verbindungen zum obersten Knoten wechselt. Dort prüft man, ob der gewünschte Port-Range eingetragen ist. Klickt man im Kontext einer Site auf dieses Applet, dann ist das Eingabefeld für den Port-Bereich ausgegraut.

    Port-Bereich für Verbindungen im passiven Modus anpassen

    Abschließend empfiehlt es sich, den FTP-Service neu zu starten, damit die Firewall-Regeln greifen und man sich nicht unnötig mit der Suche nach der Ursache für abgewiesene FTP-Verbindungen herumplagen muss.

    In einer PowerShell-Sitzung mit erhöhten Rechten gibt man dafür folgenden Befehl ein:

    Restart-Service FTPSVC

    Nun sollten Clients in der Lage sein, sich mit dem FTP-Server zu verbinden. Verwendet man ein selbstsigniertes Zertifikat, dann erhält man eine Warnung, wonach dieses nicht vertrauenswürdig ist. Diese lässt sich etwa in Filezilla künftig durch das Anhaken der entsprechenden Option vermeiden.

    Warnung des FTP-Clients vor einem nicht vertrauenswürdigen Zertifikat

    Wenn die Kommunikation mit dem Fehler 530 abbricht, dann sollte man im ersten Schritt prüfen, ob das korrekte Root-Verzeichnis in der Konfiguration der Site hinterlegt ist. Außerdem sollte man bei dieser Gelegenheit sicherstellen, ob die Zugriffsrechte ausreichen.

    Das gilt besonders für angemeldete Benutzer, die in ihrem Home-Verzeichnis landen. Um welches es sich dabei handelt, kann man im IIS Manager unter FTP User Isolation bestimmen.

    Virtuelle Verzeichnisse und Filter

    Virtuelle Verzeichnisse dienen dazu, externe Ordner in den FTP-Verzeichnisbaum einzuhängen. Zum Beispiel könnte man c:\users\public\bilder für Clients unter /bilder zugänglich machen, auch wenn das Stammverzeichnis der FTP-Site unter c:\inetpub\ftproot liegt.

    Virtuelles Verzeichnis für den FTP-Server anlegen

    Eine weitere Funktion für die Anpassung des FTP-Servers sind die so genannten Anforderungsfilter. Mit ihrer Hilfe lässt sich festlegen, welche Dateitypen er übertragen soll und welche er blockiert.

    Übertragung von ausführbaren Dateien mittels Anforderungsfilter verhindern

    Weitere Filter lassen sich anwenden, um bestimmte IP-Adressen oder Domänen explizit zuzulassen oder auszuschließen.

    Zusammenfassung

    Windows enthält sowohl im Client- als auch im Server-Betriebssystem einen FTP-Server, der sich als optionales Feature bzw. als Rolle hinzufügen lässt. Seine Administration erfolgt über die GUI des IIS-Managers.

    Dort lassen sich alle wesentlichen Einstellungen konfigurieren, darunter die Berechtigungen der Benutzer sowie die SSL-Optionen. Für die sichere Übertragung von Dateien kann man aus der IIS-Konsole ein selbstsigniertes Zertifikat erstellen oder eine Anforderung an eine AD CA bzw. eine externe Zertifizierungsstelle senden.

    Eine besondere Herausforderung bei FTP ist die Konfiguration der Firewall. Die Installation des FTP-Servers fügt drei Regeln hinzu, die man aktivieren muss, wenn man sichere Verbindungen im passiven Modus aufbauen möchte.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links