TS 509-pro Probleme mit dem proftpd - Alternativen?

  • Hallo zusammen,


    ich habe jetzt seit einigen Tagen mit einer TS 509pro zu tun und bin ausgesprochen angetan von dem Teil - bis auf eine "Kleinigkeit"...


    Ich habe im Netzwerk einen Client älteren Datums, der den Dateiaustausch nur per FTP durchführen kann und soll. Das ging mit bisherigen Linux- und Solaris-Maschinen auch problemlos, allerdings verhält sich der auf der TS 509pro installierte proftpd in einem winzigen Detail komplett anders als die bisher verwendeten pureftpd bzw. Solaris FTP Server:


    Bei Listing auf eine Datei oder ein Verzeichnis, das _nicht_ vorhanden ist, geben die "alten" FTP-Server den Code "226 0 matches total" (kurz 226 0) zurück. Der proftpd sagt stattdessen "450" - was mein Client als Verbindungsfehler interpretiert (nicht völlig zu unrecht) und jede weitere Kommunikation einstellt.


    Frage: Wie bringe ich entweder dem proftpd bei, dass er auch mit 226 0 antworten soll, oder - falls das nicht möglich ist - gibt es bereits Packages mit alternativen FTP Servern für die TS 509pro? (Gefunden habe ich bislang nichts in der Richtung - ein pureftpd oder vsftpd sollte doch eigentlich kein Problem sein?!?


    Nebenfrage: Um den Fehler zu identifizieren, musste ich die proftpd.conf mit Loggingfunktionen erweitern. Diese Einstellungen überschreibt das Konfigurationstool natürlich bei jeder beliebigen Gelegenheit wieder. Gibt's eine elegante Möglichkeit, Erweiterungen der Konfiguration persistent zu machen? (cron-gesteuertes Überschreiben und reconfig des FTP-Services ist nicht ganz meine Interpretation von "elegant"...)


    1000dank für jede Hilfe,


    Gruß,


    Gereon

  • Hi,


    ich habe mal versucht das ganze auf meinem 409 nach zu stellen. Was bekommst du da als antwort?


  • Ich mach's ganz kurz zum Vergleich:


    Output pure-ftpd auf einer SuSE Linux-Maschine:


    Code
    ftp> nlist gibtsnicht500 Unknown command227 Entering Passive Mode (127,0,0,1,178,139)150 Accepted data connection226-Options: -a 226 0 matches totalftp> mkdir gibtsnicht257 "gibtsnicht" : The directory was successfully createdftp> nlist gibtsnicht227 Entering Passive Mode (127,0,0,1,123,134)150 Accepted data connection...226-Options: -a 226 2 matches totalftp> rmdir gibtsnicht250 The directory was successfully removedftp> dir gibtsnicht227 Entering Passive Mode (127,0,0,1,145,39)150 Accepted data connection226-Options: -a -l 226 0 matches totalftp> mkdir gibtsnicht257 "gibtsnicht" : The directory was successfully createdftp> dir gibtsnicht227 Entering Passive Mode (127,0,0,1,177,12)150 Accepted data connectiondrwxr-xr-x    2 (username)  users          48 Nov  7 13:43 .drwxrwxr-x   11 (username)  users         416 Nov  7 13:43 ..226-Options: -a -l 226 2 matches total


    Output TS 509pro mit proftpd:



    Der Unterschied ist deutlich: pure-ftpd (und andere FTP-Server) geben bei nicht vorhandenem Directory Code 226 zurück (und eben keinen weiteren Listing-Output), proftpd gibt Code 450 zurück, womit mein Client nicht klarkommt (und was - so richtig oder falsch man einen _Fehlercode_ finden mag - eindeutig nicht dem von der Mehrheit genutzten Standard entspricht).


    Ergänzend sollte ich erwähnen, der Client ist so fantasielos, dass er, bevor er ein Directory anzulegen versucht, ein Listing macht - bei 226 und null Listing wird das Directory angelegt und reingeschrieben. Das heisst mit proftpd habe ich ein doppeltes Problem, weil bei vorhandenem Directory 226 und null Listing kommt (was bei anderen FTP Servern bedeutet "Ich kann nichts listen, weil nichts da ist - insb. auch nicht das Directory"; dass das Directory auf der TS-509 sehr wohl vorhanden ist, kann der Client in diesem Fall nicht erkennen.


    Umprogrammieren des Clients ist keine Option - das Ding ist eine proprietäre Uralt-Büchse, an deren Programmcode keiner mehr was ändern kann - der Kram muss einfach funktionieren und es wäre superklasse wenn er es mit der TS-509 täte (spart auf die Dauer immens Strom und bringt RAID5-Sicherheit obendrein).


    Inzwischen habe ich rausgefunden, dass man über den ipkg-Port für die TS-509 sehr wohl einen pure-ftpd bekommen kann - leider ist die Installation von ipkg auf der TS-509 nicht so straightforward wie auf der NSLU2 mit unslung... mag mich jemand erleuchten wie ich den pure-ftpd ans Fliegen und den proftpd dauerhaft zum Schweigen bekomme, ohne dass ich die übrige Funktion der TS-509 nachhaltig beeinträchtige? Wäre super, dann kann ich an dieses Problem nämlich einen Haken machen...


    Bis hierhin natürlich auch schonmal danke an alle, die sich mit Gedanken machen oder schon gemacht haben!


    Gruß


    Gereon

  • Hallo,


    habe das Problem gerade mal auf meiner 409 getestet. Gleiches Ergebnis.


    Habe allerdings einen vsftpd auf fedora laufen und dort sieht der output gut aus.


    Zitat

    227 Entering Passive Mode (127,0,0,1,125,3)
    150 Here comes the directory listing.
    226 Directory send OK.


    Wie du schon gesehen hast, gibt es diverse ipkg pakete. Wenn du doch Grundsätzlich den ftp Server nur für einen client benötigst, kannst du nicht einen zweiten ftp Server auf einen anderen port laufen lassen? So hättest du dann beide. Orginal QNAP ftp Server und deinen. Wenn dein cleint es erlaubt einen anderen Port zu benutzen.


    Du wirst eh, meiner Meinung nach, nicht darum herum kommen ipkg zu installieren. Dort gibt es schöne Zusatztools und das ganze läuft auch gut.

  • Hallo,


    das mit ipkg ist schon klar - leider kann der Client auch nur auf dem default-Port kommunizieren. ipkg ist auf der QNAP schon drauf, allerdings hab ich noch nicht raus wie ich die ipkg-installierte Software beim Systemstart eingebunden bekomme - das Prinzip bei QNAP ist mir noch nicht so eingängig (bei der NSLU2 war ja ein komplettes Replacement-System im Spiel, während bei QNAP das Originalsystem draufbleibt und erweitert wird - an sich der sympathischere Ansatz).


    Wenn also zufällig jemand den pure-ftpd (über ipkg geladen) schon mit einem entsprechenden Startscript eingebunden hat, würde ich mich über einen Tipp freuen. VOn Tests unter SuSE weiss ich, dass der pure-ftpd exakt das macht, was ich haben möchte.


    Danke und Gruß


    Gereon

  • Hallo,


    ich hab die Beiträge nun mehrmals gelesen verstehe aber einige Dinge nicht.


    1. wo ist die Rede von 450 ? Ob TS109, TS409 oder TS509 es ist immer nur 550 ausgeben.
    2. wieso / warum / wie kommst du auf nlist ?
    3. 226 wird für die erfolgreiche Bestätigung ausgeben.



    Christian

  • Hallo,


    Kann den Ersatz des ftpd nicht wirklich empfehlen - man verliert alle netten Verwaltungseigenschaften ab QNAP Admin Web usw.


    X-beliebige ipkg können folgendermassen in den Autostart eingebunden werden - hier Xmail (nicht als QPKG):



    Meine nicht massgeblichen Meinung nach ist eine 2xx Antwort im Fehlerfall nicht korrekt - auch wenn es gewisse Solaris-nachempfundene ftpd so machen - denn 2xx bedeutet ja immer irgend eine erfolgreiche Ausführung. Ein Vergleich mit ener Shell zeigt, dass das 226 Verhalten nicht wirklich U**x-logisch ist:


    Code
    [~] # ls gagals: gaga: No such file or directory


    Code
    ftp> dir gaga200 PORT command successful150 Opening ASCII mode data connection for file list450 gaga: Operation not permitted


    Schauen wir uns mal die sehr ausführliche Meldungen eines nicht-U**x OS an:

    Code
    FTP> dir [.gaga]
    200 STRU command okay.
    200 PORT command okay.
    550 %%RMS-E-DNF, directory not found
    %TCPWARE_FTP-E-FILRCVERR, error receiving SYS$OUTPUT:.; from server
    -TCPWARE-I-REPLY, server's reply was "550 %%RMS-E-DNF, directory not found"
    FTP>


    Ach, wär die U**x-Welt doch immer so klar und deutlich. Aber auch hier stellt sich die Frage, ob ein 450 nicht besser wäre - denn 5xx ist ja ein permanenter Fehler - und ein Verzeichnis könnte ja später noch entstehen... Und da wären wir wieder bei dem, was im nicht so unpopulären proftpd wie in den QNAP TS implementiert liefert.


    Gruss,


    -Kurt.


    Edit:


    Zitat von "christian"

    2. wieso / warum / wie kommst du auf nlist ?

    Der "nlist" Befehl im ftp ist so spezifisch wie ein "dir" - beide sollten auf Grund der fehlenden Kompatibilität nicht unbedingt verwendet werden...

    Einmal editiert, zuletzt von schumaku ()

  • Zitat von "christian"

    Hallo,


    ich hab die Beiträge nun mehrmals gelesen verstehe aber einige Dinge nicht.


    1. wo ist die Rede von 450 ? Ob TS109, TS409 oder TS509 es ist immer nur 550 ausgeben.
    Christian


    Nicht ganz richtig..... :mrgreen:

    Zitat

    ftp> dir stststs
    200 PORT command successful
    150 Opening ASCII mode data connection for file list
    450 stststs: Operation not permitted

  • Also bei mir auf dem TS-409 sieht es so aus ...


    [2008.11.09 15:00:52.468] CWD blubOrdner
    [2008.11.09 15:00:52.593] 550 blubOrdner: No such file or directory
    [2008.11.09 15:00:52.593] XCWD blubOrdner
    [2008.11.09 15:00:52.703] 550 blubOrdner: No such file or directory
    [2008.11.09 15:00:52.703] CWD /blubOrdner
    [2008.11.09 15:00:52.828] 550 /blubOrdner: No such file or directory
    [2008.11.09 15:00:52.828] XCWD /blubOrdner
    [2008.11.09 15:00:52.953] 550 /blubOrdner: No such file or directory
    [2008.11.09 15:00:52.953] PWD
    [2008.11.09 15:00:53.062] 257 "/" is the current directory


    [2008.11.09 15:01:22.015] CWD Qusb
    [2008.11.09 15:01:22.156] 250 CWD command successful
    [2008.11.09 15:01:22.156] PWD
    [2008.11.09 15:01:22.281] 257 "/Qusb" is the current directory
    [2008.11.09 15:01:22.281] TYPE A
    [2008.11.09 15:01:22.406] 200 Type set to A
    [2008.11.09 15:01:22.406] PORT 192,168,2,2,4,176
    [2008.11.09 15:01:22.515] 200 PORT command successful
    [2008.11.09 15:01:22.515] LIST
    [2008.11.09 15:01:22.625] 150 Opening ASCII mode data connection for file list
    2008.11.09 15:01:22.812] # - 475 Bytes in 0.188 Sekunden übertragen, 20.267 kbit/s ( 2533.333 Bps), Übertragung erfolgreich.
    [2008.11.09 15:01:22.843] 226 Transfer complete



    Christian

  • Moin zusammen,


    ich weiß Eure angeregte Diskussion über Sinn und Unsinn der Fehlercodes wirklich zu schätzen, aber das Kernproblem ist nach wie vor, dass es für meine konkrete Anwendung ca. 80% der mir verfügbaren FTP-Server _richtig_ machen (und auf ein DIR oder NLIST oder was auch immer bei nicht vorhandener Datei 226 und eine leere Liste zurückgeben) und nur der proftpd an der Stelle meint, schlauer zu sein, und einen Fehlercode wirft.


    Damit ist der proftpd für mich _unbrauchbar_ und alle anderen Alternativen (insb. pure-ftpd, vsftpd) _brauchbar_ - ich wüsste jetzt bloss gern, wie man - ohne die übrige Funktion der QNAP TS-509 nachhaltig negativ zu beeinflussen - den proftpd abschaltet und den pure-ftpd beim Start direkt mit anwerfen lässt. Ich kann mir dazu natürlich was hacken, aber das ist ja nicht der Sinn der Sache - wie bei allen anderen NAS-Boxen dieser Art haben sich die ipkg-Porteure doch sicher was dabei gedacht, wie die Filesystem- und Paketstruktur aufgebaut wurde.


    Ich habe _nicht_ das Ziel, die Admin-Features der QNAP weiter für den FTPD zu verwenden - was da möglich oder unmöglich ist, ist mir reichlich egal, weil es effektiv nur diesen einen Client im LAN geben wird, der überhaupt was mit FTP zu machen hat - die anderen sollen gefälligst SMB, NFS, SCP oder was auch immer nutzen, FTP ist nur für den einen und sonst keinen.


    Hat jemand einen Tipp für mich? (Oder auch nur einen weiterführenden Link?)


    Danke und Gruß


    Gereon

  • Man soll ja nicht auf sich selbst antworten - mach ich aber doch mal...


    Ich hab mir jetzt was gebastelt, was im /etc/init.d/ftp.sh den pure-ftpd aufruft und auch im daemon-mgr zumindest augenscheinlich richtig an und abmeldet - das ist sinnvoll weil der einen ansonsten scheinbar schonmal gern mit Fehlermeldungen zumailt - auf jeden Fall dann, wenn man einen Service umbenennt, diesen aber nicht aus der /etc/daemon-mgr.conf entfernt.


    Wie reboot-persistent das Ganze ist, werde ich erst nach einem solchen feststellen können... naja...


    Immerhin scheint es jetzt zu laufen, der besagte Client motzt nicht mehr (hat sich allerdings bei einem Upload verschluckt - was immer da die Ursache war...)


    Danke und Gruß


    Gereon