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

[PATCH] lighttpd Konfigurationsfrontend

Dieses Thema im Forum "Freetz" wurde erstellt von mehle, 2 Feb. 2009.

  1. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 mehle, 2 Feb. 2009
    Zuletzt bearbeitet: 10 Feb. 2009
    Hallo.

    anbei ist ein patch gegen freetz-stable-1.1, welches lighttpd integriert und ein kleines Konfigurationsfrontend bietet.

    Eigenschaften:
    - lighttpd läuft unter wwwrun:wwwrun Benutzer ID
    - Startskript prüft, ob docroot verfügbar ist - falls nicht, sleep 5 (für USB disks)
    - SSL Unterstützung
    - Frontend für Benutzerverwaltung
    - Frontend für Logdateien, CGI-Unterstützung, Kompression, 404-Seite, Zulassen generischer Konfigurationsänderungen

    Dieser Patch basiert nutzt Ideen des Frontends für vsftpd.

    Ich bitte um eine Aufnahme in die offizielle freetz Distribution oder um Kommentare.

    Alle Funktionen wurden getestet mit Ausnahme der Anzeige der englischen Übersetzung.

    UPDATE: nutzt die neuen Patches weiter unten

    UPDATE 2: neuster Patch anbei

    Ciao
    Stephan
     

    Anhänge:

  2. dileks

    dileks Neuer User

    Registriert seit:
    7 Apr. 2006
    Beiträge:
    180
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Grossraum Stuttgart
    Erst einmal Danke für deine Mühe, schlankere Alternativen zu apache sind gern gesehen :)

    Von meiner Seite wäre wünschenswert als zusätzliche Informationen:

    1. Screenshot(s) des Web-Frontends
    2. Statistik, z.B. Programmgrösse: physisch (FlashRAM, "filesystem") und Memory (free-Befehl)

    Danke jetzt schon für die Beantwortung meiner Fragen.
     
  3. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 mehle, 2 Feb. 2009
    Zuletzt bearbeitet: 2 Feb. 2009
    Screenshots - siehe anbei

    Speicher:

    /var/mod/root # free
    total used free shared buffers
    Mem: 61344 43776 17568 0 5544
    Swap: 0 0 0
    Total: 61344 43776 17568
    /var/mod/root # /etc/init.d/rc.lighttpd start
    Starting lighttpd ...done.
    /var/mod/root # free
    total used free shared buffers
    Mem: 61344 43824 17520 0 5544
    Swap: 0 0 0
    Total: 61344 43824 17520


    ==> 40 kb (wird aber mehr beim laufen) - ich habe schon bis zu 400kb gesehen

    Größe:
    -rwxr-xr-x 1 root root 181372 Feb 1 23:56 /usr/bin/lighttpd

    + 700 kb module

    Ciao
    Stephan
     

    Anhänge:

  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Hi.
    Ich hatte schonmal ein Patch für lighttpd gepostet. Hast du ganz von vorne angefangen oder hast du darauf aufgebaut?

    MfG Oliver
     
  5. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #5 mehle, 2 Feb. 2009
    Zuletzt bearbeitet: 2 Feb. 2009
    Ich hatte mir einen patch mal geladen, der die gesamte Konfig-Datei anzeigt. In meinem Patch sind das makefile/die config Dateien davon. Das gesamte Frontend habe ich komplett neu erstellt, damit ein einfacheres Konfigurieren ermöglicht wird.

    Da fällt mir ein: ich habe noch keine Referenzen an diesen Patch in meinem angegeben. Das muss ich gleich nachholen.

    UPDATE: ich habe gerade nochmal geschaut: der patch kommt von dir aus dem thread http://www.ip-phone-forum.de/showthread.php?p=1224825

    Ciao
    Stephan
     
  6. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Mal schauen ob es auch so gut läuft wie es aussieht ;-)
     
  7. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hier noch ein Update: hinzufügen des SSL CA certs und ein kleiner tweak beim Startskript: kein Löschen der ev. vorhandenen log Dateien, falls das Starten schief läuft und das saubere Löschen von alten Dateien bem stoppen.

    Ciao
    Stephan
     

    Anhänge:

  8. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Einke k.o. Frage: Kann das Ding auch was anderes als OpenSSL? Kann man da z.B. matrixtunnel/matrixssl einbinden? Wenn sowas ginge, hätte man wirklich was gekonnt, denn matrixtunnel wiegt ebenfalls nur 40kB. Im Prinzip ließe sich das Ganze auch umgehen, man muss nur Zwischenport für http wählen, lighthttp ohne ssl starten und trafik nach außen über matrixtunnel routen. Ich denke, sowas ließe sich relativ einfach in die bestehende WebUI integrieren.

    Basiert denn lighthttpd auf dem httpd, was schon in Freetz drin ist? Oder läuft es komplett selbstständig? Wie ist es überhaupt gebaut?

    MfG
     
  9. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum sollte man einen externen SSL Tunnel denn nicht nutzen können? Einfach das eingebaute SSL abschalten und den externen SSL Tunnel aufsetzen - diese externen Tunnel können alles tunneln, solange es einen Zielport hat (was ja bei HTTP bekanntlich der fall ist).

    Mir ist halt nur nicht klar, warum, aber dies ist ja nicht von belang hier ;-)

    re GUI: einen Tunnel werde ich nicht in die lighttpd GUI integrieren - warum auch, die haben ja selbst einen. Diese Tunnel sind vollständig autonom.

    re http: httpd kommt von busybox. Lighttpd ist ein eigenständiger Server, siehe http://www.lighttpd.net

    Ciao
    Stephan
     
  10. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Das habe ich nicht verstanden, kannst du es bitte ausführlicher erklären?

    Das Problem an der Fritz!Box ist die Inkompatibilität der AVM-SSL-Libs mit FREETZ-SSL-Libs. Die 1und1 User, die Plugin-Benutzer und noch eine Reihe von Mitsstreiter können dir hier ein Lied davon singen. Deswegen versuche ich hier schon seit einigen Monaten mit allen möglichen Mitteln gegen die totale ver-SSL-isierung zu kämpfen. SSL-Libs sind ein Monster für eine kleine Box und sind nur mit äußersten Vorsicht zu genießen. Das ist meine persönliche Meinung und ich bleibe dabei.

    Deswegen gilt es überall zu prüfen, ob man evtl. auch ohne SSLLibs auskommen kann. Und dafür gibt es Wege. Da du in diesem WebGUI schon alle passenden Masken für Zertifikate, Port usw. erstellt hast, wäre es dumm sie auch alternativ nicht zu nutzen. Ich sage ja nicht, dass du es implementieren muss, ich frage nur, ob du damit einverstanden wärest, wenn man dein WebGUI als Vorlage nimmt und ggf. so modifiziert, dass es auch mit matrixssl laufen kann. Wenn nicht, dann mache ich es halt basierend auf httpd irgendwann mal, wenn ich Zeit habe.

    MfG
     
  11. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    SSL tunnel (stunnel und Co) sind daemons, die vollständig unabhängig von jedem anderen Programm laufen. Du kannst jeden Verkehr über tunnel schicken.

    Z.B. konfiguriere den Tunnel auf port 443: jeder Verkehr, der auf Port 443 ankommt wird "ausgepackt" und dann an den konfigurierten internen Port weitergeleitet. Der Tunnel interessiert sich überhaupt nicht für die Daten, die im Tunnel entlang fliessen.

    Ciao
    Stephan
     
  12. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Das ist mir schon klar, aber ist es denn in diesem lighthttpd nicht drin integriert? Das versuche ich zu verstehen. Denn laut Seite, worauf du verwiesen hast, heißt es "mit ssl kompilieren" in diesem Fall wird nicht stunnel direkt dafür genommen, sondern lediglich SSLLibs. So verstehe ich es wenigstens. Also die Port-Geschichte und Zertifikate werden dann von lighthttpd dann selbst verwaltet.

    Da matrixtunnel sehr klein ist, wäre meine Idee es als eine alternative Option für SSL-Unterstützung anzubieten. Dass der Benutzer beim kompilieren z.B. wählen könnte "mit OpenSSL" oder "mit Matrixtunnel". Im zweiten Fall wäre anstatt OpenSSL dann matrixtunnel vorausgesetzt, die Startskripte wären etwas angepasst und man hätte die gleichen Angabemasken für Zertifikate nutzen können.

    Zertifikate generieren kann man übrigens mit AVM-SSL. Theoretisch wenigstens. Hat es jemand schon ausprobiert?

    MfG
     
  13. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    [Edit frank_m24: Sinnfreies Vollzitat vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

    Ahh, verstehe - Ziel wäre es, lighttpd ohne SSL Unterstützung zu kompilieren. Dann würde die Abhängigkeit von OpenSSL verschwinden da lighttpd das SSL von OpenSSL bekommt.

    Man müsste eine Option zulassen, dass SSL nicht mit kompiliert wird.

    Plan: Dies sollte kein Problem sein, werde ich mir anschauen. Nur wenn SSL Support integriert ist werden dann die SSL Konfig Optionen im Webfrontend angezeigt

    Ciao
    Stephan
     
  14. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    In diesem Zusammenhang schaue ich mir auch gleich an, ob man im make menuconfig nicht gleich eine Liste einbaut, mit der man die verschiedenen Module auswählen kann. Falls ein Modul nicht ausgewählt wird, wird es nicht kompiliert. Dies sollte das Paket kleiner machen.

    Ich habe eine 7270 mit 16MB Flash, da hatte ich mir noch keine Gedanken über die Größe gemacht :)

    Ciao
    Stephan
     
  15. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #15 mehle, 3 Feb. 2009
    Zuletzt bearbeitet: 3 Feb. 2009
    Anbei ist ein Update meines Patches mit folgenden Änderungen:

    - Frontend für Anzeigen der Status Seite
    - SSL-Unterstützung kann per make menuconfig deaktiviert werden - in diesem Falle keine Abhängigkeit von OpenSSL mehr
    - Fast alle lighttpd Module können via make menuconfig aus dem Image entfernt werden, damit Platz gespart wird

    Bitte helft bei folgendem (siehe README):
    - test disabling of SSL (no linking against SSL libs, SSL config options not displayed in web frontend, SSL config options not showing up in lighttpd.conf)
    - test of disabling of modules: mod_dirlisting, mod_auth, mod_cgi, mod_compress, mod_status to see whether web frontend does not show options for these any more and that config options do not show up in lighttpd.conf
    - test of disabling of mod_accesslog to see that the web frontend log page shows appropriate error and that lighttpd.conf does not contain the access log configuration any more

    UPDATE: Änderungen alle getestet - alles funktioniert mit diesem Patch

    Danke
    Stephan
     

    Anhänge:

  16. matze1985

    matze1985 Aktives Mitglied

    Registriert seit:
    17 Feb. 2007
    Beiträge:
    1,537
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    um den SSL-Teil auszublenden kannst du dir mal das VSFTPD_WEBIF anschauen, da haben wir das mit ner strings-abfrage gelöst.
    Code:
    if ! strings /usr/sbin/vsftpd | grep -q "SSL support not compiled in"; then
    sec_begin '$(lang de:"SSL-Einstellungen" en:"SSL Settings")'
    ......
    sec_end
    fi
     
  17. mehle

    mehle Mitglied

    Registriert seit:
    26 Jan. 2009
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Genauso ist es auch bei mir gelöst:

    if strings /usr/bin/lighttpd | grep -q "+ SSL Support"; then

    Probiert es aus!

    Ciao
    Stephan
     
  18. matze1985

    matze1985 Aktives Mitglied

    Registriert seit:
    17 Feb. 2007
    Beiträge:
    1,537
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ok hast du schon, dann habe ich oben deine Aufforderung zum helfen falsch verstanden. :)
    sorry
     
  19. Loewe81

    Loewe81 Neuer User

    Registriert seit:
    7 Jan. 2009
    Beiträge:
    157
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Taunusstein
    Kann ich diesen Patch auch in andere freetz-Version verwenden?
    Also z.B. im 1.0.2rc2?

    Ciao Stefan :)
     
  20. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Probier ihn aus. Wenn er passt, dann funktionierts. Ansonsten musst du evtl. eine Zeile in die make/Config.in per Hand eintragen.

    MfG Oliver