rc.ftpd einführen

Hier mal die gewünschten Dateien, auf Port 21 läuft nichts und in der inetd.conf steht auch nichts ....

[Edit frank_m24: Bitte benutzt CODE Tags für solche Ausgaben.]
Code:
# /etc/inetd.conf
#
# Internet server configuration database
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
# Internal services
#daytime	stream	tcp	nowait	root	internal
#daytime	dgram	udp	wait	root	internal
#time		stream	tcp	nowait	root	internal
#time		dgram	udp	wait	root	internal

#:dropbear: dropbear ssh server
#<off>#22	stream	tcp	nowait	root	/usr/sbin/dropbear	dropbear -i 

#:telnetd: telnet daemon
#<off>#23	stream	tcp	nowait	root	/usr/sbin/telnetd	telnetd -i -l /sbin/ar7login


netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5060            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:51111           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:49000           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:51112           0.0.0.0:*               LISTEN
tcp        0      0 fritz.box:139           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:4717            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6767            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:54321           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:82              0.0.0.0:*               LISTEN
tcp        0      0 localhost:1011          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 localhost:8888          0.0.0.0:*               LISTEN
tcp        0      0 fritz.box:445           0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:1024            0.0.0.0:*
udp        0      0 0.0.0.0:1025            0.0.0.0:*
udp        0      0 0.0.0.0:1026            0.0.0.0:*
udp        0      0 0.0.0.0:1027            0.0.0.0:*
udp        0      0 fritz.box:137           0.0.0.0:*
udp        0      0 0.0.0.0:137             0.0.0.0:*
udp        0      0 fritz.box:138           0.0.0.0:*
udp        0      0 0.0.0.0:138             0.0.0.0:*
udp        0      0 0.0.0.0:7077            0.0.0.0:*
udp        0      0 0.0.0.0:54321           0.0.0.0:*
udp        0      0 0.0.0.0:53              0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
udp        0      0 0.0.0.0:5060            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:1900            0.0.0.0:*
udp        0      0 0.0.0.0:123             0.0.0.0:*
raw        0      0 0.0.0.0:2               0.0.0.0:*               2
raw        0      0 0.0.0.0:2               0.0.0.0:*               2
raw        0      0 0.0.0.0:2               0.0.0.0:*               2
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING       2324 /var/rpc/configd
unix  2      [ ACC ]     STREAM     LISTENING       2584 /var/tmp/pbctrl
unix  2      [ ACC ]     STREAM     LISTENING       2586 /var/tmp/pb_event
unix  2      [ ACC ]     SEQPACKET  LISTENING       2646 /var/tmp/foncontrol
unix  2      [ ACC ]     SEQPACKET  LISTENING       2742 /var/tmp/dect_manager
 
Habe mittlerweile auf Version 74.04.80freetz-devel-4928 umgestellt.
Der inetd belegt Port 21 wenn man im freetz-Web-If den ftpd manuell startet.

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1465/inetd

aber das scheint auch alles zu sein der ftpd startet wohl nicht, nur der Port ist offen. Wo finde ich eigentlich die Einstellungen des ftpd?

Gruss Balou
 
Hast Du ausprobiert, ob es geht, oder nur keinen laufenden ftpd gefunden?
Und wenn es nicht funktioniert, wie genau äußert sich das?
 
Zum einen kann ich nicht mit einem FTP-Clienten darauf zugreifen (FileZilla) und wenn ich im Firefox versuche zuzugreifen passiert auch nichts. Habe das von mehereren Rechnern aus mit und und ohne Firewall getestet. Ps zeigt auch keinen ftpd. Ich bin etwas ratlos ...
 
Bei mir gibts gleich mehrere Probleme mit rc.ftpd und inetd (7270 Labor Preview).

  1. /etc/init.d/rc.ftpd wird beim Boxstart nicht aufgerufen (zumindest fehlt die ftpd Zeile in der inetd.conf).
  2. fehlende Berechtigung:
    Code:
    # ls -al /usr/bin/webdav_wrapper
    -rw-r--r--    1 root     root           203 May 10 10:05 /usr/bin/webdav_wrapper
    May 24 12:50:57 freetz daemon.err inetd[2390]: exec /usr/bin/webdav_wrapper: Permission denied
  3. Falsche Parameter für ftpd:
    Code:
    / # cat /etc/inetd.conf
    21 stream tcp6 nowait root /usr/bin/webdav_wrapper /sbin/ftpd /sbin/ftpd -q -t 30 -U -h FRITZ!BoxFonWLAN7270v2
    / # /sbin/ftpd -q -t 30 -U -h FRITZBoxFonWLAN7270v2
    Usage: /sbin/ftpd [OPTION] ...
    Try `/sbin/ftpd --help' for more information.
    / # /sbin/ftpd --help
    Usage: /sbin/ftpd [OPTION] ...
    Internet File Transfer Protocol server.
    
      -A, --anonymous-only      Server configure for anonymous service only
      -D, --daemon              Start the ftpd standalone
      -d, --debug               Debug mode
      -l, --logging             Increase verbosity of syslog messages
      -p, --pidfile=[PIDFILE]   Change default location of pidfile
      -q, --no-version          Do not display version in banner
      -t, --timeout=[TIMEOUT]   Set default idle timeout
      -T, --max-timeout         Reset maximum value of timeout allowed
      -u, --umask               Set default umask(base 8)
          --help                Print this message
      -V, --version             Print version
      -a, --auth=[AUTH]         Use AUTH for authentication, it can be:
                                   default     passwd authentication.
      -m, --max-clients         Restrict max. number of connected clients
      -h, --hostname            Set hostname
      -s, --sendfile            DON'T use sendfile() but read/write loop
    
    Submit bug reports to [email protected].
    / #

Was ist denn mit diesem ftpd_control Skript? Soll das vom ctlmgr aufgerufen werden?

MfG Oliver
 
Zuletzt bearbeitet:
@Oliver:
1. Kann es sein, dass rc.ftpd auch keine Ausführungsrechte hat?
2. Kann es sein, dass es wieder beim Einchecken nicht auf die execute-Rechte geachtet wurde, oder habe ich verschlafen? Der wrapper muss Ausführungsrechte haben.
3. Die Labor-Problematik habe ich noch nicht gelöst. Ich weiß, dass ftpd-Binary nun in den Labors ziemlich kastriert ist. Mangels Zeit hatte ich mir es aber noch nicht angeschaut. Die Frage ist allerdings: Wie bringst du FTPD dazu, die Option -U zu benutzen. Wenn ich es richtig verstanden habe, wird es eigentlich durch AVM-Parameter (Variablen) verboten -U zu nutzen. Mag allerdings sein, dass ich falsch liege.
Dein Problem Nr. 1 könnte übrigens auch was mit Labor zu tun haben . Wie gesagt, ich hatte mir die Labor-Version noch nicht angeschaut.
@balou1974: So sieht es aus, wenn es per inetd funktioniert
Code:
/var/mod/root # cat /etc/inetd.conf
21 stream tcp nowait root /usr/bin/webdav_wrapper /sbin/ftpd /sbin/ftpd -q -t 30 -h FRITZ!BoxFonWLAN7270(UI)
Weiterhin:
Code:
/var/mod/root # /etc/init.d/rc.ftpd status
running (inetd)
/var/mod/root # /etc/init.d/rc.ftpd restart
Stopping ftpd AVM FTP Server...(disabling over inetd)...done.
Starting ftpd AVM FTP Server...(enabling over inetd)...done.

Edit: ps würde ftpd im inetd-Modus nur dann zeigen, wenn du versuchst eine Verbindung aufzubauen, oder wenn sie steht. Das ist doch der Witz an inetd! Leute, versucht euch bitte etwas in die Materie einzulesen! Über inetd gibt es bestimmt ausreichend Wikipedia-Information, manpages, help und was weiß ich...

MfG
 
1+2: im SVN haben die Dateien das executable-Flag
 
Das x-Bit für den wrapper hab ich jetzt gesetzt. Was mir noch unklar ist, wie soll den rc.ftpd beim Boxstart aufgerufen werden? Das steht doch nicht in static.pkg oder?

MfG Oliver
 
Seit Trunk 4939 startet der ftpd (wenn auch nur manuell über freetz) aber er verlangt IMMER (auch wenn anonym erlaubt ist) nach einem Passwort bei ftpuser, leider nach keinem das ich vorgegeben habe :D Aber ich würde sagen sieht doch ganz gut aus - viel kann da jetzt nicht mehr faul sein. Wie gesagt der Autostart funktioniert immer noch nicht und die User/Passwort-Sache.
Aber dafür ist das ja hier der Trunk-Zweig :D Vielen Dank für Eure super Arbeit!

@hermann72pb: der ftpd läuft und trotzdem sieht man nichts in der indetd.conf?! dann wird das wohl vorher mit rc.ftpd gemacht, oder?
 
Zuletzt bearbeitet:
@Oliver: Du hast Recht, es wird nirgendswo aufgerufen. Eigentlich sollten wir in rc.mod neben telnetd und anderen auch noch
Code:
[ -x /etc/init.d/rc.ftpd ] && /etc/init.d/rc.ftpd start
einführen.

Ich hatte damals rc.ftpd eingeführt, um meine hotplug-Skripterei in FREETZMOUNT zu erleichtern. In den hotplug-Skripten wird rc.ftpd gestartet.

@balou1974: Die Benutzerverwaltung ist bei AVM sowieso ganz krum. Ich weiß nicht, woran es liegt, dass anonyme Benutzer nicht erlaubt sind. Es könnte entweder was damit zu tun haben, dass wir in diversen Skripten und Paketen (wie z.B. SAMBA) die passwd-Datei und alles rumherum um ftpuser etwas umbiegen. Dies könnte ein Grund dafür sein, dass anonyme Verbindung nicht zustande kommt. Oder eben diese Geschichte mit dem neuen ftpd, der überhaupt keine Option -U (die damit sicherlich was zu tun hat) beherrscht. Ich habe eine leise Vermutung, dass AVM diesbezüglich an ftpd-Binary und auch an der Umgebung (Variablen, etc.) auch was geändert hat.

MfG
 
Zuletzt bearbeitet:
Naja, die Patcherei an funktionierenden Programmen ist man ja von AVM gewöhnt, ob es sich dabei um Sicherheitsbelange oder Speicherplatzbelange handelt, keine Ahnung .... einfach ist es jedenfalls nicht dort die Fehler bzw. Unwegbarkeiten auszubügeln....
 
Wenn das ganze mit freetzmount funktioniert, dann sollten wir vielleicht überlegen die alte Methode (usbstorage.patch) zu entfernen? Warum sollen wir da Klimmzüge machen, wenn es in ein paar Monaten dann obsolete ist?

MfG Oliver
 
@Oliver:
1. FREETZMOUNT bleibt aber dennoch optional, egal, ob man die alten usbstorage-Patches weg nimmt oder nicht. D.h. es ist nicht immer da.
2. Wenn ftpd über hotplug-Skripte gestartet wird, dann würde es jetzt nur mit einem eingesteckten Medium passieren (oder eben beim Einstecken). So ganz glücklich wäre ich darüber nicht.

Von daher wäre ich dafür in rc.mod die gepostete Zeile reinzubringen. In rc.ftpd habe ich eine Überprüfung darauf ob es bereits läuft und ob es in AVM-WebIF aktiviert ist. In beiden Fällen (bereits läuft oder in AVM-WebIF deaktiviert) würde so einen Start in rc.mod mit "failed" terminieren, was ich allerdings nicht als schlimm empfinde. Man könnte natürlich eine Statusüberprüfung und Abfrage des AVM-Statuses in rc.mod einführen, dies würde jedoch die Sache nur unnötig verkomplizieren.

Übrigens, neben der "lite" Version mit nur rc.ftpd plane ich noch ein Paket Namens avm-ftpd oder so ähnlich einzuführen. Dort wird dann eine WebIF-Seite mit einigen FREETZ-typischen-Einstellungen zu Verfügung gestellt, die man über AVM-WebIF nicht ändern kann (z.B. inetd/daemon, String, Portnummer, etc.). Später könnte man diesen Pfad erweitern, wenn wir die ftpd-Binary selbst zum Kompilieren hinkriegen.
Zu diesen Einstellungssachen habe ich bereits erste Gehversuche gemacht und sie scheinen zu funktionieren. Wie gesagt, wenn ich so weit bin, dann poste ich hier was.

MfG
 
Falsche Parameter für ftpd:
Code:
/ # cat /etc/inetd.conf
21 stream tcp6 nowait root /usr/bin/webdav_wrapper /sbin/ftpd /sbin/ftpd -q -t 30 -U -h FRITZ!BoxFonWLAN7270v2
/ # /sbin/ftpd -q -t 30 -U -h FRITZBoxFonWLAN7270v2
Usage: /sbin/ftpd [OPTION] ...
Try `/sbin/ftpd --help' for more information.
Ich habe mir mal ein image gebaut, wo ich den '-U' parameter in /etc/init.d/rc.ftpd weggelassen habe.
Code:
        AVM_FTP_USER=$(echo usbhost.users_enabled | usbcfgctl -s)
        if [ "$AVM_FTP_USER" = "yes" ]
        then
                local ftp_options="$ftp_options"
        else
                AVM_FTP_RO=$(echo usbhost.readonly | usbcfgctl -s)
                if [ "$AVM_FTP_RO" != "no" ]
                then
                        local ftp_options="$ftp_options -r"
                fi
        fi
Jetzt habe ich zwar wieder ein ftp-Login, aber er erkennt das Passwort nicht an:
Code:
Connected to fb3.local.
220 FRITZ!BoxFonWLAN7270v2 FTP server ready.
Name (fb3:root): ftpuser
331 Password required for ftpuser.
Password:
530 Password required for ftpuser.
Login failed.
Wegen des nicht funktionierenden ftp-Logins funktiniert auch diese NAS-Mimik von AVM nicht. Gibt es schon irgendeinen Workaround oder andere Lösung?
 
@udosw: Ich hatte vor kurzem das gleiche getan, nämlich Zeile mit -U auskommentiert. Dies ist sogar in einen Patch von mir eingeflossen, wo ich "extended"-Optionen für Starts und Stops vorgeschlagen hatte. Leider hat die Community hier noch nicht begriefen, was ihr dabei entgeht und was wirklich sonst hinter dieser Idee steckt. Ich beuge mich aber dem demokratischen Prinzip hier und kämpfe gar nicht mehr dafür, dass es in den Trunk einfließt. Und das wird es wahrscheinlich auch nicht tun, wie ganz viele Ideen von mir, die zu spezifisch für die Allgemeinheit hier waren.
Aber zurück zum Thema: ich hatte es bei mir ausgetestet und sogar extra dafür ein Image mit Labor für eine 7270 gebaut, obwohl ich eigentlich nie mit Labors von AVM spiele. Und ich konnte eine Verbindung mit ftpuser aufbauen. Allerdings muss ich dazu sagen, dass der ftpuser als Benutzer in passwd existiert und sein Passwort aus shadow in passwd anstatt x stehen hat. Das ist ein Workarround, der hier schon lange kursiert und bekannt ist. Die Anmeldung war allerdings nur als ftpuser und mit dem entsprechenden Passwort möglich. Alles andere geht nicht. Ich hatte sogar versucht ftpd mit Option -A zu starten. Daraufhin lässt ftpd keine Anmeldung vom ftpuser mehr zu und meldet, dass er in Anonymous-Modus ist. Allerdings war mir nicht gelungen eine Verbindung mit dem Benutzer "anonymous" und dem gleichen passwort oder gar keinem Passwort zu erstellen. Da ist eindeutig noch ein Wurm drin, denn Oliver hatte sich schon mit den Quellen von ftpd auseinandergesetzt gehabt und es sein gelassen, weil AVM gerade wegen ihrem ftpuser die Benutzerverwaltung sowas von kastriert hat, dass es gar nicht mehr geht.
Was ist denn die NAS-Mimik von AVM? Kannst du uns bitte dazu etwas abholen? Wofür braucht denn NAS FTP? Ich habe hier bei mir ein NAS von QNAP (was ich wirklich als NAS auch stolz bezeichnen kann). Da gibt es zwar FTP-Server auch gratis dazu, dennoch nicht als eine zwingende Voraussetzung. Was hat denn AVM da wieder verbrochen?
Ich hatte eigentlich langfristig geplant etwas weiter zu gehen und rc.ftpd zu einer Schaltzentrale für unsere drei FTP-Server auszubauen und für AVM-FTPD einen rc.avmftpd zu schreiben (bzw. jetziges Code nach dahin zu schieben). Somit könnte man alle Programme, die FTP-Server brauchen und den auch HUPen oder restarten wollen diese rc.ftpd zur Verfügung stellen. Innerhalb von rc.ftpd wird dann entschieden, ob AVM-ftpd oder bftpd oder vsftpd als FTP-Server dienen. Vielleicht könnte man dadurch die ftpd-Aufrufe auf einen vernünftigeren FTP-Server (z.B. vsftpd) "umbiegen" und damit deine NAS-Probleme lösen.

MfG
 
... der ftpuser als Benutzer in passwd existiert und sein Passwort aus shadow in passwd anstatt x stehen hat.
Hab' ich gerade mal probiert, jetzt kommt:
Code:
220 FRITZ!BoxFonWLAN7270v2 FTP server ready.
Name (fb3:root): ftpuser
331 Password required for ftpuser.
Password:
550 Can't change to home directory.
D.h., dass er immerhin das Passwort auf diese Weise erkennt.
Naja, ich finde es schade, dass man diese ftp-Sachen in Freetz nicht wenigstens abschalten kann oder nur optional hat.
Das NAS ist eine Spielerei von AVM, die in den neuesten Labor-Versionen drin ist. Ich brauche das nicht wirklich, aber es benutzt ftp (in einer Klicki-Bunti-Weboberfläche). Das war nur als Beispeil gedacht.

Also ftp wieder ans laufen kriegen, das wär' ne Massnahme ...
 
Setz in der selben Datei mal das Homedir vom ftp-user korrekt und achte darauf, dass die Rechte im entsprechenden Verzeichnis passen.
 
@Silent-Tears: Hab ich natürlich gemacht. Kein Erfolg.
 
Wo ist denn das Homedir? Wie sind die Rechte auf dem Pfad dahin? Am besten zeigst du uns ein paar "ls -al".

MfG Oliver
 
Es funktioniert mit ftpuser. Das habe ich ausprobiert bei mir. Natürlich müssen dann Homeverzeichnis und sonstige Sachen passen.
Was stand denn bei dir vorher beim ftpuser in passwd? Stand da 'any' als Passwort? Das ist nämlich die übliche Methode von AVM gewesen.

Ich hatte gerade versucht mit den Passwörter zu spielen. Irgendwie nimmt ftpd die Änderungen nicht an. Also, da ist noch irgendein Wurm drin. Ich werde es mir nachher anschauen. Nicht, dass AVM da in die /etc/passwd gar nicht mehr schaut.


MfG
 
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.