FTP mit IIS auf WHS 2011 (passive Mode)
Verfasst: 14. Mai 2012, 21:39
Analog zu FTP mit Filezilla Server (passive Mode) hab ich jetzt auch den FTP Server des IIS zum Laufen gebracht. Auch hier will ich nicht diskutieren in welchen Szenarien FTP sinnvoll ist, aber der für wesentliche Unterschied zwischen dem FTP Server des IIS 7.5 (WHS 2011) und Filezilla ist, dass der IIS die normale Benutzeradministration, Zertifikate (auch das *.homeserver.com) und den Updatemechanismus von Windows verwendet und damit weniger Arbeit macht und die Passwörter aller Benutzer für FTP die gleichen wie sonst sind.
Wie im anderen Tutorial hab ich nur aufgeführt, was nicht der Default ist oder mir wesentlich erschien, aber wenn Fragen kommen kann das natürlich ausführlicher werden. Viele Informationen findet man unter http://www.iis.net/download/FTP oder z.B. http://www.marc-lognoul.me/itblog-en/pa ... rvice.aspx. Und manche Schritte waren auch Versuch und Irrtum, kann sein dass nicht jeder Schritt 100% notwendig ist. Bitte achtet darauf in den Bildern nach unten zu scrollen, teilweise sind mehrere Schritte zusammenkopiert.
Wie im anderen Tutorial hab ich nur aufgeführt, was nicht der Default ist oder mir wesentlich erschien, aber wenn Fragen kommen kann das natürlich ausführlicher werden. Viele Informationen findet man unter http://www.iis.net/download/FTP oder z.B. http://www.marc-lognoul.me/itblog-en/pa ... rvice.aspx. Und manche Schritte waren auch Versuch und Irrtum, kann sein dass nicht jeder Schritt 100% notwendig ist. Bitte achtet darauf in den Bildern nach unten zu scrollen, teilweise sind mehrere Schritte zusammenkopiert.
- Festlegung welche Ports verwendet werden soll. Für die Controlverbindung ist Port 21 Standard, für Data kann man fast beliebige Ports wählen, sie müssen nur im IIS, der Windows-Firewall (passiert automatisch) und im Router einheitlich eingetragen werden. Ich hab mich für die Ports 2200 bis 2299 entschieden.
- Aktivierung der Rollenfeatures im Servermanager: siehe Links oben
- Anlegen der FTP Site im Internet Information Services Manager: siehe Links oben, mit folgenden Eingaben: Die Berechtigungen werden über die Ordnerberechtigungen weiter eingeschränkt. Anschließend müssen noch die Benutzerisolation und Firewallunterstützung der Site konfiguriert werden: Die Ports müssen wie oben definiert eingetragen werden, die externe Adresse kann erstmal leer bleiben.
- Erweiterte Einstellungen öffnen und dort ID und Name notieren - wird später für Powershell gebraucht.
- Konfiguration des Routers (Portforwarding). Hängt natürlich vom Router ab, daher keine Bilder. Ganz wichtig ist dass auch hier die gleichen Ports weitergeleitet werden wie sie im IIS eingetragen sind.
- Aktivierung PowerShell Skripterweiterungen für den IIS. Dazu im Startmenu Powershell eingeben und Windows Powershell Modules einmalig ausführen:
- Anlegen eines Powershell Skripts zum Eintragen der dynamischen IP Adresse für die oben angelegte Site (also Name und ID entsprechend ändern, und auch die eigene Domain eintragen) - bei mir gespeichert als FTPDynamicIP.ps1 :
Code: Alles auswählen
import-module WebAdministration $ip=[System.Net.Dns]::GetHostAddresses("<eigene Domain, DynDNS oder *.homeserver.com>")| Select-Object -ExpandProperty IPAddressToString Set-WebConfigurationProperty -filter "/system.applicationHost/sites/site[@name='<name der Site>' and @id='<ID der Site>']/ftpServer/firewallSupport" -name externalIp4Address -value $ip
- Anlegen eines Batchs das das Powershell Skript ruft - bei mir gespeichert als FTPDynamicIP.bat: Das Protokollieren der Uhrzeit hilft beim Debuggen, ist sonst entbehrlich. Zum Ausführen braucht man aktivierte Administrationsrechte.
Code: Alles auswählen
powershell -file FTPDynamicIP.ps1 echo IP updated at %date% %time% >>FTP.log
- Anlegen eines automatisierten Tasks zum Eintragen der dynamischen IP Adresse beim Aufwachen aus dem Standby. Ich verwende dazu einen Event von Lightsout als Trigger. Das Verzeichnis und das Programm hängen natürlich davon ab in welchem Verzeichnis man das Skript bzw. den Batch gespeichert hat.
- Anlegen eines Verzeichnisses LocalUser unter c:\inetpub\ftproot.
- Anlegen der Benutzerverzeichnisse unter C:\inetpub\ftproot\LocalUser. Für jeden Benutzer ein Verzeichnis oder einen Link anlegen, der definiert auf was der Benutzer zugreifen darf. Z.B. erlaubt mklink /d C:\inetpub\ftproot\LocalUser\Joachim d:\serverfolders dem Benutzer Joachim den Zugriff auf alle Serverordner die auf D:\ liegen. Mit geeigneten Links kann man sich die Arbeit deutlich vereinfachen.