Hier soll gezeigt werden, wie man den FTP-Server von Windows IIS einrichtet. Möchte man mit den OnBoard-Mitteln von Windows, den Internetinformationsdiensten (IIS), einen FTP-Server einrichten, kann das ganz schnell zum “pain in the ass” werden für jeden der nicht häufig damit zu tun hat. Es ist leider nicht so intuitiv einzurichten, wie man meint, und bis zum gewünschten Erfolg warten viele Stolpersteine. So kann es Stunden bis mehrere Tage dauern, ehe man alle Probleme als Gelegenheits-Adminstrator gelöst hast.
FTP Dienste aktivieren
Zu aller erst muss unter Windows-Features mindestens die IIS-Verwaltungskonsole und der FTP-Dienstaktiviert werden.
Dazu ruft man die Windows-Feature über Systemsteuerung -> Programme und Features -> Windows Features aktivieren oder deaktivieren auf.
Im Baum geht man dann zu Internetinformationsdienste und aktiviert unter FTP-Server den FTP-Dienst und unter Webverwaltungstools die IIS-Verwaltungsdienst und IIS-Verwaltungskonsole.
Dann öffnet man den Internetinformationsdienste(IIS)-Manager zum Beispiel über Start -> Windows-Verwaltungsprogramme.
Neue FTP Seite anlegen
Im IIS-Manager legt man dann durch Rechtsklick im linken Fenster auf Sites eine neue FTP-Seite mit FTP-Site hinzufügen… an.
Nun muss man einen FTP-Sitename vergeben, welcher individuell sein kann, und den physischen Pfad festlegen, unter welchem die Dokumente und Dateien gespeichert werden sollen. Auf diesen Pfad erfolgt dann der FTP-Zugriff von außen. Im Beispielbild wurde das Standardverzeichnis für den Webserver ausgewählt. Es sind aber auch andere physische Ordner möglich. Man kann später auch noch virtuelle Verzeichnisse festlegen, die auf Pfade außerhalb des angegebenen Physischen Pfads verweisen. Darauf soll hier aber nicht weiter eingegangen werden.
Anschließend klickt man auf Weiter.
Bindungs- und SSL-Einstellungen
Bei den Bindungs- und SSL-Einstellungen kann man Einstellungen zur Verschlüsselung vornehmen, sowie konkrete Hostnamen oder IP-Adressen dem FTP-Dienst zuweisen.
Die Zuweisung einer IP-Adresse bleibt in unserem Fall leer. Verwaltet man mehrere FTP-Server-Sites so muss jede an eine eigene IP-Adresse gebunden werden. Je nach Notwendigkeit kann man noch den Port ändern, falls der FTP-Standardport schon belegt ist und anderweitig verwendet wird. Standardmäßig ist dieser auf Port 21 eingestellt. Virtuelle Hostnamen kann man verwenden, wenn man im internen Netzwerk mit Domainnamen arbeitet.
Virtuelle Hostnamen interessiert uns an dieser Stelle auch nicht. Das ist in größeren Netzwerken interessant, wo man zum Beispiel mit Domainnamen (Domaincontrollern) arbeitet oder wenn man mehrere FTP-Server auf eine IP-Adresse binden ansprechen möchte.
Man sollte auf jeden Fall SSL zulassen oder besser SSL erforderlich aktivieren, damit die FTP-Verbindung zukünftig verschlüsselt aufgebaut wird. Man muss dazu noch ein SSL-Zertifikat auswählen. In unserem Fall wählen wir ein vorhandenes Zertifikat aus. Der IIS-Manager bietet auch die Möglichkeit sich ein eigenes Zertifikat zu erstellen (selbst signiert). Dieses wird natürlich nicht von allen Clients akzeptiert und es gibt entsprechende Warnmeldungen. Um dies zu vermeiden, braucht man ein öffentliches Zertifikat von einer entsprechenden Zertifizierungsstelle (CA).
Authentifizierungs- und Autorisierungsinformationen
Im nächsten Schritt kommen die Authentifizierungs- und Autorisierungsinformationen. Hier belassen wir erstmal die Standardeinstellungen. Dies wird nachträglich noch mal angepasst.
Zur Information: Lässt man Anonym aktiviert, kann man sich mit dem Benutzernamen Anonymous und der E-Mail-Adresse als Passwort anmelden.
Bei Standard wird die Anmeldung per Benutzername und Passwort auf den FTP-Server erforderlich. Es können dann dediziert Benutzergruppen (auch eines ActiveDirectory) oder Benutzerkonten festgelegt werden, die Zugriff erhalten dürfen.
FTP User einrichten für Zugriff von außen
Für den Zugriff von außen muss es also einen separaten User/Benutzer geben, der dem Windows-System bekannt ist und welcher entsprechende Berechtigungen hat.
Es muss unter Windows ein separater User eingerichtet werden. Das machen wir über die Konsole mit
net user ftpuser2 * /add
Man kann somit auch mehrere verschiedene Accounts anlegen, um zum Beispiel jeder berechtigten Person einen eigenen Account zuzuweisen.
Jetzt müssen dem neuen FTP-Account noch entsprechende Berechtigungen auf den Ordner der FTP-Site zugewiesen werden. Dies geht wieder über die Konsole mit
ICACLS c:\inetpub\wwwroot /grant ftpuser:(OI)(CI)(M)
Oder man macht Rechtsklick im IIS-Manager auf die FTP-Site und wählt Berechtigungen bearbeiten -> Sicherheit aus. Alternativ geht auch Windows Explorer Rechtklick auf den FTP-Ordern -> Eigenschaften –> Sicherheit.
Jetzt wählen wir im IIS-Manger wieder unsere FTP-Site an und gehen unter FTP-Authentifizierung und deaktivieren dort die anonyme Authentifizierung.
Danach geht man zur FTP-Authorisierung -> Zulassungsregel hinzufügen und fügt den eingerichteten FTP-User hinzu mit den Berechtigungen Lesen und Schreiben.
Jetzt würde man meinen, dass der Zugriff von einem FTP-Client theoretisch aus dem eigenen Netzwerk schon funktionieren sollte. Das wird aber in den meisten Fällen nicht funktionieren, weil man die Windows-Firewall auf dem Rechner auf dem der FTP-Server läuft entweder zu Testzwecken deaktivieren muss oder entsprechend auf den festgelegten Port konfigurieren muss.
Dazu ruft man die Windows-Firewall über das Startmenü auf oder nutzt Systemsteuerung->System und Sicherheit->Windows-Firewall. Geht auf Erweiterte Einstellungen -> Eingehende Regeln -> Neue Regel … -> Port und gibt dort die benötigten Ports frei. Wie wir gleich sehen werden, muss hier zum Schluss auch ein dynamischer Portbereich freigegeben werden.
Spätestens jetzt sollte der Zugriff mit unserem angelegten User-Account aus dem lokalen Netzwerk von einem FTP-Client funktionieren.
Was nicht funktionieren wird, ist der Zugriff von außerhalb des lokalen Netzwerks z.B. aus dem Internet. Hierzu muss man die entsprechenden Portfreigaben auch auf der Hardware-Firewall oder dem Router konfigurieren. Wie diese Einstellungen vorzunehmen sind, hängt vom jeweiligen Gerät ab. Bei der FRITZ!Box geht das unter Internet -> Freigaben -> Portfreigaben.
- Quad-Core-Dual-Port-2,5GbE-NAS mit Unterstützung für M.2-SSD-Caching und PCIe-Erweiterbarkeit für...
- 2,5GbE-Konnektivität Durch die Einrichtung der Portbindung mit den beiden integrierten 2,5GbE-Ports...
- M.2 SSD-Caching Zwei M.2 PCIe Gen 3-Steckplätze ermöglichen NVMe SSD-Caching oder...
- KI-gestützte Bilderkennung
- Sicherer Fernzugriff
- Snapshot Schutz gegen Ransomware
Portfreigaben Passives FTP
In den meisten Fällen wird man Passiven FTP-Zugriff konfigurieren, weil Aktiver FTP-Zugriff Client-seitig zu Problemen führen kann, da bei aktiven FTP die Verbindung zum Datenport durch den Server initiiert wird, was oft durch clientseitige Firewalls blockiert wird.
Will man Passives FTP konfigurieren, muss man wissen, dass dafür ein dynamischer Portbereich benötigt wird (>Port 1024). Hier baut der Client die beiden Portverbindungen für Steuerungsverbindung und für die Datenverbindung auf. Der Client sagt dem Server mit dem PASSV Befehl quasi, dass er auf den Port XXXXX lauscht. Dafür muss nun aber serverseitig der entsprechende Portbereich freigeschaltet sein.
Im IIS-Manager markiert man in der linken Baumstruktur den obersten Knoten und wählt dann FTP-Firewallunterstützung aus. Hier trägt man nun unter Datenkanal-Portbereich einen Portbereich (>1024) ein. Der hier definierte Portbereich muss nun auch noch in der Windows-Firewall und im Router bzw. der Hardware-Firewall freigegeben werden. (Der oberste Knoten muss angewählt werden, weil die Portfreigaben für alle FTP-Sites gelten, wenn man z.B. mehrere hat)
Hinweis: Vorher sollte man schauen, welche Portbereichsfreigaben der Router bzw. die Hardware-Firewall zulässt. Bei der derzeitigen FRITZ!Box-Version kann jeweils nur ein Portbereich von 255 Ports freigegeben werden.
Es geht oder es geht nicht!?
Jetzt ist der Moment gekommen, an dem auch der FTP-Zugriff von außen über das Internet funktionieren sollte. Und es stellen sich die Nackenhaare bei hochrotem Kopf und 180 Puls hoch, wenn es nach dieser Odyssee immer noch nicht geht! So der Fall bei mir, so dass die Ursachenforschung weiter ging, jedoch fehlten mir die Ansätze für weitere Fehlerquellen …Aarrrrgh!
Ich beobachtete nun die Meldungen und Kommandos meines FTP-Clients, in meinem Fall der Total Commander. Dabei viel mir irgendwann folgende Meldung auf:
227 Entering Passive Mode (188,103,164,96,228,201)
Verallgemeinert: 227 Entering Passive Mode (A,B,C,D,m,n)
Im Klammerausdruck konnte ich die ersten vier Zifferblöcke als die IP-Adresse (188.103.164.96) identifizieren, die ich vom ISP bekommen habe. Nun lag die Vermutung nahe, dass die verbleibenden beiden Zifferblöcke etwas mit dem Port zu tun habe. Jedoch ist das eine ungewöhnliche Notation. Wer weiß in welcher Norm oder Richtlinie diese Notation spezifiziert ist, bitte hier kommentieren! Jedenfalls lässt sich die Portnummer anhand m und n berechnen; es handelt sich quasi um eine Geradengleichung:
Port=256*m+n
Über diese Berechnung konnte ich feststellen, dass der angesprochene Port 58.569=256*228+201 weit außerhalb des freigegebenen Portbereichs lag. Wie konnte das sein? Wieder Ratlosigkeit.
Dynamischer Portbereich unter Windows
Unter Windows sind Standardwerte für den Dynamischen Portbereich definiert. In der Konsole kann man sich diesen Portbereich mit
netsh int ipv4 show dynamicport tcp
anzeigen lassen.
Das Ergebnis zeigt hier also einen Portbereich von 49152-65536. Innerhalb dieses Bereichs liegt auch der angesprochene Port 58.569. Ob es sich hierbei um einen Bug handelt, lässt sich schwer beurteilen. Wenn man nun aber den dynamischen Portbereich auf den im IIS FTP-Server definierten Portbereich festlegt, funktioniert auch der Zugriff übers Internet von außen. Das Festlegen des neuen Portbereichs erfolgt auch über die Konsole mit:
netsh int ipv4 set dynamicport tcp start=56792 num=255
Nachdem man diese Schritte alle vollzogen hatte, sollte einem erfolgreichem FTP-Zugriff nichts mehr im Wege stehen. Somit zeigt sich auf der einen Seite die Mächtigkeit des Windows FTP-Server, der für die meisten Admins wohl keine Wünsche und Möglichkeiten offen lässt und auf der anderen Seite die vielen zusätzlichen Stellschrauben des Windows-Systems, bei denen man zum Schluss nicht einmal mehr weiß, ob es schon ein Bug oder noch ein Feature ist.
- KEINE CD / KEIN USB
- AKTIVIERUNGSINFORMATIONEN AUF DER VERSENDETEN RECHNUNG
- Unbedingt die Installationsanleitung durchlesen, vorallem wenn HOME vorinstalliert ist.
- ✅ inkl. 64 Bit Tralion-DVD ✅
- ✅ Auditsicher, inkl. Lizenzdokumente ✅
- ✅ Garantierte Online Aktivierung ✅
perfektes howto – speziell die konfiguration der dynamischen ports!
Herzlichen Dank!
Nach 3 Stunden Fehlersuche, Firewall Anpassungen war es dein Eintrag in diesem Blog „netsh int ipv4 set dynamicport tcp start=56792 num=255“, welcher mir den Fehler offensichtlich gemacht hat.
SUPER!! Danke!!!
Seit Windos Server 2008 wird für passives FTP der Portbereich zwischen 49152-65536 verwendet.
It’s a feature, not a bug!
So macht man eine how to Erklärung . Alles auf dem Punkt gebracht auch mit Bildern so das es auch Anfänger verstehen können.
Danke
Danke für das Feedback!
Super Anleitung. Fand es nur teilweise verwirrend welcher Knoten im Baum links angewählt werden muss. Vielleicht bei den Schritten in denen das wichtig ist den Baum komplett mit drauf nehmen. Teilweise sind unterschiedliche knoten angewählt was mich etwas aus dem Konzept gebracht hat.