vsftpd vs avmftpd nur eines kann gestartet werden

Joe82

Aktives Mitglied
Mitglied seit
22 Mrz 2007
Beiträge
1,114
Punkte für Reaktionen
0
Punkte
36
Hallo,

ich habe eine 7390 und nutze vsftpd. Mir ist aufgefallen, dass vsftpd nicht gestartet werden kann, weil automatisch der AVM ftpd läuft. Dieser wird scheinbar automatisch über inetd gestartet. Ich habe das Problem dadurch gelöst, dass ich den AVM FTP über Remove entfernt habe.

Gibt es einen Grund wieso man beides gleichzeitig nutzen kann? Würde es nicht Sinnvoll sein, dass der AVM FTP automatisch abgewählt wird bei der Auswahl von vsFTP?

Wenn man aus guten Grund sagt, dass es so ist, sollte es zumindest im Einsteiger Wiki erwähnt werden.

LG Joe82
 
Zwei Server können natürlich nicht auf einem Port laufen. vsftpd hat aber die Möglichkeit den Listen Port zu ändern. Natürlich muss dies auch den Benutzern bekannt sein...

Gruß
Oliver
 
Ich meinte aber eher damit, dass mir irgendwie keine Idee kommt wieso man beide gleichzeitig laufen lassen sollte? Macht das irgendwie Sinn? Außerdem konnte ich den AVM FTPD nicht beenden, weil dieser mit inetd gestartet wird. Das ist irgendwie auch unglücklich. Der steht in der Liste der Dienste aber man kann nichts machen...
 
Außerdem konnte ich den AVM FTPD nicht beenden, weil dieser mit inetd gestartet wird. Das ist irgendwie auch unglücklich. Der steht in der Liste der Dienste aber man kann nichts machen...
Willst den Port der für avm-ftp in inetd eingetragen ist, mit einer anderen Anwendung benutzen?
 
@sf3978: Der Joe82 hat grundsätzlich Recht. Unsere jetzige Behandlung vom AVM-FTPD ist nicht ganz glücklich.

Unter Einstellungen vom inetd steht:

Code:
Datei ist nur lesbar und kann nicht geändert werden.

ftpd: AVM ftp daemon 21 stream tcp nowait root /bin/sh sh /bin/inetdftp

1. Das Hauptproblem liegt darin, dass AVM-FTPD dann automatisch per inetd läuft, wenn inetd im Image ist und MAN KANN NICHT es pr WebIF umstellen. Dieser Automatismus war irgendwann mal gut. Mittlerweile aber nicht mehr und sollte eigentlich konfigurierbar gemacht werden.
2. Wir bieten keine Möglichkeit, den Port vom AVM-FTPD zu verstellen.

Zu 1 und 2 hatte ich vor etwa einem Jahr angefangen eine AVM-FTPD-CGI zu schreiben. Diese CGI konnte den Port, die Laufart (inetd, automatisch, per Hand) verstellen und einige weitere Sachen. Leider ist diese Entwicklung eingeschlafen.

Ferner hatte ich damals angefangen einen "dynamischen" inetd zu basteln. Eine der Features von diesem "dynamischen" inetd war, dass es ziemlich intelligent gecheckt wurde, ob der Port belegt ist oder nicht. Es würde auch mit einer entsprechenden Meldung quittiert. Dazu hatte ich damals einige Vorbereitungen getroffen, die es erlauben würden auch per inetd laufenden "Dienste" einzeln zu stoppen. Leider wurden all diese Vorhaben als zu kompliziert gewertet und flogen langsam aber sicher aus der modlibrc und aus rc.ftpd (das war mein Vorzeigebeispiel) heraus. Nun haben wir zwar eine sehr simple Lösung, die allerdings nicht jedem Benutzer klar erscheint. Vor allem fehlende Fehlermeldungen vom z.B. vsftpd lassen viele Benutzer erstaunt in die Röhre schauen. Denn es gibt für einen solchen Fall keine Fehlermeldung. Es wird brav vermeldet "Starting...done", obwohl es eigentlich kein done ist. In meiner Version hies es "Starting AVM-FTPD in inetd mode ... [ERROR: Port 21 busy!!!] ... failed" (oder ähnlich). Aus dieser Meldung siehst du nicht nur, dass es "failed" ist, sondern WARUM es auch failed ist.

Ich schaue mir die Sache nochmal an. Vielleicht bastele ich einen Super-FTP-Daemon, der alle FTP-Server vereinigt und gegenseitig beobachtet oder ich bastele an meiner AVM-FTPD-Einstellungs-CGI weiter oder ich lasse den vsftpd etwas vernünftigere Fehlermeldungen ausgeben.

MfG
 
@cuma:
1. Zum Deaktivieren von AVM-FTPD. Werden denn nicht zufällig damit auch einige anderen Funktionalitäten deaktiviert? Das waren schon immer meine Bedenken, obwohl ich natürlich auch auf die gleiche AVM-Variable zugegriffen hatte. Läuft denn danach SAMBA weiter? Ich würde echt dafür lieber unsere eigene Variable spendieren, die es ähnlich wie bei den "echten" Paketen behandelt, nämlich off/automatisch/inetd und es darüber steuern. Aber wie gesagt, das schaue ich mir nochmal.
2. Zur allgemeinen Lösung. Gibt denn rc.inetd in einem solchen Fall neben der im Quell-Code zu findenden Warnung noch einen "failed" als Status zurück? Leider erkenne ich dies nicht. Das ist nämlich meine allgemeine Kritik zu unserer jetzigen Implementierung von start- und stop- Skripten: Sie geben keine vernünftigen Fehlermeldungen und oft sogar "done" als Rückgabewert, obwohl es kein "done" war. Da müssen wir an einigen Stellen uns verbessern.

MfG
 
@ cuma

Ich habe mal einen Screenshot angehängt. Meinst du diesen Punkt für die deaktivierung? Wenn ja, dann klappt das nicht. Da der AVM FTP läuft obwohl der besagte Haken entfernt ist. Warum, kann ich allerdings nicht sagen. Ich vermute, das liegt an dem Start durch inetd. Allerdings bin ich nur Endbenutzer und habe wenig Plan von der ganzen Sache. Kann es eventuell sein, dass AVM hier eine Änderung durchgeführt hat? Ich kann mich daran erinnern, dass ich selbiges Problem bei einer 7270v2 auch mal hatte und es mir dort durch Änderungen im Web-Interface gelungen ist den AVM FTP zu beenden.

@ hermann72pb

Genau so lief das bei mir. Starte vsFTPd... DONE... und dann schaut man unter Dienste und er läuft nicht. Durch Zufall ist mir dann aufgefallen, das der AVM FTP oben in der Liste läuft und das es vielleicht daran liegen könnte. Allerdings ist es mir nicht gelungen durch Änderungen im AVM Web Inf den AVM FTP zu stoppen. Erst ein Remove AVM FTP in einer neu gebauten Firmware hat das Problem gelöst.

Ich will hier auch keine mega Beschwerde draus machen, da das Problem ja bereits gelöst ist. Es ging mir eher um die Anregung eventuell den AVM-FTP automatisch zu kicken wenn vsFTP ausgewählt wird. Dies ist allerdings nur möglich wie hermann72pb schon anmerkte, wenn es dadurch keine weiteren Einschränkungen gibt. Mir sind allerdings bis jetzt keine aufgefallen. Selbst der AVM Online-Speicher arbeitet vollkommen zufriedenstellend.

Joe82
 

Anhänge

  • ftp.jpg
    ftp.jpg
    59.5 KB · Aufrufe: 12
@Joe82: Nein, das ist der Punkt davor, der komplett FTP-Funtkionalität deaktiviert. Leider hat AVM (zumindest früher) diese FTP-Funktionalität etwas "mehrdeutig" definiert und darauf noch einige weitere Sachen geknüpft. Daher weiß keiner wirklich sicher, ob mit der abgewählten AVM-Option alles sauber und vollständig läuft.
Zum automatischen Abwählen in Menuconfig. Ich bin streng dagegen. Wie gesagt, ich würde mich eher bemühen im laufenden Betrieb in unsere drei Klients eine rudimentäre Überprüfung einzubauen und die Rückmeldung entsprechend auszugeben, anstatt automatisch abzuwählen. Es ist durchaus möglich, dass man mehrere FTP-Server am Laufen hat. Z.B. wäre es denkbar, den VSFTPD für Extern zu konfigurieren und den AVM-eigenen im internen Netz zu benutzen. Vorausgesetzt natürlich, dass sie wenigstens intern auf unterschiedlichen Ports laufen.

MfG
 
...Ich vermute, das liegt an dem Start durch inetd. ... Ich kann mich daran erinnern, dass ich selbiges Problem bei einer 7270v2 auch mal hatte und es mir dort durch Änderungen im Web-Interface gelungen ist den AVM FTP zu beenden.
...
Wenn ich bei meiner Box, benutzerdefiniert, im inetd einen bestimmten Port für eine Anwendung(1) reserviere (konfiguriere), dann kann ich diesen Port auch dann nicht für eine andere Anwendung(2) benutzen, wenn die über inetd zu startende Anwendung(1) gerade down (d. h. nicht aktiv ist, nicht benutzt wird) ist. Der Port ist blockiert durch inetd. avm-ftp "zu beenden" bedeutet, avm-ftp aus inetd "zu entfernen".
 
Ahhhh... Jetzt ja... ein Lichtblick... XD

@ hermann72pb

Der Punkt davor wäre aber schlecht, da dadurch automatisch auch der Online Speicher deaktiviert würde. Wenn es eine bessere Lösung als die automatische Abwahl gibt ist das natürlich sehr gut und zu bevorzugen. :nemma:

Auch danke nochmal für ein gutes Beispiel wann der Einsatz von zwei FTP Servern Sinn ergibt. :groesste:

@ sf3978

bedeutet, avm-ftp aus inetd "zu entfernen".

Fragt sich, ob das so einfach möglich ist. Aber das übersteigt mein Wissen um längen... Auch wenn ich fleißig lerne...

Danke für die vielen Infos.
 
@sf3978: Und wie kannst du es per webif entfernen? Ich hatte doch oben geschildert, dass es mehr oder weniger automatisch geschieht. Es gab da einige Tricks, wenn ich mich nicht irre, per WebIF ist es aber nicht möglich.
Außerdem kann vsftpd als standalone laufen, während AVM-FTPD über inetd läuft. Dies ist übrigens die jungfräuliche Konfiguration. Und genau da versagen die Fehlermeldungen von vsftpd, die er für solche Fälle gar nicht hat. Er meldet immer brav "done".

MfG
 
ok. Dann schildere ich meine Ideen, wie ich es vor habe, weiter vorzugehen:
1. Ich werde zunächst einen Super-FTPD bauen, deren Hauptaufgabe ist den Default-FTP-Server zu konfigurieren. Im allerersten Fall wird dazu nur eine einzige CGI-Auswahlmaske geben, die den FTP-Server aus vier möglichen Optionen (NONE/AVM/VSFTPD/BFTPD) wählt. Eine geeignete idiotensicherung baue ich ein, keine Sorge. Es wird dann automatisch auf AVM umgeschaltet, wenn AVM im Image ist. Wenn AVM nicht da ist, wird dann auf NONE umgestellt.
2. rc.ftpd werde ich zu rc.avmftpd umbenennen. Der neue rc.ftpd wird dann die oben angesprochene Auswahl auswerten, quasi eine Weiche bilden und je nach dem zu einem von drei (rc.avmftpd / rc.vsftpd / rc.bftpd ) switschen.
3. Im Unterschied zu früher würde ich rc.ftpd als einen festen Bestandteil vom Mod sehen oder wenigstens in menuconfig so per Bedingungen festlegen, dass es immer da ist, sobald wenigstens einer der ftp-Servern im Image ist.

MfG
 
Auch dafür bietet Freetz eine Lösung.... Man könnte den AVM FTP drin lassen und deaktivieren. Wenn man den Online-Speicher braucht könnte man ja das Paket davfs2 nutzen.

@ hermann72pb

Das von dir vorgeschlagene ist natürlich schon eine sehr saubere und gute Lösung. Allerdings klingt es für mich auch nach viel Arbeit. Hier im Tread wurde mal sowas vorgeschlagen. Das würde es vllt ja auch erstmal tun.

http://www.ip-phone-forum.de/showthread.php?t=184535
attachment.php


LG Joe82
 
Zuletzt bearbeitet:
@Joe82: Du bist nicht der einzige, der das Problem hat. Daher strebe ich schon seit etwas längerer Zeit die drei FTP-Server irgendwie zu "vereinigen". Und super aufwendig ist es auch nicht.

MfG
 
Das wäre eine Lösung an der Quelle, die natürlich am saubersten wäre.
Ich werkele dennoch noch an meiner vorgeschlagenen "FTP-Weiche" weiter. Denn die Idee, die dahinter steckt ist nicht nur das Problem von Joe82 zu lösen, sondern eher eine umschaltbare Zentrale für ftp zu erschaffen. Den AVM-FTPD würde ich dagegen mehr und mehr Richtung eigenes Paket "verdrängen", der letztendlich nicht mehr und nicht weniger als nur einer von drei möglichen FTP-Klients sein sollte. Vielleicht läuft vsftpd oder bftpd als ein voller Ersatz für AVM-FTPD.
Darüberhinaus hatte ich bei busybox auch einen rudimentären ftp-Server gesehen. Wie gut der ist, weiß ich nicht. Man könnte aber auch den zu der Liste der Servern in dieser "Weiche" hinzufügen. Der Benutzer kann dann nach seinem Vorhaben wählen, welchen von den Servern er letztendlich nutzen will. Für kleinere Boxen und die Benutzung im internen Heimnetz wäre vielleicht sogar die Busybox-Variante die bessere. Die rc.ftpd wird dann an der Stelle einspringen, wo AVM meint ftpd restarten zu wollen (z.B. in den hotplug-Skripten). Dann wird eben der vsftpd (oder der andere) anstelle von avm-ftpd restartet.

MfG
 
@cuma
Bist du denn sicher, dass es ein Fehler im Code ist? Ich denke eher, dass es sich ähnlich wie bei Samba verhält. Der Daemon wird gestartet und forkt. Dann versucht er den Port zu öffnen. Was nicht funktioniert. Hier ist jedoch der ursprüngliche Prozess schon beendet und das Skript weiter gelaufen.

Gruß
Oliver
 
angesichts der erkannten Probleme wäre es vielleicht doch denkbar und sinnvoll in modlibrc meine ursprüngliche Funktion checkport() (oder wie sie auch immer hieß) zu reaktivieren? Ich wäre bereit sie auch den heutigen Bedürfnissen anzupassen. Man könnte dann bei den rc-Skripten, wo es bekannt ist, dass sie einen Port verwenden und standalone laufen vor dem Start einen checkport() aufrufen und im Fehlerfall mit einer passenden Fehlermeldung abbrechen. Dies würde zwar die Startprozedur um einige ms verlangsamen, dafür würden wir aber ziemlich sicher und eindeutig solche Fehler abfangen. Und zwar unabhängig davon, wann die Binaries es checken und ob es zu dem Zeitpunkt bereits durchlaufen ist oder nicht.
@Oliver: Du erinnerst dich sicherlich an unsere Änderungen bei sispmctl. Da war es eine ähnliche Geschichte mit dem Portcheck. Dort konnten wir zwar deine urprüngliche Daemonisierung etwas nach hinten rücken. Ich vermute aber, dass sowas nicht immer möglich sein wird. Mit einer optionalen checkport-Funktion in modlibrc hätten wir aber wenigstens eine universelle Möglichkeit sowas ziemlich leicht zu lösen, ohne die Binaries anfassen zu müssen.

MfG
 
Hallo zusammen,

ich habe zu dem Thema "vsftpd" eine Frage, hier passt es gerade rein, auch wenn der Thread ein paar Tage alt ist.

Ich bin vor ein paar Tagen von einer Fritzbox 7170 auf die 7390 umgestiegen und verwende als Firmware eine gefreezte 84.05.05. Wo kann ich denn Freetz sagen, dass es den AVM-eigenen FTP-Server entfernen soll? Ich finde lediglich einen Eintrag, dass die NAS-Weboberfläche entfernt werden kann.

Mir würde auch helfen, in der inetd.conf dauerhaft den AVM ftpd zu deaktivieren.

Im Moment ist es leider so, dass trotz bei ausgeschaltetem AVM FTP- und Mediaserver der ftpd über inetd gestartet wird. Ich muss dann den FTP-Server manuell starten und wieder stoppen, sodass ich überhaupt den vsftpd zum laufen bekomme. Einen alternativen Port für den vsftpd habe ich auch schon probiert, bekomme aber leider keine FTP-Verbindung zum Server, da wahrscheinlich der Port 20 von beiden verwendet wird.

Wäre schön, wenn jemand einen Tipp hätte, da dies im Moment noch das einzige Problem ist, welches ich mit der neuen Box habe.

Grüße

thrashi
 

Statistik des Forums

Themen
246,109
Beiträge
2,246,276
Mitglieder
373,592
Neuestes Mitglied
J500
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.