Bequemes Wake-On-LAN über den Browser

Heute bauen wir uns eine simple Möglichkeit, den heimischen PC entfernt über das Internet via WOL zu starten und das ohne Shell. Voraussetzung ist nur ein kleiner Linux-Server im heimischen LAN wie mein RaspberryPi. Auf diesem muss das Programm etherwake installiert sein und ein Webserver laufen. Das ganze muss vom Internet aus erreichbar sein (hierfür bieten sich Dienste wie DynDNS an).

Im web-erreichbaren Verzeichnis erstellen wir eine php-Datei mit

nano wol.php

und fügen folgenden Inhalt ein:

<?php
$output = shell_exec('sudo etherwake 00:11:22:33:44:55');
echo "<pre>$output</pre>";
?>

Dieser einfache php-Befehl führt einen Shell-Befehl aus. Die zweite Zeile gibt als Echo die Rückgabe des ausgeführten Befehls zurück, welche in unserem Fall leer ist. Die MAC-Adresse muss von 00:11:22:33:44:55 noch auf die Adresse des zu startenden Zielsystems geändert werden. Unter Linux findet ihr diese mit dem Befehl ifconfig, unter Windows mit ipconfig /all. Natürlich muss WakeOnLAN auf dem Zielsystem im BIOS noch aktiviert sein.

Damit sind wir schon fast fertig. Jetzt haben wir nur das Problem, dass der Befehl root-Rechte mittels sudo benötigt. Ausgeführt wird der Befehl vom Nutzer „www-data“. Da wir im Aufruf jedoch kein Passwort übergeben können und aus Sicherheitsgründen diesem Nutzer keine sudo-Rechte zugestehen wollen, können wir ihm diese selektiv für einen Befehl einräumen. Hierfür editieren wir die sudo-Datei mit dem Befehl

sudo visudo

und fügen die folgende Zeile ein:

www-data ALL=(ALL) NOPASSWD:/usr/sbin/etherwake

Nun kann der Nutzer „www-data“ den Befehl etherwake ohne Abfrage eines sudo-Passworts ausführen.

Jetzt können wir einfach die Datei im Browser aufrufen und schon wird der PC gestartet. Um einen Missbrauch dieser Funktion zu verhindern kann man die Datei wol.php noch in einen Unterordner legen, welchen man mit einer .htaccess-Datei mit einem Passwort schützt.

Viel Spass beim nachbauen – Støertebeker

Veröffentlicht unter BASH, einfache Scripte, Linux

Schreibe einen Kommentar