[Erledigt] vsftpd via inetd: pasv_address wird nicht eingetragen

Status
Für weitere Antworten geschlossen.

SaschaBr

Aktives Mitglied
Mitglied seit
1 Mai 2007
Beiträge
2,350
Punkte für Reaktionen
32
Punkte
48
Momentan verwende ich folgende Konfig: AVM-Preview-Labor+trunk5262
Lasse ich vsftpd über inetd starten, wird die passv_address nach einer Änderung der öffentlichen IP (zum Beispiel durch die Zwangstrennung) nicht aktualisiert, wodurch dann kein FTP mehr möglich ist.
Im Betriebsmodus "automatisch" funktioniert das ganz normal, hat aber mit meiner letzten Konfiguration (80er-Firm+trunk4959) auch im Modus "inetd" funktioniert.



EDIT:
Problem wurde mit Changeset 5264 temporär von cuma gefixed.
 
Zuletzt bearbeitet:
Problem ist bekannt und wir bzw. cuma arbeiten daran. Nach einem Neustart der Box sollten die Config-Änderungen aber funktionieren.

MfG Oliver
 
Wie meinst Du das: "Nach einem Neustart der Box sollten die Config-Änderungen aber funktionieren."? Auch hier klappt vsftpd nur bis zum nächsten Wechsel der IP.

Ich lasse vsftpd jetzt erstmal im Modus "automatisch" laufen, damit funktioniert es ja.
Wenn Ihr was zum Testen habt, oder auch einfach nur weitere Informationen braucht, gebt Bescheid.
 
Kannst du mal bitte folgendes im inetd-Modus machen und das Ergebnis posten:
Code:
sh -x /etc/init.d/rc.vsftpd reload
MfG Oliver

edit: Onlinechanged-cgi hast du im Image?
 
Hier das Ergebniss von sh -x /etc/init.d/rc.vsftpd reload :
Code:
/var/mod/root # sh -x /etc/init.d/rc.vsftpd reload
+ DAEMON=vsftpd
+ LOG_LINK=/var/log/mod_vsftpd.log
+ PID_FILE=/var/run/vsftpd.pid
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ : vsftpd
+ : vsftpd
+ : vsftpd_ENABLED
+ : vsftpd
+ : /var/run/vsftpd.pid
+ [ -n vsftpd ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/vsftpd.cfg
+ [ ! -r /mod/etc/conf/vsftpd.cfg ]
+ . /mod/etc/conf/vsftpd.cfg
+ export VSFTPD_ADD_SETTINGS=user_config_dir=/var/media/ftp/LOGS/vsftp_user_conf
userlist_file=/var/media/ftp/LOGS/vsftp_user_conf/vsftpd.user_list
userlist_deny=NO
require_ssl_reuse=NO
banner_file=/var/media/ftp/LOGS/motd
+ export VSFTPD_ALLOW_FTPUSER=no
+ export VSFTPD_ALLOW_ROOT=no
+ export VSFTPD_ANONYMOUS=no
+ export VSFTPD_ANON_ROOT=/mod/home/ftp
+ export VSFTPD_CHROOT=yes
+ export VSFTPD_CHROOT_JAIL_LIST=
+ export VSFTPD_DELAY_FAILED_LOGIN=15
+ export VSFTPD_ENABLED=inetd
+ export VSFTPD_ENABLE_RELOAD_SCRIPT=yes
+ export VSFTPD_ENABLE_SSL=yes
+ export VSFTPD_ENABLE_SSLV2=yes
+ export VSFTPD_ENABLE_SSLV3=yes
+ export VSFTPD_ENABLE_TLSV1=yes
+ export VSFTPD_FORCE_DATA_SSL=yes
+ export VSFTPD_FORCE_LOGIN_SSL=yes
+ export VSFTPD_LOG_ENABLE=yes
+ export VSFTPD_LOG_FILE=/var/media/ftp/LOGS/vsftpd/vsftpd.fbt
+ export VSFTPD_LOG_PROTOC=no
+ export VSFTPD_LOG_SYSLOG=no
+ export VSFTPD_MAX_CLIENTS=12
+ export VSFTPD_MAX_PER_IP=3
+ export VSFTPD_PASV_ADDRESS=yes
+ export VSFTPD_PASV_MAX=21262
+ export VSFTPD_PASV_MIN=21212
+ export VSFTPD_PORT=21
+ export VSFTPD_PROMISCUOUS=yes
+ export VSFTPD_USERS_ENABLED=yes
+ modlib_reload
+ local fn=/var/run/vsftpd.pid
+ echo -n Reloading vsftpd...
Reloading vsftpd...+ modlib_check_running
+ tr [:lower:]- [:upper:]_
+ echo vsftpd_ENABLED
+ eval echo $VSFTPD_ENABLED
+ echo inetd
+ [ inetd == inetd ]
+ return 5
+ echo not running.
not running.
+ return 0
+ exit 0

Nein, onlinechanged.cgi habe ich nicht im Image.
 

Anhänge

  • config.txt
    3.7 KB · Aufrufe: 2
[...]
Nein, onlinechanged.cgi habe ich nicht im Image.

Ich habe onlinechanged-cgi im Freetz-Image und trotzdem folgende Ausgabe:
Code:
/var/mod/root # sh -x /etc/init.d/rc.vsftpd reload
+ DAEMON=vsftpd
+ LOG_LINK=/var/log/mod_vsftpd.log
+ PID_FILE=/var/run/vsftpd.pid
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ : vsftpd
+ : vsftpd
+ : vsftpd_ENABLED
+ : vsftpd
+ : /var/run/vsftpd.pid
+ [ -n vsftpd ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/vsftpd.cfg
+ [ ! -r /mod/etc/conf/vsftpd.cfg ]
+ . /mod/etc/conf/vsftpd.cfg
+ export VSFTPD_ADD_SETTINGS=
+ export VSFTPD_ALLOW_FTPUSER=yes
+ export VSFTPD_ALLOW_ROOT=yes
+ export VSFTPD_ANONYMOUS=no
+ export VSFTPD_ANON_ROOT=/mod/home/ftp
+ export VSFTPD_CHROOT=no
+ export VSFTPD_CHROOT_JAIL_LIST=
+ export VSFTPD_DELAY_FAILED_LOGIN=15
+ export VSFTPD_ENABLED=inetd
+ export VSFTPD_ENABLE_RELOAD_SCRIPT=yes
+ export VSFTPD_ENABLE_SSL=no
+ export VSFTPD_ENABLE_SSLV2=no
+ export VSFTPD_ENABLE_SSLV3=no
+ export VSFTPD_ENABLE_TLSV1=no
+ export VSFTPD_FORCE_DATA_SSL=no
+ export VSFTPD_FORCE_LOGIN_SSL=no
+ export VSFTPD_LOG_ENABLE=no
+ export VSFTPD_LOG_FILE=/var/log/vsftpd.log
+ export VSFTPD_LOG_PROTOC=no
+ export VSFTPD_LOG_SYSLOG=no
+ export VSFTPD_MAX_CLIENTS=25
+ export VSFTPD_MAX_PER_IP=5
+ export VSFTPD_PASV_ADDRESS=no
+ export VSFTPD_PASV_MAX=0
+ export VSFTPD_PASV_MIN=0
+ export VSFTPD_PORT=xxxxx
+ export VSFTPD_PROMISCUOUS=no
+ export VSFTPD_USERS_ENABLED=yes
+ modlib_reload
+ local fn=/var/run/vsftpd.pid
+ echo -n Reloading vsftpd...
Reloading vsftpd...+ modlib_check_running
+ tr [:lower:]- [:upper:]_
+ echo vsftpd_ENABLED
+ eval echo $VSFTPD_ENABLED
+ echo inetd
+ [ inetd == inetd ]
+ return 5
+ echo not running.
not running.
+ return 0
+ exit 0
 
Das Problem ist in modlib_reload. Hier wird modlib_check_running aufgerufen, welches für den Fall inetd "not running" liefert. Somit wird config nicht aufgerufen...
Code:
...
	echo -n "Reloading ${DAEMON_LONG_NAME}..."
	if ! modlib_check_running; then
		echo 'not running.'
		return 0
	fi
	config
	kill -HUP $(cat "$fn") 2> /dev/null
...

MfG Oliver

edit: Aber onlinechanged-cgi benötigt es trotzdem. Sonst wird nicht neu geladen.
 
Onlinechanged.cgi habe ich bisher noch nie bewusst ausgewählt gehabt, auch in dieser Konfig nicht, aber wenn vsftpd auf "automatisch" steht, wird ja auch die passv_address eingetragen.
Onlinechanged.cgi ist doch nur ein Web-Frontend, oder nicht? Steht leider auch nichts zu im Wikki.
 
[...]
Onlinechanged.cgi ist doch nur ein Web-Frontend, oder nicht?
Nein. onlinechanged-cgi hat auch Skripte im files-Verzeichnis:
Code:
:~/myfreetz/freetz5262/freetz-trunk> ls -lR make/onlinechanged-cgi/files
make/onlinechanged-cgi/files:
insgesamt 0
drwxr-xr-x 4 gm users 96 16. Jul 18:33 root

make/onlinechanged-cgi/files/root:
insgesamt 0
drwxr-xr-x 6 gm users 168 16. Jul 18:33 etc

make/onlinechanged-cgi/files/root/etc:
insgesamt 0
drwxr-xr-x 3 gm users 192 16. Jul 18:33 default.onlinechanged
drwxr-xr-x 3 gm users 104 16. Jul 18:33 init.d
drwxr-xr-x 3 gm users 112 16. Jul 18:33 onlinechanged

make/onlinechanged-cgi/files/root/etc/default.onlinechanged:
insgesamt 8
-rw-r--r-- 1 gm users   0 16. Jul 18:33 onlinechanged.cfg
-rwxr-xr-x 1 gm users 664 16. Jul 18:33 onlinechanged-cgi
-rw-r--r-- 1 gm users 633 16. Jul 18:33 onlinechanged.def

make/onlinechanged-cgi/files/root/etc/init.d:
insgesamt 4
-rwxr-xr-x 1 gm users 612 16. Jul 18:33 rc.onlinechanged

make/onlinechanged-cgi/files/root/etc/onlinechanged:
insgesamt 4
-rwxr-xr-x 1 gm users 243 16. Jul 18:33 onlinechanged-cgi.sh

EDIT:
FRAGE: Unabhängig von der modlib_reload, muss das Skript "reload_vsftpd" nicht ausführbar sein? Bei mir ist es nicht:
Code:
/etc/onlinechanged # ls -l
-rwxr-xr-x    1 root     root           243 Jul 16 18:33 onlinechanged-cgi.sh
[B]-rw-r--r--    1 root     root           216 Jul 16 18:33 reload_vsftpd[/B]
-rwxr-xr-x    1 root     root           289 Jul  5 08:31 start_matude
-rwxr-xr-x    1 root     root           170 Jul  6 00:57 start_noip
-rwxr-xr-x    1 root     root           215 Jul  5 08:31 start_opendd
Im syslog gibt es auch keine Info zu reload VSFTP after IP-change. Liegt evtl. am reload, Infos gibt es evtl. nur für start after IP-change.
Code:
Jan  1 01:00:58 82 user.notice info: start MATUDE after IP-change                                                                                                                   
Jan  1 01:00:58 82 user.notice info: start NOIP after IP-change                                                                                                                     
Jan  1 01:00:58 82 user.notice info: start OPENDD after IP-change

Obwohl im Skript steht Folgendes:
Code:
logger -t info Reload VSFTPD due IP-change
 
Zuletzt bearbeitet:
Aber nochmal:
/etc/onlinechanged/reload_vsftpd hat ja bisher auch ohne das onlinechange-cgi funktioniert:
Code:
Jul 17 09:35:06 fritz user.notice info: Reload VSFTPD due IP-change

Außerdem sind auf meiner Box auch Onlinechange-Dateien vorhanden:
Code:
/ # find -iname onlinechanged
./bin/onlinechanged
./etc/onlinechanged
./var/tmp/onlinechanged

Ich hab kein Problem, das mit in die Firmware aufzunehmen, aber ich verstehe nicht, wenn es (bisher) auch ohne funktionierte, wofür braucht es das jetzt?
 
Kann sein. Ich habe onlinechanged-cgi schon immer im Freetz-Image. Dann wird das Verzeichnis "/etc/onlinechanged/" nicht vom Paket "onlinechanged-cgi" angelegt. Evtl. gibt es mehrere onlinechanged auf der FritzBox.

Ist "/etc/onlinechanged/reload_vsftpd" bei dir ausführbar?

EDIT:
Hier (klick) kann man im Wiki über onlinechanged lesen. Es geht auch ohne das Paket "onlinechanged-cgi".
 
Zuletzt bearbeitet:
Ja, "/etc/onlinechanged/reload_vsftpd" ist da.
Das hatte ich im Wiki auch gefunden, aber nichts über ...cgi.

Mach mir mal bitte 'nen Screenshot von dem Onlinechanged-cgi
 
Es wird so sein, dass Du für "reload_vsftpd", onlinechanged-cgi nicht brauchst. Im Anhang der screenshot. Poste mal bitte die Ausgabe von:
Code:
# ls -la /etc/onlinechanged/reload_vsftpd
 

Anhänge

  • onlinechanged_cgi.jpeg
    onlinechanged_cgi.jpeg
    146.4 KB · Aufrufe: 12
Code:
/ # ls -la /etc/onlinechanged/reload_vsftpd
-rw-r--r--    1 root     root           216 Jul 14 15:55 /etc/onlinechanged/reload_vsftpd
 
OK, danke. D. h. das Skript "reload_vsftpd" muss nicht ausführbar sein. Wie Oliver geschrieben hat, es liegt an "modlib_reload".
 
Hast du die "Reload-Skript" Option im Webinterface aktiviert? Die Meldung sollte doch im Syslog auftauchen.

Ich hatte nicht bedacht, dass onlinechanged auch ohne das cgi ausgeführt wird...

MfG Oliver
 
Ja, habe ich.
Im Syslog taucht immer nach IP-Wechsel im Syslog
Code:
Jul 17 04:52:03 fritz user.notice info: Reload VSFTPD due IP-change
auf, und die passv_address in der Konfig wird erneuert, und vsftpd neugestartet.

Das bisher (also mit meiner alten Firmware) auch im inetd-Modus funktioniert.
 
Code:
Script /etc/onlinechanged/reload_vsftpd aktivieren, damit die Konfiguration nach einem IP-Wechsel neu generiert wird.
ist bei mir aktiviert. Bei einem reboot habe ich im syslog die Meldungen der anderen Skripte, aber nicht die von reload_vsftpd. Ich werde es mal versuchen mit ausführbarem Skript.

EDIT:
@SaschaBr:
cuma hat im trac schon was geändert. Siehe dort.
 
Zuletzt bearbeitet:
Mit "multid -s; multid" sollte du das provozieren können.

MfG Oliver
 
Von dem Script reload_vsftpd habe ich auch keine Einträge im Syslog, nur den oben genannten Eintrag (oder kommt dieser sogar aus diesem reload-Sctript?).


EDIT
@sf3978:
OK, werde gleich mal auschecken und neue Firm bauen
 
Status
Für weitere Antworten geschlossen.

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
244,872
Beiträge
2,219,909
Mitglieder
371,594
Neuestes Mitglied
AA-Idealbau
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.