S
s1ave77
Gast
(oder: von hinten durch die brust ins auge - eine odyssee)
Überblick:
1. Vorwort
2. Vorbereitungen
3. Die Qual der Wahl
4. Die Zukunft
5. Zugabe
Anhänge:
Anhang 1: Sleep-On-LAN/Steuerskript/Steuerseite
Anhang 2: Mint/Docker/Traefik 2
Anhang 2.2: Weitere Apps
Anhang 2.3: Und weitere Apps
Anhang 3: HTTPS zu HTTP Tunnel ins lokale Netz
Anhang 4: OpenSSH unter Windows 10
Anhang 5: Apache Webserver unter Linux
Anhang X: Archiv (Yunohost, Nextcloud, Guacamole)
Mein Netzwerk ist überschaubar aber wächst immer weiter. 2 PCs, ein Notebook, Drucker, Scanner und das Smartphone bildeten den Start. Das alte Notebook wurde durch ein Tablet ersetzt und ein ‚Mini-PC‘ kam hinzu. Letzterer ist ein µATX System mit Celeron J1900 und 8 GB RAM. Mit SSD das perfekte System für einen kleinen, sparsamen ‚Server‘.
Eine Möglichkeit zur Vernetzung und Steuerung war damit ein naheliegender Gedanke. Dafür bieten sich unterschiedlichste Ansätze an. WakeOnLAN und Remote Desktop waren die ersten Ziele, eine selbsgehostete Cloud (Nextclloud) als Wunsch im Hinterkopf.
Eigentlich brauchte ich nur ein neues Projekt gegen die Langeweile, ich hatte nicht im Ansatz vermutet, was für eine Odyssee ich starte. Für einen Neueinsteiger war das eine recht steile Lernkurve. Lange Weile hatte ich zumindest keine.
UPDATE: Nach längerer Suche und einigen Experimenten ein kurzes Fazit und eine Neuorientierung. Dabei interessierten mich u.a. Alternativen für Yunohost, da gibt es einige, DockStarter und Cloudron finden hier öfter Erwähnung, neben einigen proprietären und kostenpflichtigen Lösungen.
Wirklichen Fortschritt bei meiner Suche nach der ‚idealen‘ Lösung brachte ein Tipp von @LieberNetterFloh. Die eierlegende Wollmilchsau als Server, allerdings anspruchsvoll bei der Erstkonfiguration, doch auch keine Raketenwissenschaft. Mit einem kleinen bisschen Erfahrung im Umgang mit der Linux-CLI ist das aber zu bewältigen.
Das Endergebnis kann sich dann sehen lassen, dazu mehr unter 3.2.
Die Basis ist unverändert ein Windows 10 mit einem Linuxmint in der VM. Wahlweise kann auch Ubuntu oder ein anderes Linux der Wahl benutzt werden. Zum Anfang werden hauptsächlich Docker und Docker-Compose benötigt. Dazu im entsprechenden Anhang dann mehr.
Allen beteiligten Geräten und Systemen habe ich im Router eine feste IP innerhalb des LANs zugewiesen.
Beim Testen der Optionen für WakeOnLAN und Remote Desktop wurde schnell klar, daß zum einen der Einsatz mehrerer Tools die Verläßlichkeit nicht gerade erhöht und zum anderen die proprietären Remote Tools (Teamspeak, Anydesk und co.) zwar komfortabel sein können, allerdings nur, wenn sie denn auch laufen wie gewünscht. Gerade bei letzterem haperte es in meinem Test aber deutlich. Zudem ist der Einsatz solcher Lösungen in den meisten Fällen Overkill.
Schnell kristallisierte sich heraus, daß eine browserbasierte Lösung das Ziel sein wird. Diese hat den Vorteil, daß sie auf mobilen Geräten genauso funktioniert wie auch auf meinen Desktops (betriebssytemunabhängig), ohne zusätzliche Apps nutzen zu müssen.
Update: Hier gab es einige Änderungen bei der Lösung des Hostings via Traefik2.
Die Ziele waren WakeOnLAN, SleepOnLAN, Remote Desktop, SSH und die Nextcloud. Zur Steuerung des Ganzen ein lokaler (Apache) HTTP Server mit mehrfacher Redundanz (man weiß ja nie) und eine HTML-Lösung zum Absetzen der Steuerungsbefehle.
Vorweg; wer es einfach will, ist, was Nextcloud anbelangt, bei Yunohost gut aufgehoben. Die geführte Installation ist einfach und benötigt nur funktionierende (Sub-)Domains, ich nutze DynDNS via DuckDNS. Leider funktioniert hier die Guacamole Integration nicht.
Alternativ kann hier ein externes Docker-Stack genutzt werden, welches mit wenig Aufwand eingerichtet ist.
Keine der anderen Lösungen, die ich getestet habe, kam an die intuitive Einbindung der Domains von Yunohost nahe. Auch die Einbindung von Fail2Ban und Let’s Encrypt Zertifikaten ist übersichtlich gelöst. Einzig die eingeschränkte Auswahl an ‚Applications‘ ist hier ein kleines Manko, nicht alle werden aktiv gewartet.
Die Anhänge für Yunohost und Guacamole sind jetzt in den Anhang Part X (Archiv) gewandert.
https://www.smarthomebeginner.com/traefik-2-docker-tutorial
Dank Trafik2 als Reverse-Proxy ist das System via Google OAuth2 abgesichert, bringt strikte Policies bezüglich Rate-Limit und Header-Authentication mit und autogeneriert Let’s Encrypt Zertifikate für alle internen Sub-Domains. Nextcloud bildet die Einzige Ausnahme und braucht manuelle Zuwendung, ist einfach zu lösen, mehr im Anhang.
Keine Bange, sieht komplizierter aus als es ist. Im Anhang Anmerkungen zu den kritischen Stellen und potentiellen Fallstricken.
Die Docker-Compose YAML ist sehr sensitiv, was Formatierung angeht. Die hierarchischen Einrückungen sind immer 2 Spalten tief. Nicht umsonst empfiehlt der Autor die Codebeispiele mit allen Leerzeichen zu übernehmen. Meine Skriptbeispiele als Referenz nehmen.
Entscheidend ist die Ersteinrichtung von Traefik2 mit Let’s Encrypt und anschließend OAuth. Wer hier gründlich arbeitet, hat im Anschluß die perfekte Basis zur Einbindung weiterer Container. Letzteres ist recht unkompliziert, wenn das Compose-Skript richtig eingerichtet ist.
Ich hatte beim Folgen der Anleitung nur kleinere Fragen, die sich schnell recherchieren liessen. Dazu im Anhang einige Tipps.
Wichtiger Grundpfeiler ist die .ENV Datei für die verschiedenen Umgebungsvariablen des Stacks. Dazu kommen noch die TOMLs für die Traefik2-Middlewares. Alles keine Hexerei, anschauliche Beispiele zu den Dateien im Anhang.
Im Anhang gehe ich den Prozess zum Großteil durch, für mehr Infos einfach im Thread fragen.
Weiter geht’s im Anhang 2: Mint/Docker/Traefik 2.
SleepOnLAN:
Die Lösung war hier ein Mikroserver (Windows/Linux), der unauffällig im Hintergrund läuft und an einem definierten Port auf Steuerbefehle wartet
(an http://<IP_or_Hostname>:<Port>/your_command).
Das Github-Projekt kann über eine JSON konfiguriert werden.
Sleep-On-LAN (SOL): https://github.com/SR-G/sleep-on-lan
Unter Windows kann die EXE per Aufgabenplanung unabhängig von der Useranmeldung gestartet werden. Das erlaubt die Steuerung ohne eingeloggt zu sein (der Haken hier: funktioniert nur für Befehle ohne Interaktion durch den User).
Es können auch mehrere Instanzen an unterschiedlichen Ports ‚lauschen‘.
Weiterführende Tipps und Beispiele: >>HIER<<
Remote Desktop:
Die Suche nach einer lokal gehosteten Lösung stolpert man schnell über das Guacamole Projekt: https://guacamole.apache.org/.
Definitiv eine eierlegende Wollmilchsau. Blieb also die Entscheidung des Wie.
Direkte Installation auf einem Linux, Installation als Docker oder als Bestandteil von Yunohost.
Also eine (L)Ubuntu LTS 21.10 Installation in der VM gestartet und getestet…
…und damit beim ersten Problem. Die Anleitungen im Netz sind zahllos aber leider nicht immer stringent. Irgendwie fehlen da immer irgendwelche kleinen Dinge. Für die Ersteller mag dies logisch sein, für einen Quereinsteiger nicht immer komplett nachvollziehbar wo es klemmt. Auch die Tipps aus dem Netz halfen hier nicht weiter.
Nach einigen frustrierenden Tests legte ich das Ganze einen Tag beiseite. Ein neuer Tag, eine neue Suche und ein erster Erfolg.
GitHub: https://github.com/boschkundendienst/guacamole-docker-compose
Nach erfolgreichem Erstellen der YAML Datei für Docker-Compose startete das Guacamole System erfolgreich. Leider ohne TOTP-Auth, also nur ein Teilerfolg.
Hilfe brachte ein Issue in selbigem Git, der das Einbinden der TOTP Authentifizierung beschreibt.
Guacamole TOTP: https://github.com/boschkundendienst/guacamole-docker-compose/issues/18
Die notwendigen TARs finden sich im Downloadbereich der Guacamole Seite.
Weiterführende Tipps und Beispiele: >>HIER<<
SSH Zugang:
OpenSSH ist glücklicherweise auch unter Windows 10/11 mittlerweile als zusätzliches Feature aktivierbar. Einfach mittels Powershell aktivieren und den OpenSSH Dienst starten und auf automatisch setzen.
Unter Linux einfach das passende OpenSSH-Paket installieren.
Unter Android habe ich Termux installiert und mittels
Weiterführende Tipps und Beispiele: >>HIER<<
Der Celeron-Server läuft und ist die meiste Zeit im Idle. Apache-Server und SOL arbeiten zuverlässig im Hintergrund.
Update: Der Umzug auf den Traefik2-Proxy hat die Wartung zum Großteil automatisiert, das System konfiguriert neue Apps bei korrekten Labels selbsständig, das ist wirklich praktisch. Bis auf Nextcloud funktioniert die Vergabe von Zertifikaten problemlos.
Organizr dient dabei als Landing-Page, Glances gibt Auskunft über das Mint-System und Dozzle zeigt Live-Logs der einzelnen Container.
Momentan bin ich nebenbei immer auf der suche nach sinnvollen Apps, mal sehen, was die Zukunft bereithält.
Backups der VMs (als Snapshots) werden, wie auch die Acronis Images des Windows Hosts, regelmäßig an verschiedenen Stellen gespeichert.
Generell ist das natürlich ein heikles Thema mit einigen Fallstricken.
Erste Empfehlung ist meist der Zugriff über VPN. Ist allerdings auch kein Allheilmittel wenn die dahinterliegende Sicherheitsstruktur löchrig ist.
Alle Geräte im LAN, auch die VM Gäste, haben ihre eigene, feste IP im LAN.
Das erlaubt nur die nötigen Ports dediziert für die Yunohost-VM freizugeben, ohne den Windowshost dafür öffnen zu müssen. Ein Port ermöglicht bei Bedarf Zugriff auf die Guacamole-VM (ist sonst heruntergefahren).
Nextcloud-Sicherheits-Check: https://scan.nextcloud.com
Braucht es nur noch eine eigene Domain. Am Besten natürlich ohne Kosten, wenn möglich. Stichwort ist hier Dynamic DNS.
DynDNS:
Meine Suche förderte mehrere Kandidaten zu Tage.
Oftmalige Empfehlung ist DuckDNS. Hier war jedoch schon die Dokumentation entweder 404 oder hoffnungslos veraltet. Nicht so mein Ding.
https://www.duckdns.org
Selfhost.de sah vielversprechend aus. Als Pro auf jeden die Möglichkeit zig Subdomains anzulegen. Kontrapunkte sind jedoch der fehlende Direktkontakt zur API für die Aktualisierung der IP und die Inkonsistenz bei der Namensauflösung. Nicht zu gebrauchen trotz gutem Erstem Eindruck.
https://selfhost.de/cgi-bin/selfhost?p=cms&article=index&CGISESSID=9befd2744a98a93033f352f4d6ac8813
No-IP macht seine Sache zwar gut, aber nur eine Domain aktualisierbar und ebenfalls nur ein proprietäres Tool für die Aktualisierung haben für einen guten 2. Platz gereicht.
ACHTUNG!: No-IP deaktiviert schnell Domains, wenn man sich nicht regelmäßig einloggt.
https://www.noip.com
Sieger wurde DDNSS.de mit einigem Abstand.
https://ddnss.de/index.php
Der freie Account erlaubt 5 Domains mit 60 Aktualisierungen pro Tag. Die Aktualisierungen lassen sich via PHP-Seite (mit Schlüssel) einzeln oder in einem Rutsch durchführungen. Die Weiterleitung reagiert prompt und das auch zuverlässig bisher.
Fernwartung (HTTPS zu HTTP Tunnel ins lokale Netz):
In diesem Zusammenhang wird Ngrok bevorzugt ins Rennen geworfen. Macht zugegebenermaßen was es soll, jedoch fand ich keine Möglichkeit eine passive Verbindung aufzubauen, die auf Anfrage den Tunnel aufbaut.
https://ngrok.com
Die Suche nach einer Alternative führte zu LocalToNet. Der Client baut mittels Token eine passive Verbindung auf und der Tunnel kann über das Account-Dashboard gestartet werden. Perfekt für meine Zwecke.
https://localtonet.com
Der Client ist ein spartanisches Kommandozeilentool (einfach starten), verlangt beim ersten Start das Token aus dem Account-Dashboard und checkt dann die Verbindung. Danach wartet es unauffällig im Hintergrund.
Als Startrampe nutze ich wiederholt die Aufgabenplanung.
Hinweis: bei Veränderung der WAN IP verliert es die Verbindung. Wie erwähnt kümmert sich bei mir das Skript für die DynDNS Aktualisierung um den Neustart des Tasks.
Weiterführende Tipps und Beispiele: >>HIER<<
Der Check ergab ein A+ Rating für die Nextcloud, ein guter Anfang.
Ein Skript checkt im Hintergrund die WAN IP und aktualisiert bei Veränderungen durch den täglichen Provider-Reset (und/oder Router-Neustarts) den DDNSS Account. Gleichzeitig startet es den LocalToNet Tunnel neu, sonst wird der unansprechbar.
Letzterer erlaubt den Fernzugriff auf den lokalen Apache Server. So lassen sich Rechner und VMs steuern.
Brauche ich direkten Zugriff auf den Desktop eines der Rechner von außen, wird erst der Tunnel gestartet, dann der Guacamole-Server und ich habe auch am Tablet und Smartphone über den Browser eine komfortable Steuerung. Nach erledigter Arbeit wird Guacamole herunterfahren und der Tunnel beendet.
Der Langzeittest läuft, sieht gut aus bisher und ist wartungsarm. Direkter Zugriff auf den Windowshosts und die virtuellen Gäste ist selten nötig, der Großteil läuft über Weboberflächen und SSH.
Nächster Schritt wird die Steuerung von Steckdosen und Licht. Da habe ich in einigen Threads hier in letzter Zeit einige Anregungen aufgeschnappt und als Lesezeichen gesichert.
Da geht noch was.
Update (28.05.2022) Teil 1:
Das Ubuntu ist einem Mint Xfce (1/4 der Größe des Ubuntu) gewichen. Während dieses Prozesses wurden die Notizen aktualisiert und Anhang Part 2 erstellt mit dem Guacamole Installationsprozeß.
Anhang Part 1 wurde um den Installationsprozeß für SOL unter Linux erweitert.
Update (28.05.2022) Teil 2:
Anhang Part 3 für Yunohost und nextcloud angefügt.
Update (28.05.2022) Teil 3:
Anhang Part 4 für HTTPS zu HTTP Tunnel angefügt.
Update (29.05.2022) Teil 1:
Anhang Part 5 für OpenSSH unter Windows 10/11.
Update (29.05.2022) Teil 2:
Anhang Part 6 für Apache Webserver unter Linux.
Update (29.05.2022) Teil 3:
Webseitenbeispiel zur SOL-Steuerung eingefügt.
Update (29.05.2022) Teil 4:
Bilder eingefügt, PDF aktualisiert.
Update (29.05.2022) Teil 5:
OpenSSH-Part ergänzt (Client-Install fehlte), PDF aktualisiert.
Update (30.05.2022) Teil 1:
Index für einfachere Navigation erstellt.
Update (30.05.2022) Teil 2:
Yunohost User-Portal Individualisierung hinzufefügt, PDF aktualisiert.
Update (19.06.2022):
Überarbeitung! Neues Tutorial mit Traefik 2 als Basis-Proxy für alle Anwendungen. PDF aktualisiert.
Update (22.06.2022):
Überarbeitung! Neue Nextcloud-Instanz. PDF aktualisiert.
Update (24.06.2022):
Nextcloud-Tipps, Fail2Ban und weitere Apps hinzugefügt. PDF aktualisiert.
Für Interessierte hier noch das Ganze als PDF. Zur Offline-Nutzung, ganz komfortabel mit Lesezeichen zur Navigation.
Zurück zum Start
INDEX:
Überblick:
1. Vorwort
2. Vorbereitungen
3. Die Qual der Wahl
4. Die Zukunft
5. Zugabe
Anhänge:
Anhang 1: Sleep-On-LAN/Steuerskript/Steuerseite
Anhang 2: Mint/Docker/Traefik 2
Anhang 2.2: Weitere Apps
Anhang 2.3: Und weitere Apps
Anhang 3: HTTPS zu HTTP Tunnel ins lokale Netz
Anhang 4: OpenSSH unter Windows 10
Anhang 5: Apache Webserver unter Linux
Anhang X: Archiv (Yunohost, Nextcloud, Guacamole)
1. Vorwort
Mein Netzwerk ist überschaubar aber wächst immer weiter. 2 PCs, ein Notebook, Drucker, Scanner und das Smartphone bildeten den Start. Das alte Notebook wurde durch ein Tablet ersetzt und ein ‚Mini-PC‘ kam hinzu. Letzterer ist ein µATX System mit Celeron J1900 und 8 GB RAM. Mit SSD das perfekte System für einen kleinen, sparsamen ‚Server‘.Eine Möglichkeit zur Vernetzung und Steuerung war damit ein naheliegender Gedanke. Dafür bieten sich unterschiedlichste Ansätze an. WakeOnLAN und Remote Desktop waren die ersten Ziele, eine selbsgehostete Cloud (Nextclloud) als Wunsch im Hinterkopf.
Eigentlich brauchte ich nur ein neues Projekt gegen die Langeweile, ich hatte nicht im Ansatz vermutet, was für eine Odyssee ich starte. Für einen Neueinsteiger war das eine recht steile Lernkurve. Lange Weile hatte ich zumindest keine.
UPDATE: Nach längerer Suche und einigen Experimenten ein kurzes Fazit und eine Neuorientierung. Dabei interessierten mich u.a. Alternativen für Yunohost, da gibt es einige, DockStarter und Cloudron finden hier öfter Erwähnung, neben einigen proprietären und kostenpflichtigen Lösungen.
Wirklichen Fortschritt bei meiner Suche nach der ‚idealen‘ Lösung brachte ein Tipp von @LieberNetterFloh. Die eierlegende Wollmilchsau als Server, allerdings anspruchsvoll bei der Erstkonfiguration, doch auch keine Raketenwissenschaft. Mit einem kleinen bisschen Erfahrung im Umgang mit der Linux-CLI ist das aber zu bewältigen.
Das Endergebnis kann sich dann sehen lassen, dazu mehr unter 3.2.
Das System sollte modular werden und einfach zu warten, upzudaten und zu erweitern sein.Die Basis ist unverändert ein Windows 10 mit einem Linuxmint in der VM. Wahlweise kann auch Ubuntu oder ein anderes Linux der Wahl benutzt werden. Zum Anfang werden hauptsächlich Docker und Docker-Compose benötigt. Dazu im entsprechenden Anhang dann mehr.
Allen beteiligten Geräten und Systemen habe ich im Router eine feste IP innerhalb des LANs zugewiesen.
3. Die Qual der Wahl (der Mittel)
3.1. Die Qual
Beim Testen der Optionen für WakeOnLAN und Remote Desktop wurde schnell klar, daß zum einen der Einsatz mehrerer Tools die Verläßlichkeit nicht gerade erhöht und zum anderen die proprietären Remote Tools (Teamspeak, Anydesk und co.) zwar komfortabel sein können, allerdings nur, wenn sie denn auch laufen wie gewünscht. Gerade bei letzterem haperte es in meinem Test aber deutlich. Zudem ist der Einsatz solcher Lösungen in den meisten Fällen Overkill.Schnell kristallisierte sich heraus, daß eine browserbasierte Lösung das Ziel sein wird. Diese hat den Vorteil, daß sie auf mobilen Geräten genauso funktioniert wie auch auf meinen Desktops (betriebssytemunabhängig), ohne zusätzliche Apps nutzen zu müssen.
3.2. Die Wahl Teil 1: Lokales Netz
Update: Hier gab es einige Änderungen bei der Lösung des Hostings via Traefik2.Die Ziele waren WakeOnLAN, SleepOnLAN, Remote Desktop, SSH und die Nextcloud. Zur Steuerung des Ganzen ein lokaler (Apache) HTTP Server mit mehrfacher Redundanz (man weiß ja nie) und eine HTML-Lösung zum Absetzen der Steuerungsbefehle.
Vorweg; wer es einfach will, ist, was Nextcloud anbelangt, bei Yunohost gut aufgehoben. Die geführte Installation ist einfach und benötigt nur funktionierende (Sub-)Domains, ich nutze DynDNS via DuckDNS. Leider funktioniert hier die Guacamole Integration nicht.
Alternativ kann hier ein externes Docker-Stack genutzt werden, welches mit wenig Aufwand eingerichtet ist.
Keine der anderen Lösungen, die ich getestet habe, kam an die intuitive Einbindung der Domains von Yunohost nahe. Auch die Einbindung von Fail2Ban und Let’s Encrypt Zertifikaten ist übersichtlich gelöst. Einzig die eingeschränkte Auswahl an ‚Applications‘ ist hier ein kleines Manko, nicht alle werden aktiv gewartet.
Die Anhänge für Yunohost und Guacamole sind jetzt in den Anhang Part X (Archiv) gewandert.
Lokales Hosting für Nextcloud, Guacamole und co.
Dank, wie schon erwähnt, @LieberNetterFloh und seinem Link zu einem Docker Server Tutorial auf smarthomebeginners.com, ist mein Konglomerat einem einzelnen Linux-Gast gewichen.https://www.smarthomebeginner.com/traefik-2-docker-tutorial
Dank Trafik2 als Reverse-Proxy ist das System via Google OAuth2 abgesichert, bringt strikte Policies bezüglich Rate-Limit und Header-Authentication mit und autogeneriert Let’s Encrypt Zertifikate für alle internen Sub-Domains. Nextcloud bildet die Einzige Ausnahme und braucht manuelle Zuwendung, ist einfach zu lösen, mehr im Anhang.
Keine Bange, sieht komplizierter aus als es ist. Im Anhang Anmerkungen zu den kritischen Stellen und potentiellen Fallstricken.
Vorbereitungen:
- Linux System der Wahl, ich nutze Mint, habe aber auch auf Ubuntu keine Probleme gehabt.
- Docker Installation
- Docker-Compose Installation
- DynDNS Domain via DuckDNS oder CloudFlare
- Google-Account für OAuth-Einbindung in Traefik
Traefik2-Tutorial:
Ich empfehle hier in Ruhe zu arbeiten, kleine Fehler haben große Wirkung.Die Docker-Compose YAML ist sehr sensitiv, was Formatierung angeht. Die hierarchischen Einrückungen sind immer 2 Spalten tief. Nicht umsonst empfiehlt der Autor die Codebeispiele mit allen Leerzeichen zu übernehmen. Meine Skriptbeispiele als Referenz nehmen.
Entscheidend ist die Ersteinrichtung von Traefik2 mit Let’s Encrypt und anschließend OAuth. Wer hier gründlich arbeitet, hat im Anschluß die perfekte Basis zur Einbindung weiterer Container. Letzteres ist recht unkompliziert, wenn das Compose-Skript richtig eingerichtet ist.
Ich hatte beim Folgen der Anleitung nur kleinere Fragen, die sich schnell recherchieren liessen. Dazu im Anhang einige Tipps.
Wichtiger Grundpfeiler ist die .ENV Datei für die verschiedenen Umgebungsvariablen des Stacks. Dazu kommen noch die TOMLs für die Traefik2-Middlewares. Alles keine Hexerei, anschauliche Beispiele zu den Dateien im Anhang.
Im Anhang gehe ich den Prozess zum Großteil durch, für mehr Infos einfach im Thread fragen.
Weiter geht’s im Anhang 2: Mint/Docker/Traefik 2.
SleepOnLAN:
Die Lösung war hier ein Mikroserver (Windows/Linux), der unauffällig im Hintergrund läuft und an einem definierten Port auf Steuerbefehle wartet
(an http://<IP_or_Hostname>:<Port>/your_command).
Das Github-Projekt kann über eine JSON konfiguriert werden.
Sleep-On-LAN (SOL): https://github.com/SR-G/sleep-on-lan
Unter Windows kann die EXE per Aufgabenplanung unabhängig von der Useranmeldung gestartet werden. Das erlaubt die Steuerung ohne eingeloggt zu sein (der Haken hier: funktioniert nur für Befehle ohne Interaktion durch den User).
Es können auch mehrere Instanzen an unterschiedlichen Ports ‚lauschen‘.
Weiterführende Tipps und Beispiele: >>HIER<<
Remote Desktop:
Die Suche nach einer lokal gehosteten Lösung stolpert man schnell über das Guacamole Projekt: https://guacamole.apache.org/.
Definitiv eine eierlegende Wollmilchsau. Blieb also die Entscheidung des Wie.
Direkte Installation auf einem Linux, Installation als Docker oder als Bestandteil von Yunohost.
Also eine (L)Ubuntu LTS 21.10 Installation in der VM gestartet und getestet…
…und damit beim ersten Problem. Die Anleitungen im Netz sind zahllos aber leider nicht immer stringent. Irgendwie fehlen da immer irgendwelche kleinen Dinge. Für die Ersteller mag dies logisch sein, für einen Quereinsteiger nicht immer komplett nachvollziehbar wo es klemmt. Auch die Tipps aus dem Netz halfen hier nicht weiter.
Nach einigen frustrierenden Tests legte ich das Ganze einen Tag beiseite. Ein neuer Tag, eine neue Suche und ein erster Erfolg.
GitHub: https://github.com/boschkundendienst/guacamole-docker-compose
Nach erfolgreichem Erstellen der YAML Datei für Docker-Compose startete das Guacamole System erfolgreich. Leider ohne TOTP-Auth, also nur ein Teilerfolg.
Hilfe brachte ein Issue in selbigem Git, der das Einbinden der TOTP Authentifizierung beschreibt.
Guacamole TOTP: https://github.com/boschkundendienst/guacamole-docker-compose/issues/18
Die notwendigen TARs finden sich im Downloadbereich der Guacamole Seite.
Weiterführende Tipps und Beispiele: >>HIER<<
SSH Zugang:
OpenSSH ist glücklicherweise auch unter Windows 10/11 mittlerweile als zusätzliches Feature aktivierbar. Einfach mittels Powershell aktivieren und den OpenSSH Dienst starten und auf automatisch setzen.
Unter Linux einfach das passende OpenSSH-Paket installieren.
Unter Android habe ich Termux installiert und mittels
pkg upgrade && pkg install openssh
das Paket geladen. Alternativ läßt sich auch 'apt' benutzen. Wichtig: nicht die Store App installieren, da gibt es gerade Probleme daher den GitHub-Link nutzen (ist auch auf der Store Page): https://github.com/termux/termux-app#installation.Weiterführende Tipps und Beispiele: >>HIER<<
3.3. Die Wahl Teil 1: Fazit
Der Celeron-Server läuft und ist die meiste Zeit im Idle. Apache-Server und SOL arbeiten zuverlässig im Hintergrund.Update: Der Umzug auf den Traefik2-Proxy hat die Wartung zum Großteil automatisiert, das System konfiguriert neue Apps bei korrekten Labels selbsständig, das ist wirklich praktisch. Bis auf Nextcloud funktioniert die Vergabe von Zertifikaten problemlos.
Organizr dient dabei als Landing-Page, Glances gibt Auskunft über das Mint-System und Dozzle zeigt Live-Logs der einzelnen Container.
Momentan bin ich nebenbei immer auf der suche nach sinnvollen Apps, mal sehen, was die Zukunft bereithält.
Backups der VMs (als Snapshots) werden, wie auch die Acronis Images des Windows Hosts, regelmäßig an verschiedenen Stellen gespeichert.
3.4. Die Wahl Teil 2: Der Zugriff von außen
Generell ist das natürlich ein heikles Thema mit einigen Fallstricken.Erste Empfehlung ist meist der Zugriff über VPN. Ist allerdings auch kein Allheilmittel wenn die dahinterliegende Sicherheitsstruktur löchrig ist.
Alle Geräte im LAN, auch die VM Gäste, haben ihre eigene, feste IP im LAN.
Das erlaubt nur die nötigen Ports dediziert für die Yunohost-VM freizugeben, ohne den Windowshost dafür öffnen zu müssen. Ein Port ermöglicht bei Bedarf Zugriff auf die Guacamole-VM (ist sonst heruntergefahren).
Nextcloud-Sicherheits-Check: https://scan.nextcloud.com
Braucht es nur noch eine eigene Domain. Am Besten natürlich ohne Kosten, wenn möglich. Stichwort ist hier Dynamic DNS.
DynDNS:
Meine Suche förderte mehrere Kandidaten zu Tage.
Oftmalige Empfehlung ist DuckDNS. Hier war jedoch schon die Dokumentation entweder 404 oder hoffnungslos veraltet. Nicht so mein Ding.
https://www.duckdns.org
Selfhost.de sah vielversprechend aus. Als Pro auf jeden die Möglichkeit zig Subdomains anzulegen. Kontrapunkte sind jedoch der fehlende Direktkontakt zur API für die Aktualisierung der IP und die Inkonsistenz bei der Namensauflösung. Nicht zu gebrauchen trotz gutem Erstem Eindruck.
https://selfhost.de/cgi-bin/selfhost?p=cms&article=index&CGISESSID=9befd2744a98a93033f352f4d6ac8813
No-IP macht seine Sache zwar gut, aber nur eine Domain aktualisierbar und ebenfalls nur ein proprietäres Tool für die Aktualisierung haben für einen guten 2. Platz gereicht.
ACHTUNG!: No-IP deaktiviert schnell Domains, wenn man sich nicht regelmäßig einloggt.
https://www.noip.com
Sieger wurde DDNSS.de mit einigem Abstand.
https://ddnss.de/index.php
Der freie Account erlaubt 5 Domains mit 60 Aktualisierungen pro Tag. Die Aktualisierungen lassen sich via PHP-Seite (mit Schlüssel) einzeln oder in einem Rutsch durchführungen. Die Weiterleitung reagiert prompt und das auch zuverlässig bisher.
Fernwartung (HTTPS zu HTTP Tunnel ins lokale Netz):
In diesem Zusammenhang wird Ngrok bevorzugt ins Rennen geworfen. Macht zugegebenermaßen was es soll, jedoch fand ich keine Möglichkeit eine passive Verbindung aufzubauen, die auf Anfrage den Tunnel aufbaut.
https://ngrok.com
Die Suche nach einer Alternative führte zu LocalToNet. Der Client baut mittels Token eine passive Verbindung auf und der Tunnel kann über das Account-Dashboard gestartet werden. Perfekt für meine Zwecke.
https://localtonet.com
Der Client ist ein spartanisches Kommandozeilentool (einfach starten), verlangt beim ersten Start das Token aus dem Account-Dashboard und checkt dann die Verbindung. Danach wartet es unauffällig im Hintergrund.
Als Startrampe nutze ich wiederholt die Aufgabenplanung.
Hinweis: bei Veränderung der WAN IP verliert es die Verbindung. Wie erwähnt kümmert sich bei mir das Skript für die DynDNS Aktualisierung um den Neustart des Tasks.
Weiterführende Tipps und Beispiele: >>HIER<<
3.5. Die Wahl Teil 2: Fazit
Der Check ergab ein A+ Rating für die Nextcloud, ein guter Anfang.Ein Skript checkt im Hintergrund die WAN IP und aktualisiert bei Veränderungen durch den täglichen Provider-Reset (und/oder Router-Neustarts) den DDNSS Account. Gleichzeitig startet es den LocalToNet Tunnel neu, sonst wird der unansprechbar.
Letzterer erlaubt den Fernzugriff auf den lokalen Apache Server. So lassen sich Rechner und VMs steuern.
Brauche ich direkten Zugriff auf den Desktop eines der Rechner von außen, wird erst der Tunnel gestartet, dann der Guacamole-Server und ich habe auch am Tablet und Smartphone über den Browser eine komfortable Steuerung. Nach erledigter Arbeit wird Guacamole herunterfahren und der Tunnel beendet.
4. Die Zukunft…
Der Langzeittest läuft, sieht gut aus bisher und ist wartungsarm. Direkter Zugriff auf den Windowshosts und die virtuellen Gäste ist selten nötig, der Großteil läuft über Weboberflächen und SSH.Nächster Schritt wird die Steuerung von Steckdosen und Licht. Da habe ich in einigen Threads hier in letzter Zeit einige Anregungen aufgeschnappt und als Lesezeichen gesichert.
Da geht noch was.
Update (28.05.2022) Teil 1:
Das Ubuntu ist einem Mint Xfce (1/4 der Größe des Ubuntu) gewichen. Während dieses Prozesses wurden die Notizen aktualisiert und Anhang Part 2 erstellt mit dem Guacamole Installationsprozeß.
Anhang Part 1 wurde um den Installationsprozeß für SOL unter Linux erweitert.
Update (28.05.2022) Teil 2:
Anhang Part 3 für Yunohost und nextcloud angefügt.
Update (28.05.2022) Teil 3:
Anhang Part 4 für HTTPS zu HTTP Tunnel angefügt.
Update (29.05.2022) Teil 1:
Anhang Part 5 für OpenSSH unter Windows 10/11.
Update (29.05.2022) Teil 2:
Anhang Part 6 für Apache Webserver unter Linux.
Update (29.05.2022) Teil 3:
Webseitenbeispiel zur SOL-Steuerung eingefügt.
Update (29.05.2022) Teil 4:
Bilder eingefügt, PDF aktualisiert.
Update (29.05.2022) Teil 5:
OpenSSH-Part ergänzt (Client-Install fehlte), PDF aktualisiert.
Update (30.05.2022) Teil 1:
Index für einfachere Navigation erstellt.
Update (30.05.2022) Teil 2:
Yunohost User-Portal Individualisierung hinzufefügt, PDF aktualisiert.
Update (19.06.2022):
Überarbeitung! Neues Tutorial mit Traefik 2 als Basis-Proxy für alle Anwendungen. PDF aktualisiert.
Update (22.06.2022):
Überarbeitung! Neue Nextcloud-Instanz. PDF aktualisiert.
Update (24.06.2022):
Nextcloud-Tipps, Fail2Ban und weitere Apps hinzugefügt. PDF aktualisiert.
5. Zugabe
Für Interessierte hier noch das Ganze als PDF. Zur Offline-Nutzung, ganz komfortabel mit Lesezeichen zur Navigation.
Zurück zum Start
Anhänge
Zuletzt bearbeitet von einem Moderator: