Guten Morgen zusammen,
ich möchte mir ein Script erstellen, welches im Hintergrund auf einem
Linux läuft und bei Anfragen an bestimmte IP adressen ein WOL Packet
verschickt.
Folgender "HW" Aufbau:
- Synology im Heimnetz (WOL an)
- OpenVPN mit PiHole auf einem Raspy über DDNS erreichbar
Anwendungsfall ist sicher schnell erraten: Ich möchte über den VPN ggf
meine Synology aufwecken. Einen WOL Packet übers Terminal zu versenden
klappt und macht auch was es soll, aber übers Handy-Terminal ist das
recht umständlich.
Daher die Idee eines Shell Scripts, welches im Hintergrund auf dem Raspy
läuft und bei Anfragen an eine bestimmte IP Adresse (bekommt den
Datenverker ja komplett mit als VPN Server) ein WOL Paket an die
jeweilige IP Adresse / zugehörige MAC schickt.
Da ich absolut kein Script Pro bin, hier mal die Frage nach Hilfe. Im
Netz finde ich recht wenig dazu - oder ich suche einfach falsch...
Vielen Dank!
Peter schrieb:> Daher die Idee eines Shell Scripts, welches im Hintergrund auf dem Raspy> läuft und bei Anfragen an eine bestimmte IP Adresse (bekommt den> Datenverker ja komplett mit als VPN Server) ein WOL Paket an die> jeweilige IP Adresse / zugehörige MAC schickt.
Ich halte die Idee für so mittelprächtig, das deine Synologie startet,
wenn eine Magic IP angerufen wird.
Wie wäre es, wenn du dir stattdessen knockd.conf auf den Raspery Pi
installierst und auf den Handy eine entsprechende App?
Imonbln schrieb:> Ich halte die Idee für so mittelprächtig, das deine Synologie startet,> wenn eine Magic IP angerufen wird.
Kannst du das näher erläutern? Meine Synology hat eine feste IP mit der
ich sie über diverse apps erreiche. Ich hätte an sowas gedacht wie:
"Sobald Anfragen an IP 192.168.2.77 kommen, sende ein WOL packet an die
hinterlegte MAC Addr zu der IP 192.168.2.77."
Imonbln schrieb:> Wie wäre es, wenn du dir stattdessen knockd.conf auf den Raspery Pi> installierst und auf den Handy eine entsprechende App?
Knockd kenne ich noch nicht. Werde ich mir mal anschauen, danke! Würde
den ablauf jedoch gerne automatisieren.
Peter schrieb:> Kannst du das näher erläutern? Meine Synology hat eine feste IP mit der> ich sie über diverse apps erreiche. Ich hätte an sowas gedacht wie:> "Sobald Anfragen an IP 192.168.2.77 kommen, sende ein WOL packet an die> hinterlegte MAC Addr zu der IP 192.168.2.77."
Ich meine, dass es immer mal ein Client gibt, der ein Paket an die
magische Adresse sendet, vor allen, wenn es die reguläre Adresse der
Synology ist, oder die Adresse vom DHCP vergeben wird. Dann startet die
Synology unnötig!
Das klingt sehr anfällig und selbst gebaut.
Peter schrieb:> Knockd kenne ich noch nicht. Werde ich mir mal anschauen, danke! Würde> den ablauf jedoch gerne automatisieren.
Die Idee mit Knockd ist das es automatisch passiert, du wirst von Hand
es eher nicht schaffen, die Sequenz zeitlich zu treffen. Meisten hast du
da im Handy einen Button und dann startet der Knockd dein Shellscript,
um die Synology aufzuwecken.
Imonbln schrieb:> Ich meine, dass es immer mal ein Client gibt, der ein Paket an die> magische Adresse sendet, vor allen, wenn es die reguläre Adresse der> Synology ist, oder die Adresse vom DHCP vergeben wird. Dann startet die> Synology unnötig!> Das klingt sehr anfällig und selbst gebaut.
ah ok, jetzt verstehe ich dich besser. Der DHCP arbeitet erst ab
192.168.2.100 - weiter ist die 77 auch nicht die std adresse für die
syn. aber es stimmt schon, dass es wahrscheinlich ist, dass irgendein
client mal was an die adresse schickt und dann die syn aufweckt...
Imonbln schrieb:> Die Idee mit Knockd ist das es automatisch passiert, du wirst von Hand> es eher nicht schaffen, die Sequenz zeitlich zu treffen. Meisten hast du> da im Handy einen Button und dann startet der Knockd dein Shellscript,> um die Synology aufzuwecken.
mmh mit einem button auf dem home screen, könnte ich mir das wohl noch
vorstellen denke ich.
Aber eine Möglichkeit das ganze zu automatisieren, wenn eine Anfrage an
die Syn kommt siehst du nicht?
Ich hatte das für ein ähnliches Setup früher so gelöst:
Am ARM (war noch vor der RasPi-Zeit) lief ein Apache als reverse-proxy.
der hatte in etwa sowas als Config (.htaccess):
Idee: Wenn 192.168.123.45 Offline ist, gibt's HTTP-Error 503
(https://http.cat/503)
Dieser wird dann wg "ErrorDocument" über das 503.php-File ausgeliefert.
im PHP-File war dann einerseits das Auslösen des WoL-Packets an
192.168.123.45 drinnen, zum anderen ein 'header("Refresh: 30");' um
regelmäßig zu Schauen ob der Host inzwischen hochgefahren ist.
Den Wakeup hatte ich allerdings nicht direkt im PHP aufgerufen, sondern
gesondert laufen. Das PHP hat das nur über eine spezielle Log-Meldung
angestoßen.
(Jugendsünde ... PHP ist schon schlimm genug ansich, aber zumindest
war's kein Suid-Root-PHP :)
Und wenn jemand das Passwort nicht kennt, gibt's http-Fehler
https://http.cat/403 , kein extra Error-Document, und auch kein
nutzloses Aufwecken des Backend-Servers.
das klingt ziemlich spannend, aber für mich auch recht herausfordernd
wenn ich ehrlich bin!
Als guideline kann man die Idee aber gut verwenden, denke ich :)
Würde es so wahrscheinlich dann eher über ein python skript lösen?
Hannes J. schrieb:> Wenn das Handy im VPN ist:> Eine beliebige WOL App deiner Wahl auf dem Handy. Es gibt mehr als genug
WoL über VPN geht nicht. Kannst ja Mal googeln warum.
Ja leider ist WOL über VPN nicht möglich...
Wäre es möglich, dann würde ich ganz einfach wie im Heimnetz die
Synology App verwenden und ein WOL Paket schicken...
Ich glaube ich werde mir dann irgendwie ein python skript (an Εrnst B.s
Idee angelehnt) zusammenbasteln müssen...
Εrnst B. schrieb:> Und wenn jemand das Passwort nicht kennt, gibt's http-Fehler> https://http.cat/403 , kein extra Error-Document, und auch kein> nutzloses Aufwecken des Backend-Servers.
Über diesen Punkt bin nun shon öfter gestolpert... Könntest du den evtl
nocheinmal ein wenig genauer erklären?
Ich verstehe nicht ganz wie überprüft werden soll, ob das PW stimmt ohne
den dafür vorgesehenden Server aufzuwecken?
Peter schrieb:> Über diesen Punkt bin nun shon öfter gestolpert... Könntest du den evtl> nocheinmal ein wenig genauer erklären?
Ich hatte einen "Dauernd An" Server, sparsames ARM-Board, mit dem
(Reverse-Proxy-)Apache-Webserver, der Passwort-Prüfung, dem Wake-On-Lan,
später auch LetsEncrypt usw.
Der hat nur das "Basic Auth"-Passwort geprüft, nix weiter, und nur wenn
das Basic-Auth Passwort gestimmt hat, hat der die Maschine im
Hintergrund geweckt.
Und erst wenn die Wach war, gab's den "echten" Login auf der Webseite.
Das hat den Proxy dann aber nicht weiter interessiert, der hat das nur
durchgeleitet.
d.H.: Zwei Passwörter: Ein simples "Basic Auth", was z.B. direkt mit
"https://username:passwort@servername.dyndns.xxx/" im Bookmark stehen
kann.
Und das "echte" Passwort für die Webapplikation.
Das Basic-Auth Passwort muss dabei nicht sonderlich sicher sein, es soll
nur verhindern dass jeder Script-Kiddie-Portscan ein Wake-On-Lan
ausführt.