tutter
Goto Top

S-FTP Server unter IIS

Hallo Leute,

ich möchte einen S-FTP-Server aufsetzen unter Windows. Ich möchte (muss) den IIS dafür nutzen.
Um eben S-FTP zu ermöglichen habe ich ein eigenes SSL Zertifikat erstellt. Jedoch ärgert es mich das mir das SSL Zertifikat zum Download angeboten wird wenn ich von einem Client über ein FTP Prog auf den S-FTP-Server will.

Was muss ich einstellen ? Ich möchte das er meckert und keine Verbindung aufbaut! So lange - bis ich den Client das Zertifikat installiert habe.

Content-ID: 266438

Url: https://administrator.de/forum/s-ftp-server-unter-iis-266438.html

Ausgedruckt am: 23.12.2024 um 14:12 Uhr

108012
108012 16.03.2015 um 10:48:16 Uhr
Goto Top
Hallo,

wäre mir neu das MS Windows SFTP nutzt, ich dachte bis dato immer
das es eben nur FTP/S ist!

Gruß
Dobby
114757
114757 16.03.2015 aktualisiert um 10:52:35 Uhr
Goto Top
Du meinst wohl FTP-S ein S-FTP Server liefe nämlich über SSH...

Gruß jodel32
colinardo
colinardo 16.03.2015 aktualisiert um 11:24:34 Uhr
Goto Top
Hallo Tutter,
wie meine Vorgänger schon erwähnt haben gibt es beim IIS nur FTP-S und kein SFTP.
Was muss ich einstellen ? Ich möchte das er meckert und keine Verbindung aufbaut! So lange - bis ich den Client das Zertifikat installiert habe.
Das von dir gewünschte Verhalten kannst du nicht mit dem Server steuern, das ist normalerweise in die Logik des verbindenden Clients integriert. Der Client ist dafür zuständig zu prüfen ob er dem Zertifikat vertraut oder nicht. Wenn also das Client-Programm solch eine Prüfung nicht eingebaut hat muss der User das Zertifikat selber anhand des Fingerabdrucks prüfen. So ist die normale Vorgehensweise.

Der Server präsentiert nur das Zertifikat, der Client muss prüfen !

Beispiel eines FileZilla-Clients.

2b1a60bc5f77f69601efd8d95f4989ca

Grüße Uwe
Tutter
Tutter 16.03.2015 um 11:45:29 Uhr
Goto Top
ja ich steck nicht so tief in dem Thema drin! möchte eben die Sicherheit stark erhöhen! von nix gegenüber FTP-S ist das für mich schon sehr gut.

Habe ich den sonst noch irgendwelche Möglichkeiten? Sprich wenn der Client kein Zertifikat hat ihn bewusst außen vor zu lassen? Oder habe ich einen falschen Denkansatz. Denn wenn ich Colinardo richtig verstanden habe, stellt mein Server eh stehts die Zertifikate zur Verfügung der Client muss nur entscheiden ob er diese auch nutzen möchte.
colinardo
colinardo 16.03.2015 aktualisiert um 11:57:05 Uhr
Goto Top
FTPs ist ein Zertifikats one-way und nur zur Verschlüsselung der Daten gedacht. Die Clients können sich hier nicht selber mit einem Zertifikat ausweisen, denn das explizite TLS oder SSL wird nur zum Verschlüsseln der Verbindung genutzt und nicht zur Authentifizierung der Clients. Dafür solltest du stattdessen einen SSH-Server (S-FTP) benutzen.
Wie z.B. FreeSSHD oder BitVise WinSSHD oder FileZilla-Server, die unterstützen alle SCP-Filetransfer mit vorheriger Authentifizierung über Client-Zertifikate.

Grüße Uwe
108012
108012 16.03.2015 um 11:49:53 Uhr
Goto Top
ja ich steck nicht so tief in dem Thema drin! möchte eben die
Sicherheit stark erhöhen! von nix gegenüber FTP-S ist das für
mich schon sehr gut.
Sehe ich auch so, das war auch nur damit wir hier nicht aneinander
vorbei reden.

Habe ich den sonst noch irgendwelche Möglichkeiten?
Man kann auch FileZilla FTPServer installieren
und der kann dann wiederum richtiges S/FTP!!!

Gruß
Dobby
Tutter
Tutter 17.03.2015 um 13:35:01 Uhr
Goto Top
Danke erstmal für die Hilfe der FTP-S läuft und klappt auch unter Filezilla sehr gut! aber bekommt man auch einen Connect über CMD mit FTP-S hin finde keinen Code bis jetzt der das ermöglicht!

Vielleicht könnt ihr noch mal helfen?
colinardo
colinardo 17.03.2015 aktualisiert um 14:00:39 Uhr
Goto Top
aber bekommt man auch einen Connect über CMD mit FTP-S hin
Aber sicher, dafür gibts WinSCP, damit geht das problemlos.

Für einen FTPs Server sieht die Open-Zeile im WinSCP Script bspw. so aus:
open ftps://martin:mypassword@example.com/ -explicit -certificate="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
http://winscp.net/eng/docs/scriptcommand_open

An Stelle der xx kommt der Fingerprint des Zertifikats. Wenn man den Fingerprint nicht nutzen will kann man stattdessen auch jedes Zertifikat akzeptieren indem man ein Sternchen angibt (unsicher).
Tutter
Tutter 17.03.2015 um 16:02:10 Uhr
Goto Top
Sorry nee das raff ich nicht colinardo! Kannst du vielleicht mal ein Beispiel in dem CMD aufzeigen? CMD meckert schon bei dem open rum
colinardo
colinardo 17.03.2015 aktualisiert um 17:15:23 Uhr
Goto Top
Zitat von @Tutter:
CMD meckert schon bei dem open
rum
Neeeee das kommt in ein WinSCP-Script, les doch mal bitte die Doku im Link !

Ein Beispiel findest du auf der Seite ganz unten:
http://winscp.net/eng/docs/scripting

Textdatei mit folgendem Inhalt erstellen (z.B. script.txt):
option confirm off
open ftps://user:mypassword@example.com:21/ -explicit -certificate='*'  
cd /home/user
close
exit
und dann das Script mit WinSCP ausführen:
winscp.com /script=script.txt
Tutter
Tutter 17.03.2015 aktualisiert um 16:45:03 Uhr
Goto Top
ooohhhh japp habe es gerade gefunden!

aktuell gebe ich folgendes ein
Zum Testen gibt es einen User der FTP-User heißt und dessen Passwort genauso ist.
Dann die Ip Adresse noch und wenn man nach certificate= ein * angibt wird jedes Zertifikat akzeptiert (Fingerprint geht auch auch nicht)

Resultat ist immer Command not understood


open ftps://FTP-User:FTP-User@172.20.10.144/ -explicit -certificate=*

Was ist denn daran falsch?
colinardo
colinardo 17.03.2015 aktualisiert um 17:11:06 Uhr
Goto Top
Zitat von @Tutter:
Was ist denn daran falsch?
Du gibst das nicht wirklich so in die CMD ein ?? face-big-smile
colinardo
Lösung colinardo 17.03.2015, aktualisiert am 25.03.2015 um 20:48:16 Uhr
Goto Top
Also dann nochmal für Anfänger, diesmal für die direkte Eingabe in die CMD ohne Scriptdatei
WinSCP.com -command "option confirm off" "open ftps://FTP-User:FTP-User@172.20.10.144:21 -explicit -certificate='*'" "dir" "close" "exit"  
Geht mit einem IIS einwandfrei... Bitte beachte das du die winscp.com benutzt.

Hinweis: Bei älteren WinSCP Versionen muss es statt -explicit -------> -explicittls lauten !

Du hattest auch die Portangabe nicht mit drin...

Hinweis: Im Beispiel verbindet sich das Script nur und listet die Ordner im FTP-Root des Users. Die entsprechenden Commands musst du dann noch hinzufügen.

Die Ausgabe sollte dann in etwa so aussehen:
confirm         off
Connecting to 172.20.10.144 ...
TLS connection established. Waiting for welcome message...
Connected
Starting the session...
Session started.
Active session: [1] FTP-User@172.20.10.144
D---------   0                           0              ..
D---------   0                           0 May  8 14:15 public
D---------   0                           0 Jul  3 13:32 testordner
Session 'FTP-User@172.20.10.144' closed.
No session.
Tutter
Tutter 25.03.2015 um 20:54:07 Uhr
Goto Top
also was mittlerweile ganz gut klappt ist das Skript hin zum FTP-S Server jedoch bekomme ich das Skript nicht hin Daten auszutauschen.

Ich habe mich an dieses Tutorial gehalten :https://www.youtube.com/watch?v=E_hgZLCq4Zk

Ich habe also ein .bat erstellt die local2remote.bat heißt und folgenden Aufbau hat

winscp.exe /console /script=local2remote.txt
diese Verweißt auf local2remote.txt
Inhalt:
open datastorageunit
synchronize remote "C:\Video\Transfer\" "/"
exit

meine Verbindung steht (kann ich auch im IIS Server sehen) da ich mich auf dem "root" befinde habe ich eben "/" angegeben.
Trotzdem klappt das Skript nicht was mach ich falsch?
114757
114757 25.03.2015 aktualisiert um 22:03:55 Uhr
Goto Top
Trotzdem klappt das Skript nicht was mach ich falsch?
Liest du eigentlich mal die Kommentare von @colinardo ? Echt jetzt noch immer nicht geschafft ?!
"Klappt nicht" ist keine Fehlermeldung!!

1. Nutze besser winscp.com dann brauchst du auch den /Console Parameter nicht
2. Schreibe das Script so
option confirm off
open datastorageunit
synchronize remote C:\Video\Transfer /
close
exit
Geht hier wie @colinardo auch schon schreibt einwandfrei.

Also mehr Info von deiner Seite nötig. Und schalte mal die Firewall aus, nicht das es daran liegt.

Gruß jodel32
Tutter
Tutter 26.03.2015 um 09:51:29 Uhr
Goto Top
@114757 japp lese das schon bin aber halt noch totaler Neuling im Bereich Batch. Habe aber herausgefunden an was es liegt!

dieses [code] open datastorageunit [\code]
bringt nur die Meldung Suche nach entfernten Rechner ... dann passiert aber nix mehr !

der Connect steht aber schon! denn wenn ich put oder synchronize remote eingebe geht das alles!

Nun stellt sich mir nur die Frage wie bekomme ich das jetzt in eine Batch?

[code]

C:\Program Files (x86)\WinSCP\WinSCP.com -command "option confirm off" "open ftps://FTP-User:FTP-User@172.20.10.144:21 -explicit -certificate='*'"
"synchronize remote C:\FTP\"

"close"

"exit"
[/code]

wenn ich das alles schön hinter einander in eine cmd eingebe und bestätige funktioniert das
114757
114757 26.03.2015 aktualisiert um 09:57:57 Uhr
Goto Top
Zitat von @Tutter:
Nun stellt sich mir nur die Frage wie bekomme ich das jetzt in eine Batch?
Na so wie @colinardo es oben bereits mehrfach geschrieben hat, wo ist das Problem ??
S-FTP Server unter IIS

Du hast keine Anführungszeichen um den Programmpfad ! Dieser enthält Leerzeichen deshalb ist das Pflicht....
"C:\Program Files (x86)\WinSCP\WinSCP.com" -command "option confirm off" "open ftps://FTP-User:FTP-User@172.20.10.144:21 -explicit -certificate='*'"   
 "synchronize remote C:\FTP\" "close" "exit"  
Tutter
Tutter 26.03.2015 um 10:00:48 Uhr
Goto Top
hmmmm hatte ich eigentlich schon so getestet aber ok jetzt geht es ! danke dir und danke auch für deine Geduld!
Tutter
Tutter 26.03.2015 um 10:50:54 Uhr
Goto Top
Sorry habe mich doch zu früh gefreut klappt leider nicht ganz. Anmeldung bis hin zur Zeile winscp> klappt aber er führt das "synchronize remote C:\FTP\" nicht aus! ich muss es stets per Hand eingeben.

Möchte ich aber nicht *g*
114757
114757 26.03.2015 um 10:54:08 Uhr
Goto Top
Dir ist nicht mehr zu helfen, sorry. Und du bist ein Admin, da kommen mir aber herbe Zweifel ??