.titleBar { margin-bottom: 5px!important; }

[Gelöst] vsFTPd: tcp_wrappers Problem

Dieses Thema im Forum "Freetz" wurde erstellt von zirkon, 16 Feb. 2009.

  1. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    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?
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  3. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  5. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  6. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Hast du denn danach den vsftpd auch neu kompiliert? "make vsftpd-clean"

    MfG Oliver
     
  7. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  8. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  9. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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 :)
     
  10. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Für was braucht man das denn?

    MfG Oliver
     
  11. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  12. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  13. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #13 zirkon, 17 Feb. 2009
    Zuletzt bearbeitet: 17 Feb. 2009
    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 ?
     
  14. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    Ich versuche mich auch grad an tcp_wrapper.

    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
     
  15. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Ja, Du kannst das -lwrap ergänzen. Bitte beachte auch die Beiträge #3, #4 und #6 aus diesem Thread.
     
  16. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    Muss ich das machen, und wie geht das? :noidea:
     
  17. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  18. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Ich habe im Verzeichnis: "/freetz-trunk/packages/vsftpd-2.0.7/root/etc"

    Code:
    [B]ln -s /var/tmp/hosts.allow[/B] und [B]ln -s /var/tmp/hosts.deny[/B]
    gemacht.
     
  19. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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 :)
     
  20. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    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: