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

[Frage] Apache2 cgi

Dieses Thema im Forum "Freetz" wurde erstellt von ph1r3ph0x, 18 Jan. 2018.

  1. ph1r3ph0x

    ph1r3ph0x Neuer User

    Registriert seit:
    18 Jan. 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo :)

    ich habe mich daran gemacht Apache2 und Mosquitto auf meiner FB zum laufen zu bekommen. Dabei habe ich festgestellt, dass es gar keine Webkonfig für Apache gibt. Das Einzige was ich gefunden habe, ist diese Ticket:
    http://freetz.org/ticket/2551

    Würde gerne lernen, eine Webconfig für freetz zu erstellen (wenn in den Semesterferien dann wieder etwas mehr Zeit ist). Denkt ihr, es gibt bedarf? Wie kompliziert ist sowas? Warum wurde das Ticket nicht integriert?

    Liebe Grüße
     
  2. PeterPawn

    PeterPawn IPPF-Promi

    Registriert seit:
    10 Mai 2006
    Beiträge:
    9,724
    Zustimmungen:
    257
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Braucht es das wirklich? Für die Konfiguration des Apache2 gibt es diverse "externe" Projekte für ein GUI - bis hin zum Java- oder Windows-Programm. Das ist auch recht komplex, was man mit so einem Apache alles anstellen kann (und was man dort einstellen kann, mit diversen Abhängigkeiten, bis hin zu Script-Hosts wie PHP, Perl und Python, die dann auch gewartet und konfiguriert werden müssen) und angesichts dessen halte ich (rein persönlich) es für ein ziemlich aussichtsloses Unterfangen, das mit den vorhandenen Möglichkeiten im Freetz-Mod (das sind praktisch alles Shell-Skripte, die über das CGI laufen) irgendwie halbwegs adäquat zu lösen - jedenfalls so, daß es wirklich universell ist und nicht nur auf einen speziellen Anwendungsfall (wie OwnCloud oder meinetwegen Mosquitto bzw. andere Eclipse-Projekte aus der IoT-Ecke oder Horde oder oder oder) zugeschnitten.

    Es sei denn, Du meinst damit eher das Fehlen sämtlicher anderer Dateien, die bei anderen Paketen die Software in das Freetz-GUI integrieren ... z.B. zum Starten und Stoppen von Services. Das ist sicherlich etwas anderes ... aber für die "Konfiguration" des Apache2 (das andere ist m.E. eher "Bedienung") sollte max. ein textarea-Control herhalten, wenn überhaupt - denn das geht mit einem Editor (am besten über eine Freigabe und von einem anderen Host) deutlich besser und schneller, als in irgendeinem Browser-Fenster und selbst da wäre Shell-In-A-Box mit einem (anständigen) "vim" (oder einem anderen Editor nach persönlichen Vorlieben) im Browser wohl die leistungsfähigere (und universellere) Lösung, bei der man dann auch die (vielerorts praktizierte) Aufteilung in verschiedene Dateien (die auch mehrmals inkludiert werden können) beibehalten kann, was mit irgendwelchen HTML-Seiten mit "textarea"-Controls auch schon schwierig würde.

    Nach meiner (rein persönlichen) Ansicht ist der Apache2 nicht einmal dafür geeignet, daß man einem unerfahrenen Benutzer mit den Grundeinstellungen irgendwelche weitergehenden Vorschläge unterbreitet ... nicht ganz umsonst haben selbst die großen Distributionen in aller Regel nur die "läuft"-Seite in der Standardkonfiguration - das ist alles sehr von der eigenen Installation und dem eigenen Anwendungszweck abhängig und eine unsichere Standardkonfiguration kann die ganze Box (oder das ganze System bei den "richtigen Distros") exponieren.

    Daher sollte man auch eine von Freetz automatisch installierte Konfiguration in jedem Falle so absichern, daß nur der LAN-seitige Zugriff überhaupt möglich ist und die diversen anderen Probleme, die mit einem eigenen HTTP-Server auf dem Router verbunden sind (vom Port 80, der schon durch den "ctlmgr" belegt wird (443 inzwischen auch, wenn man keinen abweichenden externen Port eingestellt hat) bis zur Unmöglichkeit, (permanente) Freigaben auf den Router selbst noch irgendwie (ohne Kniffe und weitere Abhängigkeiten von AVM-Komponenten) einzurichten) sind da noch gar nicht berücksichtigt.

    Wobei natürlich solche Projekte wie ein Message-Broker für IoT auch nicht unbedingt externe Freigaben brauchen ... aber warum muß es dafür denn überhaupt die "große Lösung" Apache2 sein? Ich habe es zwar nicht selbst probiert, aber wäre nicht ein Update für "lighty" (also lighttpd) auf 1.4.46 eine mögliche Lösung? Dort wurde ja (so steht's jedenfalls in den Change-Logs) auch die Websocket-Unterstützung weiter ausgebaut ... und in einigen Fällen reicht es ja auch, Mosquitto quasi "standalone" laufen zu lassen.

    Der Apache2 ist halt insgesamt auch ein ziemlicher Ressourcenfresser ... und je nach FRITZ!Box-Modell kann man das System sogar mit dem alleine zum Reboot bringen, wenn OoM zum "oops" wird (was bei AVM die Standardeinstellung ist, nachdem die "rc.tail.sh" abgearbeitet ist - keine Ahnung, ob Freetz das noch über das procfs abstellt oder gar die "rc.tail.sh" entsprechend patcht).

    Spannender fände ich es da noch, ob Du Mosquitto mit der libwebsocket übersetzt hast und ob Du nicht - wenn das so ist - dieses Ergebnis mit uns teilen möchtest ... mit dieser Library ziehen dann wieder ganz andere Möglichkeiten ein, einen TLS-fähigen Webserver mit wenig Aufwand zu bauen (LWSWS) und den könnte Freetz durchaus gebrauchen, denn auch "stunnel" (was der Freetz-Benutzer sich selbst passend zusammenbauen muß) ist schon eine Art Schmiedehammer, wo doch eigentlich Uhrmacherwerkzeuge besser geeignet wären.
     
  3. ph1r3ph0x

    ph1r3ph0x Neuer User

    Registriert seit:
    18 Jan. 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Danke für diese ausführliche Antwort! Ich habe das etwas missverständlich beschrieben. Ich will derzeit garnicht, dass Mosquitto und Apache zusammenarbeiten. Ich versuche nur beides zum laufen zu bekommen :D Beide haben keine Bedienoberfläche in Freetz. Es hat mich gewundert, dass noch nicht einmal einen Knopf zum Starten/Stoppen von Apache sowie ein Textfeld mit einer Standard Config gibt. Das ist doch sicherlich ein Programm, was häufig verwendet wird, oder?

    Ich habe aber zugegebenermaßen noch nie einen Apache aufgesetzt, daher war mir das Ausmaß auch nicht so bewusst.
    Apache scheint mir aus Sicherheitsgründen (einfach weil es schon sehr lange existiert und sich die Codebasis nicht viel ändert) am geeignetsten, um auf dem Router zu laufen - vorausgesetzt man verbaselt die Konfiguration nicht. Der Plan war, irgendwann mal ein kleines statisches cms (grav) ohne Datenbank darüber laufen zu lassen. Grav funktioniert leider mit lighthttp nicht, glaube ich.

    Ja, ich dachte also in erster Linie an einen start-stop Knopf für den Apache-Dienst und ein Textfeld mit der Config. Die php Konfiguration funktioniert ja genauso.

    Mosquitto hab ich ohne websocket support compiliert. Die libwebsocket wäre ja nochmals ein eigenes Paket für Freetz und dafür fehlt mir zugegebenermaßen die Expertise. Ich habe kaum Erfahrung mit crosscompiling und muss mich sehr auf die voreingerichtete Toolchain verlassen. Hier wurde glücklicherweise bereits gute Vorarbeit geleistet, was Mosquitto betrifft.

    Aber dann nehme ich mir mal vor eine Bedienoberfläche für eines der Pakete zu erstellen und vielleicht bekomme ich ja auch die Websocketlib irgendwie compiliert :) Vor März wird das aber alles sowieso aus Zeitgründen nichts.

    Vielen lieben Dank so weit :)