FTP über Apache will nicht

Alles, was den Apache betrifft, kann hier besprochen werden.

FTP über Apache will nicht

Postby oetzi » 07. July 2010 15:20

Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen.
Die Ausgangslage sieht so aus:
- Es gibt einen Server Z, auf dem XML Dateien liege, die ich nur über FTP laden kann.
- Aufgrund eines Sicherheitskonzeptes bin ich gezwungen das ganze über einen Proxy laufen zu lassen.
- Zu Testzwecken habe ich mir jetzt auf PC A einen apache mit dem mod_proxy_ftp Modul eingerichtet mit folgender Konfiguration:
NameVirtualHost *:18888

<VirtualHost *:18888>
ProxyPass / http://target-IP:21/
ProxyPassReverse / http://target-IP:21/
</VirtualHost>

ProxyRequests On
ProxyVia On

<Proxy *>
Order Deny,Allow
Deny from none
Allow from all
</Proxy>


Wenn ich jetzt ein simples


auf A starte bekomme ich nur folgende Ausgabe:
ftp -d ftp://localhost:18888
Trying 127.0.0.1...
Connected to localhost.

421 Service not available, remote server timed out. Connection closed
ftp: Can't connect or login to host `localhost'


Das merkwürdige ist, dass im Log des Apache überhaupt nichts passiert. Es wird keine einzige Zeile geloggt.

Nach diversen Google Suchen und Kollegenratschlägen die alle nicht weitergeholfen haben, hoffe ich jetzt, dass mir hier jemand einen Tipp geben kann, was ich falsch mache.

Schönen Gruß
oetzi
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 07. July 2010 16:12

Wenn das überhaupt gehen soll. mußt Du selbstverständlich im Protokoll FTP bleiben, Apache kann ganz sicher nicht HTTP auf FTP konvertieren oder umgekehrt. Außerdem lauscht doch angeblich auf dem Remote Rechner ein FTP Server, also muss es, wenn überhaupt, so heißen:

Code: Select all
ProxyPass / ftp://target-IP:21/
ProxyPassReverse / ftp://target-IP:21/


Dazu muss natürlich auf target-IP: 21 ein FTP Server laufen (was ich aber sowieso vermute auf Grund des Port 21). Ggf. musst Du außerdem im ftp Request eine Benutzer-iD und Passwort angeben (keine Ahnung, aber FTP verlangt das eigentlich):

Code: Select all
ProxyPass / ftp://user:password@target-IP:21/
ProxyPassReverse / ftp://user:password@target-IP:21/
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 08. July 2010 08:56

Morgen,

also manchmal übersieht man ja die einfachsten Sachen... hatte das http im ProxyPass einfach übersehen.
Danke schonmal dafür!

Leider funktioniert das ganze mit den Anpassungen immernoch nicht. Ich habe das gleiche Verhalten wie vorher.
Und leider wird immernoch nichts geloggt! Wie kommt das? Das wäre ja enorm hilfreich bei der Fehlerfindung.

Auf dem target-IP Server läuft ein FTP server. Wenn ich nicht über den Proxy gehe, sondern direkt von dem Rechner aus den remote Server anspreche funktioniert es.
Eine Frage zu den Logindaten:
Ich habe die jetzt testweise wie beschrieben im ProxyPass mit angegeben. Aber kann ich die nicht auch einfach beim Aufruf mit übergeben? quasi: ftp -d ftp://user:password@localhost:18888

Der Vollständigkeit halber hier meine aktuelle Konfig:
NameVirtualHost *:18888

<VirtualHost *:18888>
ProxyPass / ftp://user:password@target-IP:21/
ProxyPassReverse / ftp://user:password@target-IP:21/
</VirtualHost>

ProxyRequests On
ProxyVia On

<Proxy *>
Order Deny,Allow
Deny from none
Allow from all
</Proxy>


Der Aufruf lautet:
ftp -d ftp://localhost:18888
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 08. July 2010 11:04

Da hilft ja nur systematisches Vorgehen:

a) versuche erst einmal festzustellen, ob die VirtualHost-Angabe überhaupt "zieht", oder ob Apache die nicht befolgt (weil ggf. unvollständig).

b) was mich dabei schon stört - wieso dieser komische Port (18888)? Vielleicht ist der ja von Deiner Firewall geblockt, das würde ja auch die Stille im Logfile erklären. Wieso definierst Du nicht ganz normal einen VirtualHost auf Port 80, gibst einen vernünftigen ServerName an (beispielsweise "rftp" a la "remot ftp" o.ä.) und greifst dann via ftp://rftp:80 zu? Dazu mußt Du natürlich in der Hosts Datei rftp mit 127.0.0.1 festlegen und außerdem mußt Du bei den virtuellen Hosts dann natürlich auch localhost definieren

c) außerdem würde ich das im Browser testen, also dort ftp://rftp:80 angeben und schauen, was passiert.

Ich habe noch nie etwas mit mod_proxy_ftp gemacht und schon gar nicht einen RemoteProxy auf einen FTP Server eingerichtet. Aber wie oben angedeutet, würde ich da ganz anders vorgehen um unerwünschte Seiteneffekte von vorneherein auszuschließen. Ob eine UserId und ein Passwort von mod_proxy_ftp und mod_proxy an einen Remote Server durchgereicht wird - das weiß ich nicht. Bei HTTP Requests gibt es dafür Einstellungen, dass die HTTP Header übernommen werden, aber bei FTP weiß ich nicht, ob das dann so geht. Das musst Du ausprobieren (wenn Du mal so weit bist...).

P.S.: Mal eine ganz blöde Frage - hast Du eigentlich irgendwo auch eine "Listen 18888" Direktive? Das könnte nämlich auch die Ursache für das Schweigen sein.

P.P.S.: Habe das jetzt auch mal probiert und auch nochmal die Doku bemüht - das geht so nicht. Du kannst definitiv NICHT einen ReverseProxy bauen, der einen FTP Server Remote unterstützt. RemoteProxys können ausschließlich HTTP Server sein.

Wäre die Frage (ich kenne Euer Netzwerk nicht) ob ggf. ein direkter Proxy es tut - Deine Konfiguration sieht sowieso danach aus, als hättest Du einfach alle Direktiven aus diesem Umfeld in einen Eimer geworfen und in die Konfig getan. Denn für einen ReverseProxy benötigt man weder die ProxyRequests noch die ProxyVia Anweisung (und diese ist sowieso auf HTTP beschränkt). Wenn Du den ReverseProxy rauswirfst, könntest Du einen direkten Forward Proxy einrichten (die übrigbleibenden Direktiven tun das bereits). Dann muss aber der Client seinen Browser so einrichten, dass er einen Proxy auf localhost mit Port 18888 aktiviert und zwar für das Protokoll FTP. Und dann muss außerdem natürlich der Client den echten FTP Servernamen eingeben - dieser wird dann vom Proxy aufgelöst und weitervermittelt. Aber ob das funktioniert und ob das für lokale FTP Server funktioniert - das weiß ich nicht. Aber ReverseProxy kannst Du knicken. Oder Du schreibst Dir einen HTTP-Wrapper für den FTP Server (weiß nicht, ob man sowas irgendwo fertig runterladen kann).

Da Du aber mit dem ftp-Kommandozeilen Programm zugreifen willst, welches keinen Proxy kennt (wüßte ich zumindest nicht), geht das so auch nicht. Es gibt aber im Internet FTP Proxys herunterzuladen - also eine eigenständige Lösung ohne Apache. Vielleicht ist da ja etwas dabei, was es so tut, wie Du es brauchst.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 08. July 2010 11:42

Hallo Nobbie,
danke schonmal für deine Mühe!

a) Also folgendes habe ich schon gemacht:
Wenn ich den erwähnten ftp Aufruf mit einem anderen Port durchführe, bekomme ich sofort ein "connection refused".
Mit dem konfigurierten Port hingegen bekomme ich ja erst ein "connected to localhost" und dann nach ca. 1 Minute ein "421 Service not available, remote server timed out. Connection closed
ftp: Can't connect or login to host `localhost'"
Somit denke ich schon, dass der Proxy hier greift, leider halt ohne irgendwas zu loggen.

b) Warum ist der Port 18888 komischer als ein anderer? :-)
Geblockt wird der nicht, ich bleibe ja zur Zeit noch auf der selben Maschine. Sprich der ftp Aufruf geht an localhost.
Naja, ich hatte mich halt dazu entschieden die VirtualHost Differenzierung über den Port zu machen. Ich könnte es sicherlich auch umkonfigurieren, aber spricht denn irgendwas gegen die Port Sache?

c) Das geht leider nicht so ohne weiteres. Ich arbeit auf nem Server, auf den ich nur beschränkten Zugriff habe. Jedenfalls komme ich nicht über Browser (HTTP) auf den Rechner.

tja, ich glaube der Knackpunkt ist, dass diese blöden Logfiles nicht geschrieben werden! Sonst hätte ich wohl viel leichter einen Anhaltspunkt, was vielleicht schief geht.
Ich glaube ich werde jetzt mal parallel einen aktuellen apache downloaden und das ganze nochmal von vorne probieren. Vielleicht stimmt ja irgendas Grundlegendes nicht...
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 08. July 2010 11:56

oetzi wrote:c) Das geht leider nicht so ohne weiteres. Ich arbeit auf nem Server, auf den ich nur beschränkten Zugriff habe. Jedenfalls komme ich nicht über Browser (HTTP) auf den Rechner.


Warum nicht? Du musst das Protokoll HTTP verwenden (s.u.).

Ich habe es nämlich geschafft! Und jetzt ist mir auch einiges klarer: Du MUSST via HTTP reingehen und tatsächlich bildet mod_proxy_ftp und mod_proxy einen Wrapper von HTTP zu FTP.

Du mußt im ReverseProxy einfach den ftp://blablabla:21 angeben und dann (das ist Knackpunkt!) via Browser http://localhost:18888 (also Protokoll HTTP) angeben - und dann GEHT DAS!! Er fragt sogar brav nach UserId und Passwort und dann bekomme ich im Browser eine Anzeige des Remote FTP Servers.

oetzi wrote:tja, ich glaube der Knackpunkt ist, dass diese blöden Logfiles nicht geschrieben werden! Sonst hätte ich wohl viel leichter einen Anhaltspunkt, was vielleicht schief geht.


Die werden nicht geschrieben, weil die VirtualHosts für HTTP gemacht sind - das landet dort gar nicht, wenn Du ftp://localhost:18888 eingibst! Egal ob im ftp-Kommandotool oder im Browser. Du MUSST lokal HTTP benutzen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 08. July 2010 12:21

Hattest du das jetzt per Edit hinzugefügt, oder war ich eben blind? ;-)

Nobbie wrote:P.S.: Mal eine ganz blöde Frage - hast Du eigentlich irgendwo auch eine "Listen 18888" Direktive? Das könnte nämlich auch die Ursache für das Schweigen sein.

P.P.S.: Habe das jetzt auch mal probiert und auch nochmal die Doku bemüht - das geht so nicht. Du kannst definitiv NICHT einen ReverseProxy bauen, der einen FTP Server Remote unterstützt. RemoteProxys können ausschließlich HTTP Server sein.

Wäre die Frage (ich kenne Euer Netzwerk nicht) ob ggf. ein direkter Proxy es tut - Deine Konfiguration sieht sowieso danach aus, als hättest Du einfach alle Direktiven aus diesem Umfeld in einen Eimer geworfen und in die Konfig getan. Denn für einen ReverseProxy benötigt man weder die ProxyRequests noch die ProxyVia Anweisung (und diese ist sowieso auf HTTP beschränkt). Wenn Du den ReverseProxy rauswirfst, könntest Du einen direkten Forward Proxy einrichten (die übrigbleibenden Direktiven tun das bereits). Dann muss aber der Client seinen Browser so einrichten, dass er einen Proxy auf localhost mit Port 18888 aktiviert und zwar für das Protokoll FTP. Und dann muss außerdem natürlich der Client den echten FTP Servernamen eingeben - dieser wird dann vom Proxy aufgelöst und weitervermittelt. Aber ob das funktioniert und ob das für lokale FTP Server funktioniert - das weiß ich nicht. Aber ReverseProxy kannst Du knicken. Oder Du schreibst Dir einen HTTP-Wrapper für den FTP Server (weiß nicht, ob man sowas irgendwo fertig runterladen kann).

Da Du aber mit dem ftp-Kommandozeilen Programm zugreifen willst, welches keinen Proxy kennt (wüßte ich zumindest nicht), geht das so auch nicht. Es gibt aber im Internet FTP Proxys herunterzuladen - also eine eigenständige Lösung ohne Apache. Vielleicht ist da ja etwas dabei, was es so tut, wie Du es brauchst.


Hui, jetzt komme ich nicht mehr bei allem mit. Habe zugegebener Maßen nur rudimentäre Kenntnisse von dem Ganzen...
Die Einstellungen habe ich von einem bestehenden Proxy übernommen und versucht sinnvoll anzupassen. Daher kommen vielleicht einige Einträge die nicht so sinnvoll sind?!

Habe jetzt nochmal ein wenig gegooglet.
1) Kann es sein, dass ich die ReverseProxy Einstellung gar nicht brauche...? Ich baue ja ausschließlich Verbindungen von "Innen" zum Server auf. Andersrum wird nie eine Verbindung aufgebaut.

2) ProxyRequests On: "Wenn Sie die Direktive ProxyRequests auf On setzen, werden Proxy-Anfragen grundsätzlich zugelassen. Diese Anweisung steht oft in einem für den Proxy vorgesehenen <VirtualHost>-Container und wird nur für einen Forward-Proxy, nicht aber für einen Reverse-Proxy benötigt."
Das brauche ich doch also weiterhin richtig?

3) ProxyVia On: Habe ich nicht 100%ig verstanden. Jeder Proxy fügt eine via Zeile im header dazu. Wozu? Naja, jedenfalls brauche ich das wohl nicht wirklich?!


Vielleicht mal zur Erklärung was am Ende bei dem Ganzen rauskommen soll :)
- Auf dem Server Z liegen XML Dateien, an die ich nur per FTP rankomme
- Eine Anwendung läuft auf Rechner A und muss (wegen Sicherheitsgründen/-konzept) über einen anderen Rechner B von Z diese XML Dateien (per FTP) abholen können
- Darum hatte ich die Überlegung auf B einen FTP-Proxy einzurichten
- Nun wollte ich dies erstmal über localhost direkt auf B testen, damit man es nicht unnötig komplizierter macht am Anfang.

Somit sind meine aktuellen manuellen ftp Aufrufe reine Testaufrufe um zu prüfen, ob ich irgendwie über den Proxy auf den Server komme. Später soll das wie gesagt von der Anwendung auf Rechner A gemacht werden können.
Und z.B. die Einstellunge "Deny from none" und "Allow from all" sind einfach so zum testen gewählt, dass ich möglichst wenig Problem habe.

Reichen diese Infos, damit du mir sagen kannst, wie ich das ganze am sinnvollsten aufziehe?
Wie gesagt habe ich noch nicht wirklich viel Erfahrung mit Proxys im allgemeinen und das ganze hier war einfach ein Versuch. Bei uns werden Apache Proxys (für HTTP) im Betrieb verwendet, darum wäre FTP über einen apache proxy wohl am optimalsten, wenn denn überhaupt möglich!
Wenn nicht gibt es vielleicht sinnvolle andere Alternativen?

PS: Listen 18888 ist übrigens drin.
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby oetzi » 08. July 2010 12:22

oh, jetzt überschneiden sich unsere Posts. Ich werde das hier gleich editieren, wenn ich deinen letzten Post gelesen habe :)
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 08. July 2010 12:38

oetzi wrote:Reichen diese Infos, damit du mir sagen kannst, wie ich das ganze am sinnvollsten aufziehe?


Also wenn es eine reine FTP Lösung sein muss (also auch der Client PC nur FTP benutzen soll), dann kannst Du Apache aus dem Spiel lassen, der MUSS mit HTTP bedient werden. Der kann dann zwar (wie ich jetzt getestet habe) seinerseits einen FTP Proxy "simulieren", aber er "spricht" mit dem Endanwender HTTP.

Mit anderen Worten: suche Dir bei Google die angebotenen FTP Proxys heraus und schaue, ob Du damit klar kommst. Denn die verstehen FTP (nur FTP) und sind wahrscheinlich exakt für Deine Problematik geschrieben. Erfahrungen habe ich damit keine, aber ich denke, dass das auf keinen Fall schwieriger ist als der Umweg über Apache, der so dann sowieso nicht funktioniert.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 08. July 2010 12:52

Nobbie wrote:
oetzi wrote:c) Das geht leider nicht so ohne weiteres. Ich arbeit auf nem Server, auf den ich nur beschränkten Zugriff habe. Jedenfalls komme ich nicht über Browser (HTTP) auf den Rechner.


Warum nicht? Du musst das Protokoll HTTP verwenden (s.u.).

Weil durch eine Firewall nur ein Port für den Zugriff über Putty freigeschaltet ist. Habe mir jetzt aber beholfen und einen Tunnel über putty eingerichtet und... es funktioniert!!!! Wenn ich jetzt http://localhost:18888 im Browser eingebe, bekomme ich auch eine Authentifizierungsdialog und, man glaubt es kaum, ein access-Log wird geschrieben ;-)
Vielen vielen Dank für die Mühe und vorallem auch die verständliche Erklärung!
Jetzt habe sogar ich begriffen, wie der ganze Spaß funktioniert ;-)

Und jetzt habe ich das ganze auch noch über ein wget (ohne irgendwelche Anmeldedaten) von der Maschine selber aus probiert und das funktioniert auch!
Verbindungsaufbau zu localhost|127.0.0.1|:18888... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 401 Authorization Required
Authorisierung fehlgeschlagen.

Einfach herrlich, wenn was funktioniert! :-)
Jetzt probiere ich später noch eine Beispiel XML Datei wirklich runterzuladen. Muss jetzt eben in ein Meeting.
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 08. July 2010 13:56

Ich bin inzwischen noch weiter - man glaubt es kaum, aber man kann sogar eine reine ftp Lösung bauen.

ich habe (wie vorgeschlagen) den Reverseproxy rausgeworfen, habe nur "ProxyRequests On" drin gelassen und habe auch (wie Du) den Port auf 18888 gestellt.

Dann habe ich im Firefox bei dein Einstellungen für das Netzwerk bei FTP den Proxy rftp (ich habe das so definiert - kann man jetzt natürlich auch localhost od. 127.0.0.1 nehmen) und Port 18888 angegeben.

Und wenn ich dann eine beliebige ftp Adresse (irgendwas aus dem Internet) a la ftp://ftp.domain.de angebe, dann wird auch die Authoiriserung durchgeführt und ich bekommen den FTP Server angezeigt. Jetzt könnte man sagen: ja das ist ja klar, der Browser selbst kann ja FTP und connected selbst direkt auf den FTP Server. Aber nein: das Bild sieht ganz anders aus. Wenn man den Proxy wieder herausnimmt, kann er natürlich auch den FTP Server anzeigen - aber mit einer vollkommen anderen grafischen Oberffäche.

Ich bin mir nur nicht sicher, was der Browser dort an den Apache FTP Proxy sendet, letztendlich bekommt er ja eigentlich eine HTML Seite zurück (während er ohne Proxy selbst die FTP Daten interpretieren muss).

Ein anderes Problem: ich vermute, dass Du unter Windows arbeitest (wegen PuttY). Da ist das Problem, dass man dem ftp-Zeilenprogramm nicht beibringen kann (das ist einfach zu doof!), dass einen Request via Proxy ausführen soll. Ich bekomme es auch nicht hin, es zu simulieren (mit geschickten FTP Kommandos). Habe einiges in Google gefunden, aber nicht, wie ftp via Proxy unter Windows geht.

Da dürfte wget evtl. mehr Erfolg versprechen (ist das wget für Windows oder hast Du doch auch Linux zur Verfügung?).
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby Nobbie » 08. July 2010 14:33

So - jetzt geht alles.

Wie geht es am besten? Erst einmal die VirtualHost anpassen, den ReverseProxy brauchst Du nicht mehr. Stattdessen sieht es nun so aus:

Code: Select all
NameVirtualHost *:18888

<VirtualHost *:18888>
ServerName localhost
ProxyRequests On

<Proxy *>
Order Deny,Allow
Deny from none
Allow from all
</Proxy>
</VirtualHost>


Also nicht viel übrig geblieben.

Dann mußt Du in der DOS-Umgebung die Variable FTP_PROXY setzen. Entweder direkt in einer Kommandoshell (die gilt natürlich dann nur dort), oder bei Windows unter Systemeinstellungen->System>Erweitert->Umgebungsvariablen

Ich mache es aber der Einfachheit halber hier in der DOS Shell, da sieht das dann so aus:

Code: Select all
set FTP_PROXY=localhost:18888


Und dann mußt Du nur noch wget aufrufen, jetzt aber mit dem "echten" FTP Server (oder eben nur die IP). Außerdem mußt Du die UserId und das Passwort für den FTP-Server mitgeben:

Code: Select all
wget --user=ftpuser --password=ftppassword ftp://target-IP:21/datei.xml


Und dann lädt wget die Datei datei.xml herunter (kann man natürlich auch Ordnernamen noch zwischenhängen). Und meldet auch brav, dass er den Proxy benutzt. Wenn Du bei wget die Option "--no-proxy" auch angibst, ignoriert er die Umgebungsvariable - das wird dann wahrscheinlich zum Abbruch führen (bei mir funktioniert es dann immer noch, weil wget auch direkt auf meinen FTP Testserver kommt).

Und im Apache access_log findest Du dann auch die Zugriffe protokolliert (wobei ich für diesen Virtualhost ein eigenes Logfile festgelegt habe).

Später mußt Du nur die Variable FTP_PROXY ändern, dass sie nicht auf den lokalen Rechner, sondern auf den echten Apache Proxy verweist.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 09. July 2010 08:36

Guten Morgen!

gestern hatte ich es nicht mehr geschafft hier weiter zu machen.

Nobbie wrote:Ein anderes Problem: ich vermute, dass Du unter Windows arbeitest (wegen PuttY).

Jein, mein Arbeitsplatz-PC ist zwar ne Windowskiste, aber ich arbeite serverseitig komplett auf Linux. Also teste ich die ganze Sache gerade nur auf Linux, die Ausnahme war ja, dass ich über meinen Browser hier gestern den Test durchgeführt habe.


So, zu deinem letzten Post von gestern:
1. Eine Sache verstehe ich gerade überhaupt nicht: Wozu die FTP_PROXY Variable setzen? Die verwendest du doch später gar nicht mehr oder?

2. Bei diesem Aufruf hier:
Code: Select all
    wget --user=ftpuser --password=ftppassword ftp://target-IP:21/datei.xml

müssen die Daten ja irgendwie über den Proxy geleitet werden. Aber wie soll das funktionieren?
Wenn target-IP die richtige IP des FTP Servers ist, wird dann nicht direkt dort hin eine Verbindung aufgebaut?

3. (hängt vielleicht mit 2. zusammen)
Wenn ich die VirtualHost Konfiguration richtig verstehe, wird der Proxy aktiv, sobald ein Aufruf an den Port 18888 und an localhost (wegen ServerName) gerichtet ist. Aber wie passt das mit dem Aufruf von target-IP zusammen? (siehe 2.)

Irgendwo hängt es da bei mir :(
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Re: FTP über Apache will nicht

Postby Nobbie » 09. July 2010 10:12

oetzi wrote:1. Eine Sache verstehe ich gerade überhaupt nicht: Wozu die FTP_PROXY Variable setzen? Die verwendest du doch später gar nicht mehr oder?


Doch. s.u.

oetzi wrote:2. Bei diesem Aufruf hier:
Code: Select all
    wget --user=ftpuser --password=ftppassword ftp://target-IP:21/datei.xml

müssen die Daten ja irgendwie über den Proxy geleitet werden. Aber wie soll das funktionieren?
Wenn target-IP die richtige IP des FTP Servers ist, wird dann nicht direkt dort hin eine Verbindung aufgebaut?


Siehe Frage 1. Jetzt klar? Das Programm wget schaut nach der Variablen FTP_PROXY (und/oder HTTP_PROXY - je nachdem, welches Protokoll das Ziel hat) und leitet die Anfrage dann darüber. Nur wenn --no-proxy gesetzt wird, dann werden die Umgebungsvariablen ignoriert.

By the way: ein wenig eine faule Sau bist Du schon, oder? Ich habe das gestern auch noch alles nicht gewusst, aber ich lese dann Doku - und gerade unter Linux gibt man einfach "man wget" ein und bekommt ein super Manual.

Frage 3 erübrigt sich wohl, wenn Du das Zusammenspiel aus Frage 1 und 2 begriffen hast.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: FTP über Apache will nicht

Postby oetzi » 09. July 2010 11:33

Hallo Nobbie,

Grundsätzlich bin ich eine faule Sau das stimmt wohl :)

Das hat in diesem Fall aber wohl nur wenig damit zu tun, dass ich das nicht hingekriegt habe, sondern dass mir einfach das Verstädnis gefehlt hat.
z.B. wäre ich nie darauf gekommen, dass wget nach einer FTP_PROXY Variablen schaut.
Und überhaupt finde ich es sehr schwer diesen ganzen Mechanismus der da abläuft zu begreifen.
Das im Nachinhein nachzuvollziehen, ist da doch einiges einfacher, aber wie soll man auf diese ganzen Dinge kommen ohne tagelang sich durch Internet zu wühlen? (wenn man halt nicht schon jahrelang mit Linux arbeitet!)

Ein gutes Beispiel ist die jetzigen Situation.
Das ganze klappt bei mir leider noch nicht. Der Download klappt zwar, allerdings wird nicht der Proxy verwendet.
Suche jetzt seit über ner Stunde über die manpage, wget --help und natürlich google, ohne richtiges Ergebnis. Wahrscheinlich bin ich zu unfähig zum Suchen...
Wo/Wie hast du denn gestern diese Infos gefunden? (Das ist eine ernst gemeinte Frage, keine faule Frage! ;-) )
In der manpage finde ich überhaupt nichts dazu! wenn ich dort nach "proxy" suche ist das einzige was ich finde: "--no-proxy
Don't use proxies, even if the appropriate *_proxy environment variable is defined."
Suche ich nach "ftp_proxy" kriege ich ein Pattern not found.
Über wget --help habe ich dann zumindest gefunden, dass man noch den Schalte --proxy verwenden kann, damit ein Proxy verwendet wird. Das ändert bei mir am Ergebnis leider überhaupt nichts.
Bei google habe ich 1-2 Lösungen gefunden, die sehr ähnlich zu der von dir beschriebenen sind. Was mich aber ja nicht weiterbringt, wenn das nicht funktioniert.

Also stehe ich jetzt wieder an einem Punkte, wo ich hoffe, dass mir in einem Forum geholfen werden kann.

Der export Befehl zeigt mir u. a. folgendes an: declare -x FTP_PROXY="localhost:18888"
-> Das sieht meiner Meinung ja gut aus

Meine Konfig:
Code: Select all
NameVirtualHost *:18888

<VirtualHost *:18888>
        ServerName localhost
        ProxyRequests On

        <Proxy *>
                Order Deny,Allow
                Deny from none
                Allow from all
        </Proxy>
</VirtualHost>

(Neustart des Proxys wurde durchgeführt nach der Änderung)

Mein Aufruf:
Code: Select all
wget [--proxy] --user=USER --password=PASS ftp://target-IP:21/pathTo.xml


Ist doch alles genauso, wie du es beschrieben hast oder übersehe ich irgendwas?

PS: Du hattest erwähnt, dass bei dir angezeigt wird, dass der Proxy verwendet wird. Was sieht man in diesem Fall denn? Ich checke im Moment immer die Proxy Logs, um zu prüfen ob es da drüber ging.

Gruß
oetzi
oetzi
 
Posts: 8
Joined: 07. July 2010 14:52

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 21 guests