Direkter Datentransfer zwischen zwei Servern
Hallo zusammen,
das Problem ist etwas komplexer.
Wir haben zwei Server (2012 R2 Standard), nennen wir sie IIS und ARCHIV. Auf IIS läuft, wie der Name sagt, ein IIS 8 mit FTP-Funktionalität.
Dateien werden über FTP auf diesen Server geladen und landen entsprechend im Verzeichnis C:\inetpub\ftproot.
Auf ARCHIV läuft eine Archivierungssoftware, die Dateien aus einem angegebenen Verzeichnis holt und in ein Archiv packt.
Beide Server befinden sich im selben Netz.
Nun folgendes Problem:
Es wird ein Skript verwendet, das eine WebConfiguration hinzufügt. So wie ich das verstehe, muss ich die FTP-Verzeichnisse innerhalb von C:\inetpub\ anlegen, sonst funktioniert das Skript nicht. Nun wäre der erste Gedanke, C:\inetpub\ftproot für einen bestimmten User freizugeben und als Netzvolume auf ARCHIV anzulegen. Das funktioniert allerdings nicht, da die Archivierungssoftware keine Dateien aus Netzlaufwerken holt. Sie akzeptiert nur lokale Volumes.
Die aktuelle Lösung ist, das Verzeichnis, das in der Archivierungssoftware auf ARCHIV eingestellt ist, als Netzvolume auf IIS anzulegen und den Inhalt von C:\inetpub\ftproot regelmäßig per Copy-Item hineinzukopieren.
Das ist natürlich alles andere als optimal. Es ist problematisch, wenn es durchläuft und gerade Dateien hochgeladen werden, und es ist ein weiterer Zwischenschritt und damit eine Fehlerquelle.
Wäre natürlich großartig, wenn ich das FTP-Verzeichnis auf die Freigabe leiten, oder die Freigabe als lokales Verzeichnis anlegen könnte. Wobei letzteres, soweit ich weiß, nicht geht. Kennt irgendjemand eine Alternative, die funktionieren könnte?
Gruß
Irolan
das Problem ist etwas komplexer.
Wir haben zwei Server (2012 R2 Standard), nennen wir sie IIS und ARCHIV. Auf IIS läuft, wie der Name sagt, ein IIS 8 mit FTP-Funktionalität.
Dateien werden über FTP auf diesen Server geladen und landen entsprechend im Verzeichnis C:\inetpub\ftproot.
Auf ARCHIV läuft eine Archivierungssoftware, die Dateien aus einem angegebenen Verzeichnis holt und in ein Archiv packt.
Beide Server befinden sich im selben Netz.
Nun folgendes Problem:
Es wird ein Skript verwendet, das eine WebConfiguration hinzufügt. So wie ich das verstehe, muss ich die FTP-Verzeichnisse innerhalb von C:\inetpub\ anlegen, sonst funktioniert das Skript nicht. Nun wäre der erste Gedanke, C:\inetpub\ftproot für einen bestimmten User freizugeben und als Netzvolume auf ARCHIV anzulegen. Das funktioniert allerdings nicht, da die Archivierungssoftware keine Dateien aus Netzlaufwerken holt. Sie akzeptiert nur lokale Volumes.
Die aktuelle Lösung ist, das Verzeichnis, das in der Archivierungssoftware auf ARCHIV eingestellt ist, als Netzvolume auf IIS anzulegen und den Inhalt von C:\inetpub\ftproot regelmäßig per Copy-Item hineinzukopieren.
Das ist natürlich alles andere als optimal. Es ist problematisch, wenn es durchläuft und gerade Dateien hochgeladen werden, und es ist ein weiterer Zwischenschritt und damit eine Fehlerquelle.
Wäre natürlich großartig, wenn ich das FTP-Verzeichnis auf die Freigabe leiten, oder die Freigabe als lokales Verzeichnis anlegen könnte. Wobei letzteres, soweit ich weiß, nicht geht. Kennt irgendjemand eine Alternative, die funktionieren könnte?
Gruß
Irolan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 277391
Url: https://administrator.de/contentid/277391
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
17 Kommentare
Neuester Kommentar
So wie ich das verstehe, muss ich die FTP-Verzeichnisse innerhalb von C:\inetpub\ anlegen, sonst funktioniert es nicht.
Da liegst du falsch, das Verzeichnis für den FTP-Server kann auch auf einem Netzlaufwerk, oder SAN / NAS liegen, das ist kein Problem, solange du dort entsprechende NTFS Zugriffsrechte setzen kannst.Entweder du bindest das Verzeichnis als Laufwerk auf dem Server ein, oder du kannst auch mit UNC-Pfad arbeiten.
Gruß grexit
Ich würde mir erst mal deinen Befehl nochmal richtig anschauen, da stimmt so einiges nicht:
https://technet.microsoft.com/de-de/library/ee807834.aspx
Und außerdem müssen natürlich die ACLs des Zielpfades passen, d.h. die User müssen darauf zugreifen dürfen und selbstredend der IIS-Account !
Das wäre ja noch schöner wenn ich den Pfad nirgendwo anders hin verpflanzen könnte, als InetPub... ist also Quatsch
https://technet.microsoft.com/de-de/library/ee807834.aspx
Und außerdem müssen natürlich die ACLs des Zielpfades passen, d.h. die User müssen darauf zugreifen dürfen und selbstredend der IIS-Account !
Das wäre ja noch schöner wenn ich den Pfad nirgendwo anders hin verpflanzen könnte, als InetPub... ist also Quatsch
Du musst bei -Location den Namen der FTP-Site vorneanstellen:
dann klappt dat auch hier gerade erfolgreich getestet.
Komplett dann also
-Location "FTPSITE/NamedesUnterordners"
Komplett dann also
Add-WebConfiguration "/system.ftpServer/security/authorization" -value @{accessType="Allow";users=$Username;permissions=3} -PSPath IIS:\ -location "FTPSITENAME/$Username"
Genau das ist es ja, was der Befehl tut. Er gibt dem User das Zugriffsrecht auf sein Verzeichnis.
Eben nicht, dieser Befehl tut das nur auf FTP-Server Ebene, aber nicht auf NTFS ACL Ebene ! Dort müssen die User ebenfalls entsprechende Rechte besitzen.
icacls is your friend für die NTFS Rechte !
D.h du nutzt keine Windows Accounts für die Auth (Standard Auth / PassThrough) sondern IISManagerAuth ?
In diesem Fall musst du dem Account Network Service die benötigten Rechte den Verzeichnissen und den Config-Dateien zuweisen:
Zitat aus (http://windowsitpro.com/networking/securing-ftp-sites-using-ftp-publish ..)
In diesem Fall musst du dem Account Network Service die benötigten Rechte den Verzeichnissen und den Config-Dateien zuweisen:
Zitat aus (http://windowsitpro.com/networking/securing-ftp-sites-using-ftp-publish ..)
IIS Manager works with the built-in Network Service to authenticate IIS Manager users to resources. Therefore, we need to grant NTFS Modify permission for the Network Service on the FTPSITE1 folder, and Read permission for the IIS configuration files. To grant NTFS these permissions, open a command prompt as an administrator and run the following four CACLS commands to add ACLs for the Network Service:
cacls "%systemdrive%\windows\system32
\inetsrv\config" /g "network service":r /e
cacls "%systemdrive%\windows\system32
\inetsrv\config\redirection.config"
/g "network service":r /e
cacls "%systemdrive%\windows\system32
\inetsrv\config\administration.config"
/g "network service":r /e
cacls "%systemdrive%\inetpub\ftpsite1"
/g "network service":c /e
Finally, start your FTP client and connect to FTPSITE1 with the IIS Manager user (remoteuser) and the password you assigned.
Die Fehlermeldung sagst doch schon nehme icacls
icacls /?
zeigt dir die Verwendung der Parameter ...
Naja icacls verwendet schon andere Parameter
http://www.iis.net/learn/publish/using-the-ftp-service/configure-ftp-wi ...
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R
lüpt problemlos ...
Kannst du ja von mir aus auch über die GUI der Files machen ...wenn du mit der Kommandozeile auf Kriegsfuß stehst.
http://www.iis.net/learn/publish/using-the-ftp-service/configure-ftp-wi ...
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R
lüpt problemlos ...
Kannst du ja von mir aus auch über die GUI der Files machen ...wenn du mit der Kommandozeile auf Kriegsfuß stehst.
Zitat von @Irolan:
Ok, das hatte ich schon so eingestellt. Ich benutze nicht den Network Service sondern einen speziellen Windows-User, aus Sicherheitsgründen. Nennen wir den FTPService.
Falsch, du musst hier "Network Service" nehmen, hast du die Seite überhaupt mal gelesen ??Ok, das hatte ich schon so eingestellt. Ich benutze nicht den Network Service sondern einen speziellen Windows-User, aus Sicherheitsgründen. Nennen wir den FTPService.
Zitat:
The "Network Service" account is used by the COM process that handles authentication extensibility; therefore, you must grant the account specific permissions to certain folders to enable this form of authentication. To grant the "Network Service" account "read" permissions to the IIS "config" folder: