PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenWRT: Magic Packet per SSH


robbitop
2016-04-25, 18:43:05
In Bezugnahme auf den Fritzbox Thread würde gern um fachkundige Hilfe bitten.

Hiermit soll Magic Packet möglich per SSH sein

https://wiki.openwrt.org/doc/uci/etherwake

Ich würde am liebsten ein Script haben, so dass ich nur noch einen einfachen Befehl per SSH gebe und nicht jedes Mal die Mac Adresse des zu startenden PCs eingeben.

Leider habe ich nichteinmal die Grundlagen verstanden, wie man Etherwake oder Wol per SSH richtig nutzt und wie man sie konfiguriert. Die OpenWRT Wiki hilft mir dabei nicht - ich habe das Gefühl, dass diese deutlich höhere Kenntnisse voraussetzt als ich sie in diesem Bereich habe.

Kann mir freundlicherweise jemand dabei helfen? SSH/OpenWRT für Dummies? :)

Lokadamus
2016-04-25, 19:22:31
Hiermit soll Magic Packet möglich per SSH sein
https://wiki.openwrt.org/doc/uci/etherwake

Ich würde am liebsten ein Script haben, so dass ich nur noch einen einfachen Befehl per SSH gebe und nicht jedes Mal die Mac Adresse des zu startenden PCs eingeben.

Leider habe ich nichteinmal die Grundlagen verstanden, wie man Etherwake oder Wol per SSH richtig nutzt und wie man sie konfiguriert. Die OpenWRT Wiki hilft mir dabei nicht - ich habe das Gefühl, dass diese deutlich höhere Kenntnisse voraussetzt als ich sie in diesem Bereich habe.:| Was genau hast du vor? Wie sieht das Netzwerk aus? Ein Subnetz oder verschiedene Netze?

Da wird beschrieben, wie man etherwake für einen Host fest vordefiniert und es per Cronjob starten lassen kann. Ich glaube nicht, dass das dein Ziel ist.
Der Beschreibung nach reicht die Angabe von "etherwake MAC- Adress" und Enter aus, wenn es nur ein Subnetz ist.
http://www.cyberciti.biz/tips/linux-send-wake-on-lan-wol-magic-packets.html
Wenn die eine Zeile ausreichend ist, kannst dir auch ein einfaches Skript basteln:
#!/bin/bash
etherwake MAC Adress

Mit SSH hat es momentan nur soviel zu tun, dass du die Verbindung zu deinem OpenWRT- Kiste aufbaust. Interessant wird es eher, wenn du einen VPN tunnel aufbauen must, um das MagicPacket dadurch zu jagen. Aber selbst das sollte nicht das Problem sein.

Gammelobst
2016-04-25, 19:24:29
Hallo,

oder per WebUI -> luci-app-wol nachinstallieren und die Kisten via klick wecken. (zumindest mit OpenWrt Designated Driver r49218 / LuCI Master (git-16.108.33174-51a7f96))

cya

robbitop
2016-04-25, 19:30:03
:| Was genau hast du vor? Wie sieht das Netzwerk aus? Ein Subnetz oder verschiedene Netze?

Da wird beschrieben, wie man etherwake für einen Host fest vordefiniert und es per Cronjob starten lassen kann. Ich glaube nicht, dass das dein Ziel ist.
Der Beschreibung nach reicht die Angabe von "etherwake MAC- Adress" und Enter aus, wenn es nur ein Subnetz ist.
http://www.cyberciti.biz/tips/linux-send-wake-on-lan-wol-magic-packets.html

Jup es ist nur 1x Subnetz.


Wenn die eine Zeile ausreichend ist, kannst dir auch ein einfaches Skript basteln:
#!/bin/bash
etherwake MAC Adress
Gebe ich das so 1:1 in SSH ein oder wie erstelle ich dieses Skript?

Mit SSH hat es momentan nur soviel zu tun, dass du die Verbindung zu deinem OpenWRT- Kiste aufbaust. Interessant wird es eher, wenn du einen VPN tunnel aufbauen must, um das MagicPacket dadurch zu jagen. Aber selbst das sollte nicht das Problem sein.
Ich will SSH nach außen (WAN) auf einen definierten Port freigeben. Dann brauche ich nur noch eine Art DynDNS.

Lumines hat das hier vorgeschlagen:
https://wiki.openwrt.org/doc/uci/ddns

Ich verstehe leider wieder nur Bahnhof. :( Wie genau installiert man das?

Hallo,

oder per WebUI -> luci-app-wol nachinstallieren und die Kisten via klick wecken. (zumindest mit OpenWrt Designated Driver r49218 / LuCI Master (git-16.108.33174-51a7f96))

cya
Habe ich auch schon gesehen. Das Ziel ist es aber, per Remote über das Internet das Magic Packet zu senden. Das geht wohl am besten/sichersten per SSH.

Lokadamus
2016-04-25, 19:43:50
Gebe ich das so 1:1 in SSH ein oder wie erstelle ich dieses Skript?

Ich will SSH nach außen (WAN) auf einen definierten Port freigeben. Dann brauche ich nur noch eine Art DynDNS.

Habe ich auch schon gesehen. Das Ziel ist es aber, per Remote über das Internet das Magic Packet zu senden. Das geht wohl am besten/sichersten per SSH.Ich sehe gerade, der Standardeditor ist VI. Kennst du dich damit aus? Ich befürchte nicht.

Einfacher Hack:
echo #!/bin/bash >>Aufwachen.sh
echo etherwake MAC >>Aufwachen.sh

Dann hast du beide Zeilen in der Datei "Aufwachen.sh". Diese noch mit "chmod 700 Aufwachen.sh" ausführbar machen und in Zukunft reicht der Aufruf "./Aufwachen.sh" aus, um sie auszuführen.

Den SSH Port würde ich auf einen unbenutzen und unbekannten Port verschieben. Ansonsten klopfen irgendwelche Skriptkiddies dauernd an. https://de.wikipedia.org/wiki/Portknocking wird wohl nicht verfügbar sein.

Kann DDNS einen Host aufwecken? Spontan würde ich nein sagen. :|

robbitop
2016-04-25, 20:06:34
Ich muss ja irgendeine IP in Putty festlegen, wenn ich mit dem SSH des Routers über das Internet verbinden will. DDNS sollte auf dem Router dann laufen, um dessen dynamische IP mit einem Namen zu assozieren.

Aber wie das funktioniert weiß ich leider nicht.

Welcher Port sollte das sein? Ich habe gelesen, dass Port 2222 für diesen Zweck gut sein soll.

Lokadamus
2016-04-25, 20:14:29
Achso, deshalb ddns.
Du musst dir vorher von einem Anbieter einen Namen holen bzw. ein Konto anlegen. Sobald dein Client den Namen bekommt, übernehmen die Dienste wie dyndns die Namensauflösung für dich, wobei es zu einer Verzögerung von ein paar Minuten kommen kann, wenn du eine Zwangstrennung hast. Den Client musst du bei dir einrichten, damit dieser regelmäßig guckt, ob der Name noch richtig aufgelöst wird. Du verbindest dich nicht über die IP, sondern über den Namen vom Anbieter, zum Beispiel "robbitop.dyndns.org".
https://wiki.openwrt.org/doc/howto/ddns.client

Edit: Der Port kann genommen werden. SSH benutzt standardmäßig tcp, was ein bischen doof ist in diesem Sinne.
https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports

lumines
2016-04-25, 20:36:26
Den SSH Port würde ich auf einen unbenutzen und unbekannten Port verschieben. Ansonsten klopfen irgendwelche Skriptkiddies dauernd an. https://de.wikipedia.org/wiki/Portknocking wird wohl nicht verfügbar sein.

Ist auch nicht nötig. Dropbear aus OpenWRT kann auch Public-Key-Authentifizierung. Da braucht man dann auch nicht den Port zu ändern, macht sicherheitstechnisch eh keinen Unterschied.

Zum Generieren des Schlüsselpaars:

ssh-keygen -t rsa -b 4096

Da kommt dann ein privater (id_rsa) und ein öffentlicher Schlüssel (id_rsa.pub) raus. Der private Schlüssel sollte dann noch bei der Abfrage mit einer Passphrase gesichert werden. Den behält man auf seinem Rechner. Der öffentliche Schlüssel kommt auf die OpenWRT-Kiste, geht irgendwo per Luci. In einem Texteditor den öffentlichen Schlüssel also lokal öffnen, in das Textfeld von Luci dann einfach per Copy & Paste reinkopieren.

Hat auch den Vorteil, dass man nicht immer ein Passwort eintippen muss. Unter OS X und Linux benutzt man einmal z.B. kurz nach dem Login ssh-add <private_key>, gibt seine Passphrase ein und dann kann man sich in dieser Session einfach immer ohne Passworteingabe an der OpenWRT-Kiste einloggen. Der private Schlüssel wird dann im Speicher gehalten.

Hört sich vielleicht kompliziert an, aber wenn man das einmal eingerichtet hat, eröffnen sich mit SSH ganz neue Möglichkeiten (auch für Dateiversand, als Poor-Man's-VPN (https://github.com/apenwarr/sshuttle), etc.), weil es danach extrem komfortabel ist. Vor allem muss man sich um die Sicherheit viel weniger Sorgen machen als bei anderen Lösungen, wenn man Schlüssel mit entsprechender Länge benutzt (>= 2048 Bit). Da beißt sich dann auch die NSA die Zähne dran aus.

Wahrscheinlich könnte man das Skript auch einfach lokal auf dem eigenen Rechner ausführen. Wenn man Public-Key-Authentifizierung benutzt, kann sich das Skript ja selbständig einloggen und den entsprechenden Befehl für die Magic Packets ausführen. Wäre dann wahrscheinlich nur ein Doppelklick.

robbitop
2016-04-25, 21:17:07
Wake on Lan über OpenWRT geht nicht.

Ich habe luci-app-wol und etherwake ausprobiert.

etherwake MAC in der SSH. Luci-app-wol macht genau das gleiche.

Nichts passiert. Eine einfache iOS App zum Gegentesten (SimpleWoL) hingegen weckt den PC auf.

Das Aufwecken geht hier aber auch nur aus dem Standby - nicht wenn er richtig heruntergefahren wurde. Im BIOS (Gigabyte H97M-HD3) gibt es keine Option dafür und im Gerätemanager habe ich bei der Netzwerkkarte die WoL Optionen angeschaltet.
WTF?

Lokadamus
2016-04-25, 21:26:40
Ist auch nicht nötig. Dropbear aus OpenWRT kann auch Public-Key-Authentifizierung. Da braucht man dann auch nicht den Port zu ändern, macht sicherheitstechnisch eh keinen Unterschied.Höchsten wenn nochmal eine größere Lücke enthalten ist und diese von Würmern eingesetzt wird.Wake on Lan über OpenWRT geht nicht.
etherwake MAC in der SSH. Luci-app-wol macht genau das gleiche.

Nichts passiert. Eine einfache iOS App zum Gegentesten (SimpleWoL) hingegen weckt den PC auf.Bei etherwake gibt es noch den Parameter "interface", wobei dieser laut einigen Anleitungen mit -i ethX angegeben wird.
In der Grundeinstellung wird wohl eth0 benutzt. Kannst du sehen, an welchem Interface der PC dranhängt?

robbitop
2016-04-25, 21:32:44
Ich glaube nicht, dass es daran liegt. Die Luci App hat bspw die Standardeinstellung "all interfaces" - und ich kann dann aus einem Dropdownmenü den PC auswählen.

https://www.dropbox.com/s/tp59rxqfdl61yqd/Screenshot%202016-04-25%2021.32.08.png?dl=0

Es passiert nichts... nur mit der App.

qiller
2016-04-25, 22:03:14
Falls es sich bei dem Zielrechner um eine Windows-Kiste handelt, hilft vielleicht ein Blogeintrag von mir: https://oli.new-lan.de/2015/12/wake-on-lan-mit-i217v-und-windows-10/

robbitop
2016-04-25, 22:27:55
Danke Quiller. Guter Guide. Jetzt funktioniert es auch als Kaltstart! :up:

@Lokadamus

Du hattest Recht mit dem Interface. Komischerweise bringt "broadcast to all interfaces" nichts. Nutze ich aber explizit das Interface "br-lan", geht es!

Wie konfiguriere ich jetzt etherwake per shell oder script? :)

robbitop
2016-04-27, 14:29:05
Wie konfiguriere ich jetzt etherwake per shell oder script? :)

Kann mir nochmal bitte jmd helfen? :)

lumines
2016-04-30, 16:27:49
Ich bin mir gerade nicht sicher, wie OpenWRT das so mit permanenten Dateien handhabt (wahrscheinlich ist sehr viel read-only eingebunden, um Datenverlust zu vermeiden), aber ich würde einmal ausprobieren einfach irgendwo hin zu schreiben. Ich versuche das mal so zu zeigen, dass man kein Vorwissen braucht.

So könnte das Shellskript aussehen:

vi <meinDateiname.sh>

#!/bin/sh
<gerätMitBefehlenAufwecken>

Dann mit

ESC
:wq

in Vi speichern. Vielleicht noch ausführbar machen mit

chmod +x <meinDateiname.sh>

und dann kannst du das mit

./<meinDateiname.sh>

ausführen. Speichert das dann standardmäßig im Ordner, in dem man per SSH bei OpenWRT nach dem Login landet. Ist bei 15.05 /root.