[Frage] Apache2 cgi

ph1r3ph0x

Neuer User
Mitglied seit
18 Jan 2018
Beiträge
2
Punkte für Reaktionen
0
Punkte
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
 
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.
 
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 :)
 
Hallo Zusammen,

Am einfachsten ist es alles zusammen zu clonen, die Sachen werden regelmäßig upgedated:
git clone https://github.com/dirk-dhu/freetz.git freetz-devel
Mit folgendem Befehl kann ein Update bei Veränderungen gezogen werden:
git fetch; git reset —hard origin/master
Einen Patch kann man durch das Klicken auf den gewünschten Commit, welcher unter der URL:
https://github.com/dirk-dhu/freetz/commits/master
zu finden ist, erstellen. Dazu muss in der Adress-Zeile hinter dem SHA Wert .patch angehangen werden.

Ach übrigens bzgl. der mächtigen Konfiguration und der benötigten Ressourcen, apache2 läuft schon seit Jahren mit xmail, dovecot und roundcubemail auf einer 7390, 7490 und 7590 ohen Probleme.
Die Konfiguration für Freetz ist auch so vorkonfiguriert, das alles mit eine Passwort-Schutz versehen ist. Mit einer CGI kann man auch wunderbar User, Groupen und Passwörter administrieren und eine Konfiguration "myconfig" als Web-Konfiguration bereitstellen.

Die Apache Konfiguration benötigt ein Port-Forwarding, über das CGI ist auch eine Konfiguration-Datei "myconfig" editierbar. Für folgende Packete gibt es Konfiguration in Apache: Roundcube, Linknx oder wfrog.
Für FHEM (https://../fhem) und Freetz (https://../freetz) ist eine Proxy-URL mit Passwortschutz konfiguriert.
Benutzer und Passwörter können in der Apache2-CGI konfiguriert werden. Die Zuordnung zu Groupen nur der mit der myconfig Konfigurationsdatei.
So sieht das CGI aus, Start/Stop gibt es auch:
upload_2018-4-29_22-36-28.png

//edit stoney: Bildgröße angepasst
 
Zuletzt bearbeitet:
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.