FTP Verbindung mittels AUTH TLS

Alles, was PHP betrifft, kann hier besprochen werden.

FTP Verbindung mittels AUTH TLS

Postby anselm » 27. April 2009 16:33

Hallo zusammen,

ich bin mit der Thematik beschäftigt eine FTP Verbindung mittels AUTH TLS über ein PHP Script herzustellen um Dateien zu verschieben.
Das Script soll auf einem Win 2003 Server laufen. Die Verbindung wird von Standort A zu Standort B über eine Firewall gesteuert auf der die IP des Rechners dafür freigeschalten ist.

Meine Versuche die Authentifizierung als Parameter mit zu übergeben scheitern leider.

Hier ein kleiner Schnipsel:
Code: Select all
$Stream = fopen("ftps://$user:$pass@$server/$filename", "w");

Die Gegenseite verlangt dazu noch den passiven Modus.

Die generelle Verbindung zwischen den beiden Standorten funktioniert mittels dem AddOn FireFTP vom Firefox.
Da man dort aber die Files händisch schieben muss, ist dies recht unpraktikabel.

Die Verbindung mittels ssh2_connect funktioniert nicht, da die Gegenstelle kein SSH erlaubt.
Die Verbindung mittels Standart FTP ist aus Sicherheitsgründen nicht erwünscht.
anselm
 

Re: FTP Verbindung mittels AUTH TLS

Postby Wiedmann » 27. April 2009 16:55

Meine Versuche die Authentifizierung als Parameter mit zu übergeben scheitern leider.

Warum?

- error_reporting auf E_ALL stellen und Meldungen lesen
- errog log vom Apache?
- log vom FTP Server?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: FTP Verbindung mittels AUTH TLS

Postby anselm » 27. April 2009 17:51

Hallo,

hier mal die Error Ausgabe.

erste Zeile....

Warning: copy() [function.copy]: connect() failed: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\xampp\htdocs\odbc\copy.php on line 6

Zweite Zeile....

Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\odbc\copy.php on line 6

Die Logfiles auf der Gegenseite darf ich nicht einsehen.

Meine zweite Variante:
Code: Select all
$source = "MeinFileName.zip";
$dest =  "ftps://$user:$pass@$host/$source";

if (!copy($source, $dest)){
   print ("nix");
}else{
      print ("Prima");
}


Noch eine Bemerkung; MeinFileName.zip wird auf dem Server angelegt, aber der Inhalt nicht.
anselm
 

Re: FTP Verbindung mittels AUTH TLS

Postby Wiedmann » 27. April 2009 18:12

Die Gegenseite verlangt dazu noch den passiven Modus.

Also Standardeinstellung bei dem FTP-Wrapper ist IMHO aktiver Modus.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: FTP Verbindung mittels AUTH TLS

Postby anselm » 27. April 2009 18:18

Hallo,

dass ist er, Aber ich brauche den passiven Modus. Wie kann ich diesen mittels Parameter übergeben?

Ein
Code: Select all
ftp_pasv($ftp,true);
kann ich nicht bei ftps:// übergeben, oder kann ich doch?
Wenn ja, wie und wo?
anselm
 

Re: FTP Verbindung mittels AUTH TLS

Postby Wiedmann » 27. April 2009 18:23

Code: Select all
ftp_pasv($ftp,true);

kann ich nicht bei ftps:// übergeben,

Das sind ja auch 2 verschiedene Stiefel.
- Das obige ist die FTP-Extension. Wenn du diese verwendest, könntest du auch ftp_pasv() verwenden.

- Das unterere ("ftps://"), ist ein Stream-Wrapper (für die Dateisystemfunktionen). Wenn du da "passive Modus" verwenden willst, musst du den diesen Wrappers konfigurieren (über anlegen und benutzen eines passenden Context).
(siehe der 3. Parameter zu copy(), fopen(), usw. Und darauf folgende Links im Manual)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: FTP Verbindung mittels AUTH TLS

Postby anselm » 27. April 2009 18:45

Hallo,
ich werde mir das mal ansehen. Habe da ja heute Abend noch etwas Zeit.

MfG and Thanks!
anselm
 

Re: FTP Verbindung mittels AUTH TLS

Postby Nobbie » 27. April 2009 19:52

Wiedmann wrote:Wenn du da "passive Modus" verwenden willst, musst du den diesen Wrappers konfigurieren (über anlegen und benutzen eines passenden Context).


Krampffrei. Wohlgemerkt...
Nobbie
 
Posts: 8762
Joined: 09. March 2008 13:04

Re: FTP Verbindung mittels AUTH TLS

Postby anselm » 02. July 2009 12:59

Hallo zusammen,
es ist zwar schon etwas her, aber ich denke, dass eine Lösung zu dem Problem vielleicht dem einen oder anderen helfen könnte.

Alle Versuche eine FTP Verbindung mittels AUTH TLS (passiver Modus und Use NAT IP/Adress)über Wrapper oder ähnliches hinzu bekommen sind bei mir gescheitert.
Vielleicht hat ja jemand eine Lösung? (bin an der Lösung interessiert!)

Lange Rede, kurzer Sinn. Hier nun die Lösung des Problems.

Ich habe mir das Programm Core FTP Lite installiert. Sollte (noch) unter http://www.coreftp.com/download.html als free version zum Download stehen.

Dieses Programm kann über Kommandozeile aufgerufen werden. Es kann alle möglichen FTP-Verbindungen(auch die von mir gesuchte AUTH TLS).

Erklärungen dafür gibt es in der Hilfe unter http://www.coreftp.com/docs/web1/Command_Line_FTP.htm.
Wenn das Programm installiert wurde, gibt es in der eingebauten Hilfe noch weitere Beispiele für die Kommandozeile.

Das Praktische daran ist, man kann sich eine sogenannte Site einrichten. Das heißt, man richtet sich die FTP Verbindung ein und ruft auf Kommandoebene nur noch diese Site mit den notwendigen Parametern auf.

Bsp.:
Code: Select all
$string = "\\MEIN PFAD ZUR\\corecmd.exe -OA -site MEINE SITE -d /MEIN DOWNLOAD FOLDER/".$MEINE DATEI . " -p \\MEIN LOKALES VERZEICHNIS";

-OA = Overwrite All
-d = download (-u = upload)
-p = Lokaler Pfad

Diesen $string schreibe ich eine .bat Datei und starte diese dann per
Code: Select all
exec();
anselm
 


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests