FTP mit IIS auf WHS 2011 (passive Mode)

Hier können Anleitungen für die verschiedensten Themengebiete gepostet werden.
Antworten
JoachimL
WHS-Experte
Beiträge: 1228
Registriert: 21. Sep 2009, 22:48

FTP mit IIS auf WHS 2011 (passive Mode)

Beitrag von JoachimL »

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.
  • 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:
    ftpsite.jpg
    ftpsite.jpg (125.5 KiB) 16097 mal betrachtet
    Die Berechtigungen werden über die Ordnerberechtigungen weiter eingeschränkt. Anschließend müssen noch die Benutzerisolation und Firewallunterstützung der Site konfiguriert werden:
    FTPKonf.jpg
    FTPKonf.jpg (264.16 KiB) 16097 mal betrachtet
    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.
    ftpprop.jpg
    ftpprop.jpg (75 KiB) 16049 mal betrachtet
  • 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:
    powershell.jpg
    powershell.jpg (29.12 KiB) 16097 mal betrachtet
  • 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:

    Code: Alles auswählen

    powershell -file FTPDynamicIP.ps1
    echo IP updated at %date% %time% >>FTP.log
    
    Das Protokollieren der Uhrzeit hilft beim Debuggen, ist sonst entbehrlich. Zum Ausführen braucht man aktivierte Administrationsrechte.
  • Anlegen eines automatisierten Tasks zum Eintragen der dynamischen IP Adresse beim Aufwachen aus dem Standby. Ich verwende dazu einen Event von Lightsout als Trigger.
    Task.jpg
    Task.jpg (319.4 KiB) 16097 mal betrachtet
    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.
Viel Erfolg!
WHS r.i.p. - Software die nicht mehr gewartet wird sollte man nicht mehr einsetzen.
Bei mir laufen drei Dell T20, inzwischen alle unter Hyper-V-2019. Darauf viele virtuelle Maschinen, darunter Windows 10 Pro, Ubuntu 18.04/20.04 LTS (teilweise mit Docker), und auch mal andere. Ein T20 läuft 7*24 und stellt u.a. Mailcow-Dockerized und einen Samba-Domain-Controller (ein 2. läuft auf einem NUC) bereit. Klingt vielleicht seltsam, aber so ist das System - alle - mit Bitlocker verschlüsselt und kann vollständig und konsistent gesichert werden - beides sonst unter Linux schwierig bis unmöglich. Zum Sichern dient das von mir entwickelte Lindenberg Software Backup.
Fragen bitte nicht per PN sondern im Forum - dann haben andere auch was davon. Ich poste hier in meiner Freizeit, Ungeduld ist meiner Meinung nach fehl am Platz...
JoachimL
WHS-Experte
Beiträge: 1228
Registriert: 21. Sep 2009, 22:48

Re: FTP mit IIS auf WHS 2011 (passive Mode)

Beitrag von JoachimL »

Inzwischen habe ich noch eine Anwendung ausprobiert die FTP innerhalb meines Netzwerks verwendet: g4u, ein Imagebackuptool. Oft verwende ich für Services auch intern die externen Namen, aber bei FTP ist der Performancenachteil ungefähr Faktor 20 weil der Verkehr dann über die lahme Fritzbox läut statt direkt. Und weil die IP-Adresse auch in den Daten übertragen wird muss eine zweite Konfiguration im IIS, eine zweite FTP-Site her. Das Anlegen läuft wie oben beschrieben, aber irgendwie müssen die beiden Sites ja unterschieden werden..
Es gibt dafür zwei Lösungsmöglichkeiten:
  1. Eine zweite IP-Adresse. Bietet sich vor allem an wenn der WHS sowieso eine statische IP-Adresse hat, dann richtet man einfach eine zweite ein (Netzwerk- und Freigabecenter, Adaptereinstellungen ändern, LAN (oder wie auch immer der Adapter heißt), Eigenschaften, IPv4, Eigenschaften, Erweiterte Einstellungen. Sieht dann etwa so aus:
    ip.jpg
    ip.jpg (185.27 KiB) 16031 mal betrachtet
    Eine der IP-Adressen ist dann für internes FTP, im FTP Site für die interne Nutzung stellt man diese IP ein und die externe IP (Firewallunterstützung) bleibt leer. Die andere trägt man bei der Site für die externe Nutzung ein. Vorteil dieser Variante: man muss in der Windows Firewall nichts ändern, beide Sites können auf Port 21 reagieren.
  2. Ein anderer Port, ich hab mal Port 22 verwendet und der FTP Site für externe Nutzung zugeordnet. Damit die Site von aussen trotzdem ohne Port erreichbar ist, hab ich beim Portforwarding ein Mapping von 21 nach 22 definiert. In der Windowsfirewall ist Port 22 aber geschlossen, also braucht es eine neue Regel wie im folgenden abgebildet:
    ftpfirewall.jpg
    ftpfirewall.jpg (248.59 KiB) 16031 mal betrachtet
IP-Adresse oder Port trägt man im IIS-Manager bei Bindungen bearbeiten (rechts click auf Site oder bei den Aktionen) ein. Das Powershellskript muss natürlich die externe Site aktualisieren.
Mit Filezilla geht das ganze übrigens gar nicht. Wenn man dort eine externe IP einträgt wird die immer verwendet, was nicht nur Performancenachteile haben kann sondern auch manche Clients Fehlermeldungen werfen lässt.
WHS r.i.p. - Software die nicht mehr gewartet wird sollte man nicht mehr einsetzen.
Bei mir laufen drei Dell T20, inzwischen alle unter Hyper-V-2019. Darauf viele virtuelle Maschinen, darunter Windows 10 Pro, Ubuntu 18.04/20.04 LTS (teilweise mit Docker), und auch mal andere. Ein T20 läuft 7*24 und stellt u.a. Mailcow-Dockerized und einen Samba-Domain-Controller (ein 2. läuft auf einem NUC) bereit. Klingt vielleicht seltsam, aber so ist das System - alle - mit Bitlocker verschlüsselt und kann vollständig und konsistent gesichert werden - beides sonst unter Linux schwierig bis unmöglich. Zum Sichern dient das von mir entwickelte Lindenberg Software Backup.
Fragen bitte nicht per PN sondern im Forum - dann haben andere auch was davon. Ich poste hier in meiner Freizeit, Ungeduld ist meiner Meinung nach fehl am Platz...
poncho
Foren-Einsteiger
Beiträge: 1
Registriert: 7. Dez 2012, 18:01

Re: FTP mit IIS auf WHS 2011 (passive Mode)

Beitrag von poncho »

Hi,

die Anleitung hat mir sehr geholfen aber wie stelle ich denn die Passive-Ports ein? Wie in deinem Screenshot ist auch bei mir das Feld deaktiviert. Wie hast du die Ports da konfiguriert?
Antworten