[PATCH] lighttpd Konfigurationsfrontend

mehle

Mitglied
Mitglied seit
26 Jan 2009
Beiträge
273
Punkte für Reaktionen
0
Punkte
0
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

  • lighttpd-freetz-1.4.20-6.patch.bz2
    11.2 KB · Aufrufe: 104
Zuletzt bearbeitet:
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.
 
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

  • einstellung_add.jpg
    einstellung_add.jpg
    99.8 KB · Aufrufe: 453
  • einstellung_cert.jpg
    einstellung_cert.jpg
    115.8 KB · Aufrufe: 286
  • einstellung_rights.jpg
    einstellung_rights.jpg
    110.3 KB · Aufrufe: 239
  • einstellung_user.jpg
    einstellung_user.jpg
    136 KB · Aufrufe: 232
  • packet_oben.jpg
    packet_oben.jpg
    114.7 KB · Aufrufe: 275
  • packet_unten.jpg
    packet_unten.jpg
    108.1 KB · Aufrufe: 243
Zuletzt bearbeitet:
Hi.
Ich hatte schonmal ein Patch für lighttpd gepostet. Hast du ganz von vorne angefangen oder hast du darauf aufgebaut?

MfG Oliver
 
Hi.
Ich hatte schonmal ein Patch für lighttpd gepostet. Hast du ganz von vorne angefangen oder hast du darauf aufgebaut?

MfG Oliver

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
 
Zuletzt bearbeitet:
Mal schauen ob es auch so gut läuft wie es aussieht ;-)
 
Mal schauen ob es auch so gut läuft wie es aussieht ;-)

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

  • lighttpd-freetz-1.4.20-2.patch.bz2
    8.2 KB · Aufrufe: 22
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
 
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
 
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.

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
 
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
 
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
 
[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
 
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
 
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

  • lighttpd-freetz-1.4.20-3.patch.bz2
    10.2 KB · Aufrufe: 19
Zuletzt bearbeitet:
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
 
Genauso ist es auch bei mir gelöst:

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

Probiert es aus!

Ciao
Stephan
 
ok hast du schon, dann habe ich oben deine Aufforderung zum helfen falsch verstanden. :)
sorry
 
anbei ist ein patch gegen freetz-stable-1.1, welches lighttpd integriert und ein kleines Konfigurationsfrontend bietet.
Kann ich diesen Patch auch in andere freetz-Version verwenden?
Also z.B. im 1.0.2rc2?

Ciao Stefan :)
 
Probier ihn aus. Wenn er passt, dann funktionierts. Ansonsten musst du evtl. eine Zeile in die make/Config.in per Hand eintragen.

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