Forum: PC-Programmierung Linux Config Datei ändern über Webdienst


von Tobias P. (hubertus)


Lesenswert?

Hallo zusammen

ich habe in meinem Heimnetzwerk einen ISC DHCP Server eingerichtet. Nun 
möchte ich gerne einen Webpage Template wie AdminLTE

https://github.com/ColorlibHQ/AdminLTE

benutzen, um in einem ersten Schritt die Leases vom DHCP Server in einem 
Browser betrachten zu können.
Im Moment fehlt mir der Startpunkt; ich weiss, in welchem File die DHCP 
Leases drin stehen und so weiter, aber wie man das hübsch aufbereiten 
und per Webpage darstellen kann, ist mir im Moment noch unbekannt.

Was ich später auch gerne noch machen möchte ist, gewisse 
Konfigurationsfiles des ISC DHCP Servers über den Browser anpassen zu 
können. Zum Beispiel um gewissen Devices anhand der MAC Adresse eine 
statische IP zuzuweisen und ähnliches.

Sicher hat jemand hier im Forum schon mal etwas ähnliches gemacht und 
kann mir einen Hint geben, wie starten?
ich habe mir den Pi-Hole mal angeschaut, der ist eigentlich gut, aber 
bei der DHCP Konfiguration fehlen viele Sachen auf dem Web GUI, die ich 
eigentlich gern anpassen können würde.

Wie geht das? im Moment blicke ich da nicht durch.

von Joerg W. (joergwolfram)


Lesenswert?

Viele Sachen lassen sich recht gut mit Webmin

https://webmin.com/

erledigen.

Jörg

von Rene K. (xdraconix)


Lesenswert?

ISC DHCP bietet die Möglichkeit seine Daten in / aus einer MySQL 
Datenbank zu lesen/schreiben. Ich nutze diese mit einer selbst 
geschriebenen Weboberfläche um die Leases anzulegen, anzuzeigen und zu 
bearbeiten.

von Tobias P. (hubertus)


Lesenswert?

Hallo Rene

perfekt, das brauche ich.
Hast du ein einfaches Beispiel zur Config, kann man deine Weboberfläche 
auf Github anschauen?

von Oliver (imonbln)


Lesenswert?

Tobias P. schrieb:
> benutzen, um in einem ersten Schritt die Leases vom DHCP Server in einem
> Browser betrachten zu können.
> Im Moment fehlt mir der Startpunkt; ich weiss, in welchem File die DHCP
> Leases drin stehen und so weiter, aber wie man das hübsch aufbereiten
> und per Webpage darstellen kann, ist mir im Moment noch unbekannt.

Wie heißt es so schön, kleine vollständige wert getrieben schritte.
Offensichtlich kann der ISC DHCP Server beim Verteilen einen Leases ein 
Script triggern. Das ist doch schon mal ein Anfang, im ersten Schritt 
würde ich da einfach was in ein Logfile schreiben. Dann mir überlegen, 
was ich sonst schon so im Einsatz habe und dann die entsprechenden 
Informationen an dies Reportingsystem senden. Wenn du noch nichts hast, 
überlege die was du sonst noch so willst. Aber ggf. wäre ein Script das 
die leases in eine influxdb schreibt, ein sinnvoller erster schritt.

von Sheeva P. (sheevaplug)


Lesenswert?

Tobias P. schrieb:
> ich habe in meinem Heimnetzwerk einen ISC DHCP Server eingerichtet.

Das muß ja ein ziemlich... umfangreiches Heimnetzwerk sein, wenn es Kea 
oder den dhcpd vom ISC braucht. Sogar mein (wegen meiner Mieter ziemlich 
großes) Netzwerk kommt prima mit dnsmasq für DHCP und DNS aus... :-)

> benutzen, um in einem ersten Schritt die Leases vom DHCP Server in einem
> Browser betrachten zu können.
> Im Moment fehlt mir der Startpunkt; ich weiss, in welchem File die DHCP
> Leases drin stehen und so weiter, aber wie man das hübsch aufbereiten
> und per Webpage darstellen kann, ist mir im Moment noch unbekannt.

Naja, das ist relativ easy: Du nimmst die Programmiersprache Python (das 
wird ja wohl eher nicht so zeitkritisch sein), das Modul dhcp-leases [1] 
und einen simplen Webserver wie Flask [2], dann ist der Drops ratzfatz 
gelutscht. Also, wenn Du ein bisschen Python kannst. Wobei: na klar, 
jede anderes Sprache geht auch, für Python gibt es erfreulicherweise -- 
wie so oft -- was Fertiges.

[1] https://pypi.org/project/dhcp-leases/
[2] https://flask.palletsprojects.com/en/3.0.x/

> Was ich später auch gerne noch machen möchte ist, gewisse
> Konfigurationsfiles des ISC DHCP Servers über den Browser anpassen zu
> können. Zum Beispiel um gewissen Devices anhand der MAC Adresse eine
> statische IP zuzuweisen und ähnliches.

Ja, also... das wird dann per Webinterface so eine Sache, und zwar wegen 
der Berechtigungen. DHCP-Leases anzeigen ist Pipifax, denn die dort 
vorhandenen Informationen findet jeder Schmutzfuß in Deinem Netz eh 
binnen Sekunden. Aber DHCP-Konfigurationen ändern, das ist so eine 
Sache... da mußt Du den Zugriff auf die Persistierungsschicht Deines 
DHCP zulassen. Das heißt, Du brauchst Authentifizierung und 
Autorisierung erstens für das Webinterface, damit da keiner unbefugt 
drin herumdilletiert, und zweitens... naja, wenn Du damit 
Konfigurationsdateien auf dem Host ändern willst, reden wir natürlich 
über eine Privilegienerweiterung. Bei einer Datenbank hingegen, wie sie 
jemand vorgeschlagen hat, reden wir über eine Synchronisierung zwischen 
Webui und Leases-Datenbank, das ist auch nicht unbedingt trivial.

von Sheeva P. (sheevaplug)


Lesenswert?

Joerg W. schrieb:
> Viele Sachen lassen sich recht gut mit Webmin
>
> https://webmin.com/
>
> erledigen.

Das stimmt, aber... meine Erfahrungen mit Webmin stammen noch aus den 
frühen 2000ern, IIRC, und damals war Webmin... sagen wir mal, 
schwieritsch -- wenig intuitiv und man mußte sein Linux schon sehr gut 
beherrschen, um mit Webmin glücklich zu werden. Ist das heute anders?

Und wie sieht das mit der Migration von Perl5 auf Rake aus, anders 
gefragt: ist Webmin zukunftsfähig?

von Sp (sp103)


Lesenswert?

Sheeva P. schrieb:
> eine Synchronisierung zwischen
> Webui und Leases-Datenbank, das ist auch nicht unbedingt trivial.

Aber auch nicht kritisch, daher sollten sich genügend Bausteine im 
Python Universum finden lassen. Zum angedachten Änderen ist ein 
Berechtigungsmanagement mit einer Datenbank meiner Erfahrung nach auch 
einfacher...

von Sheeva P. (sheevaplug)


Lesenswert?

Sp schrieb:
> Sheeva P. schrieb:
>> eine Synchronisierung zwischen
>> Webui und Leases-Datenbank, das ist auch nicht unbedingt trivial.
>
> Aber auch nicht kritisch, daher sollten sich genügend Bausteine im
> Python Universum finden lassen. Zum angedachten Änderen ist ein
> Berechtigungsmanagement mit einer Datenbank meiner Erfahrung nach auch
> einfacher...

Wie kritisch das ist, ist nicht meine Entscheidung. Aber wenn der TO mit 
seiner Datenbank einen Lease überschreibt, während ein verrückter Client 
seinen Lease anfordert.. im Wesentlichen geht es dort leider um dieselbe 
Persistierungsschicht, auf die mehrere Prozessen gleichzeitig schreibend 
zugreifen. Sowas ist, naja... sagen wir: fehleranfällig. ;-)

von Rene K. (xdraconix)


Lesenswert?

Sheeva P. schrieb:
> Aber wenn der TO mit
> seiner Datenbank einen Lease überschreibt, während ein verrückter Client
> seinen Lease anfordert.. im Wesentlichen geht es dort leider um dieselbe
> Persistierungsschicht, auf die mehrere Prozessen gleichzeitig schreibend
> zugreifen. Sowas ist, naja... sagen wir: fehleranfällig.

Die Datenbank verwaltet KEA / ISC ja selbst. Wenn dort ein Lease bereits 
vergeben oder in der hosts Tabelle erscheint, dann ist die IP für den 
dynamischen DHCP sofort gesperrt. Selbst solch störrige IP Geräte wie 
die Alexa - welche penetrant ihre alte IP fordern, scheitern daran. (Ja 
die Tabellennamen sind alle ein wenig kurios in der KEA Datenbank :-D )

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.