[Gelöst] vsFTPd: tcp_wrappers Problem

zirkon

Aktives Mitglied
Mitglied seit
12 Aug 2008
Beiträge
906
Punkte für Reaktionen
0
Punkte
0
Habe die VSFTPD.CONF um tcp_wrappers=YES erweitert, erhalte beim FTP Login jedoch folgende Fehlermeldung:
Code:
500 OOPS: tcp_wrappers is set to YES but no tcp wrapper support compiled in
Ist es jetzt ein großer Aufwand dies mit einzukompilieren?
 
Die tcp_wrappers sind in Freetz drin. Die musst du im menuconfig aktivieren und dann wahrscheinlich noch eine Option beim configure des vsftpd und voila...

Mfg Oliver
 
tcp_wrappers wird ja automatisch mit eingebunden (vllt. auch wegen anderer installierter Pakete), sodass man es gar nicht mehr separat aktivieren kann.

In der builddefs.h von vsftpd ist folgende Zeile zu finden:
Code:
#undef VSF_BUILD_TCPWRAPPERS
Müsste da nicht ein #define hin?
 
So stehts zumindest in der Readme. Pass auf, dass du /etc/hosts.allow/deny als Symlink anlegst, wenn du kein nfsd im Image hast.

MfG Oliver
 
Habe nun die Datei builddefs.h im Ordner source verändert und eine neue FW erstellt. Leider erhalte ich immer noch die o.g. Fehlermeldung. Habe ich etwas falsch gemacht, vergessen, oder gar die falsche Datei editiert?
 
Hast du denn danach den vsftpd auch neu kompiliert? "make vsftpd-clean"

MfG Oliver
 
Hatte natürlich gefehlt - jetzt erhalte ich folgende Meldung.

Code:
tcpwrap.o: In function `vsf_tcp_wrapper_ok':
tcpwrap.c:(.text+0x20): undefined reference to `request_init'
tcpwrap.c:(.text+0x48): undefined reference to `sock_host'
tcpwrap.c:(.text+0x58): undefined reference to `hosts_access'
collect2: ld returned 1 exit status
make[1]: *** [vsftpd] Fehler 1
make[1]: Leaving directory `/home/slightly/freetz/freetz-trunk/source/vsftpd-2.0.7'
make: *** [source/vsftpd-2.0.7/vsftpd] Fehler 2
 
Du musst auch gegen die Lib linken...
Code:
--- vsftpd-2.0.7/Makefile.orig  2009-02-17 11:02:02.000000000 +0100
+++ vsftpd-2.0.7/Makefile       2009-02-17 11:01:10.000000000 +0100
@@ -5,7 +5,7 @@
 #CFLAGS = -g
 CFLAGS =       -O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion
-LIBS   =       -lcrypt -lnsl
+LIBS   =       -lcrypt -lnsl -lwrap
 LINK   =
 OBJS   =       main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
MfG Oliver
 
Perfekt und danke für deine schnelle und kompetente Hilfe! Habe das Image nun neu erstellt und es klappt alles wie vorhergesehen.

Sollte man diese Option im menuconfig nicht auch bei vsFTPd auswählen können oder ist sowas nicht erwünscht? Wäre für mich wieder eine gute Übung einen Patch zu erstellen. Oder ist tcp_wrappers generell zu "alt"? Hatte da mal was über xinetd in Verbindung mit dem ds-mod gelesen... Bitte nicht steinigen, wenn ich etwas verwechsle :)
 
Für was braucht man das denn?

MfG Oliver
 
Damit man Rechte für Clients via hosts.allow und .deny setzen kann. Nur schade, dass man keine DynDNS-Adresse verwenden kann, aber das ist ein anderes Thema.
Code:
vsftpd: 192.168.0.0/255.255.255.0
Oder meintest du nicht tcp_wrappers?
 
doch, man kann es schon, nur mit einem gewissen Aufwand. Ich hatte sowas auf einem PC-basierten Linux-Router mit iptables realisiert gehabt. Iptables konnte mit dyndns-namen dynamisch auch nicht arbeiten (zumindest in der Version, die ich damals hatte). Man konnte eine Regel mit dem dyndns-Namen schon einfügen, die hat aber so lange funktioniert, bis die IP sich geändert hat. Anscheinend hat iptables den Namen sofort in eine IP-Adresse umgewandelt und so für sich intern abgespeichert. Meine Lösung war alle 5 Minuten die entsprechenden Regeln aus IPTABLES zu löschen und neu anzulegen (es ist bei IPTABLES im laufenden Betrieb möglich). D.h. alle 5 Minuten lief bei mir über cron ein Skript, welches dies erledigt hat. Nachteil liegt auf der Hand: Hat man eine neue IP, sollte man im schlimmsten Fall 5-7 Minuten warten, bis man "drauf" darf.

So ähnlich kann man auch hier vorgehen und hosts.allow per cron und per Skript neu generieren lassen. Hoffentlich geht es ohne Neustart der Dienste. Wenn es läuft, kann man daraus später ein Paket machen. Wird mit Sicherheit einige hier interessieren.

MfG
 
Schafft halt kein dns lookup. Über eine skriptbasierte Lösung hatte ich mir auch schon Gedanken gemacht. Habe bis jetzt aber noch nicht ausmachen können, ob xinetd als Alternative taugt.

Hier mal ein Artikel dazu: What's that, xinetd ?
 
Zuletzt bearbeitet:
Ich versuche mich auch grad an tcp_wrapper.

... gegen die Lib linken...

Heißt dass, ich muss das -lwrap ergänzen, oder muss ich diese beiden zeilen mit plus und minus da so einfügen?

Code:
-LIBS   =       -lcrypt -lnsl
+LIBS   =       -lcrypt -lnsl -lwrap
 
Ja, Du kannst das -lwrap ergänzen. Bitte beachte auch die Beiträge #3, #4 und #6 aus diesem Thread.
 
Und wohin geht der Link? Solltest du schon zwei passende Dateien unter /tmp/flash erstellen und darauf zeigen - aber schon direkt auf der FB, nicht in deiner Linux-Umgebung :)
 
Werde ich die Tage nochmal probieren. So auf die schnelle hatte ich da 'nen Fehler im Make. Habe da wohl irgendwas falsch gemacht.... :noidea:

@ zirkon: :bahnhof:
 
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.