Fernwärter
Raspi als Netzwerk-KVM zur Fernwartung
Wenn der Computer im Homeoffice zickt, sind Sie als Admin nicht vor Ort. Mit einem Raspi als Netzwerk-KVM können Sie trotzdem binnen Sekunden sehen, was die Anwender plagt, und sie sogar bei Netzwerkproblemen, BIOS-Einstellungen oder der Neuinstallation des Betriebssystems voll unterstützen.
Computerprobleme lassen sich am leichtesten lösen, wenn man direkten Zugriff auf Bildschirm, Tastatur und Maus hat. Doch klassische Fernwartungslösungen wie VNC oder TeamViewer setzen ein funktionierendes Betriebssystem und eine korrekt konfigurierte Netzwerkverbindung voraus, sonst geht gar nichts. Die Alternative ist, den Mitarbeitern einen Raspberry Pi als Netzwerk-KVM (Keyboard, Video, Mouse) konfiguriert zukommen zu lassen, damit Sie ihnen bei Problemen sofort zur Seite stehen können. Die Kosten sind mit rund 120 bis 140 Euro überschaubar. Dafür erhalten die Beschäftigten im Homeoffice ein Gerät, das sie bei Bedarf nur noch mit zwei Kabeln an den heimischen Rechner anschließen müssen – der Rest passiert quasi automagisch.
Der Clou liegt darin, dass der USB-C-Stromanschluss des Raspberry Pi 4 nicht nur zur Stromversorgung taugt, sondern auch ein USB-Gadget-Interface bereitstellt – sich also gegenüber dem PC als USB-Gerät ausgeben kann. Auf diese Weise kann der Raspi unter anderem Tastatur und Maus emulieren und so den angeschlossenen PC fernsteuern. Ein zusätzlicher Adapter sorgt dafür, dass der Raspi die Bildschirmausgabe des Rechners über seinen Kamera-Anschluss hereingereicht bekommt, sodass ein Admin den Rechner aus der Ferne steuern und genau sehen kann, was gerade passiert. Da diese Lösung vollkommen unabhängig von der Software des Arbeitsrechners ist, lassen sich auf diese Weise sogar BIOS- und Firmware-Einstellungen ändern, Bootloader reparieren und notfalls ein komplett neues Betriebssystem installieren – wobei der angeschlossene Rechner dann sogar von dem Raspberry Pi bootet.
Raspi-Kamera zweckentfremdet
Mit PiKVM gibt es eine speziell für den Einsatz als Netzwerk-KVM angepasste Linux-Distribution für den Raspberry Pi. Es basiert auf Arch Linux für ARM und steht in drei Varianten auf der Projektseite pikvm.org kostenlos zum Download bereit: für den Raspi 4 mit einem HDMI-CSI-Adapter (Camera Serial Interface), für den Raspi 4 mit einem HDMI-USB-Adapter (Framegrabber) und für den Raspi Zero W mit HDMI-CSI-Adapter.
Wir empfehlen die PiKVM-Variante für Raspi 4 mit HDMI-CSI-Adapter. Die minimalen Systemanforderungen liegen zwar bei nur 2 GByte, aber es stehen einige Weiterentwicklungen an, für die Sie mit der 4-GByte-Variante in jedem Fall gut gerüstet sind. Den HDMI-CSI-Adapter empfehlen wir, weil er durch eine spürbar geringere Latenz gegenüber einem USB-Framegrabber überzeugt. So ist die Bedienung aus der Ferne deutlich flüssiger, außerdem haben Sie so die Kontrolle über die Auflösungen, die der betreute Rechner per EDID angeboten bekommt.
Die Auswahl der Adapter ist bei Amazon und eBay riesig, manche werden als CSI-Adapter bezeichnet, andere als CSI-2-Adapter. Tatsächlich handelt es sich in beiden Fällen um CSI-2-Adapter, die Sie an das Kamera-Interface direkt neben den HDMI-Buchsen des Raspi 4 anschließen können. Achten Sie darauf, dass das benötigte Folienkabel zum Lieferumfang des Adapters gehört. Gerade bei Verkäufern aus Fernost finden sich häufig keine Angaben zum verwendeten Konverter-Chip; ideal ist ein Adapter mit dem Toshiba TC358743, wegen dessen niedriger Latenz. Oft stimmen auch die in den Angeboten angegebenen technischen Daten nicht. So wurde der von uns benutzte Adapter mit einer maximalen Framerate von 25 fps bei Full HD beworben. Der darauf verbaute Toshiba-Konverter beherrscht jedoch bis zu 60 fps, wobei sich über das Kamera-Interface des Raspi 4 bis zu 50 fps nutzen lassen. Die Preise für die Adapter sind in den letzten Wochen angezogen, statt zuvor 30 kosten sie inzwischen überwiegend 40 Euro.
Ein weiterer Grund für unsere Empfehlung, den Raspi 4 zu verwenden, sind die verfügbaren Gehäuse. Anwendern können Sie unmöglich einen fliegenden Aufbau mit blanken Platinen zumuten. In den am Markt gängigen Gehäusen für den Raspi Zero W gibt es jedoch keinen Platz für die CSI-Adapter-Platine. Beim Raspberry Pi 4 hingegen lässt sich die CSI-Adapter-Platine gut über dem Display-Anschluss platzieren. Wir haben uns für das „GeeekPi Metall Gehäuse“ entschieden, das Sie bei Amazon für knapp 15 Euro bekommen. Den Ausschlag für dieses Gehäuse gab, dass es aus zwei Halbschalen und zwei Seitenwänden aus Aluminium besteht, die sich auch mit einfachen Mitteln wie einer Mini-Bohrmaschine gut bearbeiten lassen.
Auf Montage
Um den CSI-Adapter zu befestigen, haben wir in den Deckel vier Löcher für Schrauben gebohrt und an der Seitenwand, an der sich auch der SD-Karten-Schacht befindet, eine knapp zwei Zentimeter breite und acht Millimeter hohe Aussparung für die HDMI-Buchse herausgefräst. Alternativ können Sie auch mit einer Trennscheibe die oberen zehn Millimeter der Seitenwand herausschneiden. Außerdem haben wir die Seitenwand dünner gefräst, damit der HDMI-Anschluss weit genug herausschaut. Insgesamt keine Raketenwissenschaft, sondern etwas, das man auch in einem kleinen Betrieb mit einer Standbohrmaschine und einer Feile hinbekommt.
Wenn Sie statt dem empfohlenen CSI-Adapter lieber einen HDMI-USB-Framegrabber benutzen wollen, müssen Sie nicht nur das dafür vorgesehene PiKVM-Image herunterladen, Sie müssen den Framegrabber auch an den linken unteren USB-2.0-Port des Raspi 4 anschließen. Dieser Anschluss ist fest einprogrammiert – eine große Fehlerquelle für Anwender.
Aber auch beim CSI-Adapter kann es zu unerwarteten Problemen kommen: Über den HDMI-Anschluss liegt am CSI-Adapter eine Spannung an, die je nach Adapter nicht sauber von der Versorgungsspannung des Kamera-Interfaces des Raspi getrennt ist. Die Leistung reicht zwar nicht aus, um den CSI-Adapter nur über den HDMI-Anschluss zu betreiben, bei jedem Start wartet jedoch der Power Controller des Raspi darauf, dass für einen korrekten Reset die Spannung kurzzeitig unter 0,2 V fällt – was die Rückspannung über den CSI-Adapter verhindern kann, sodass der Raspi dann nicht bootet. In unseren Tests ist dieses Phänomen nicht aufgetreten; ein Workaround ist, dann kurzzeitig das HDMI-Kabel zum PiKVM herauszuziehen und wieder anzuschließen, wenn das Web-Frontend von PiKVM erreichbar ist.
Gut versorgt
Apropos Strom: Bei älteren Rechnern und bei Notebooks kann es in seltenen Fällen vorkommen, dass der USB-Port nicht genügend Strom für den Raspi 4 liefert. Die Kombination aus Raspberry und HDMI-CSI-Adapter verbraucht beim Booten bis zu 1,2 A, im regulären Betrieb sind es rund 800 mA. Dass die Stromversorgung nicht ausreicht, erkennen Sie an einer häufig flackernden oder gar erlöschenden roten Betriebs-LED des Raspi. Mit einem Y-Kabel wie dem DeLock 83176 können Sie den Strom von zwei USB-Ports für die Versorgung des Raspi nutzen. Ein gelegentliches Flackern der Betriebs-LED ist kein Grund zur Sorge, dies kann der Raspi meist durch Stromspartechniken abfangen.
Drei weitere Utensilien, die Sie sich als Admin vorsichtshalber parat legen sollten, sind ein DisplayPort-HDMI-Adapterkabel, ein DVI-HDMI-Adapterkabel und ein HDMI-Splitter. Mit den Adapterkabeln können Sie einen etwaigen zweiten Videoausgang der Grafikkarte für den PiKVM nutzen; der HDMI-Splitter ist für Rechner gedacht, die lediglich einen HDMI-Anschluss besitzen und bei denen dieser auch der einzige digitale Videoausgang ist.
Bei manchen Rechnern – Anwenderberichten zufolge einigen Intel NUC und manchen Gigabyte-Mainboards – muss man die Standard-EDID von PiKVM anpassen und als Standard-Auflösung 1920 × 1080 Pixel vorgeben. Um Bandbreite zu sparen, benutzt PiKVM ansonsten standardmäßig 1280 × 720 Pixel. Die nötigen Anpassungen finden Sie im Git-Repository von PiKVM, das wir unter ct.de/yw5c verlinkt haben.
Es gibt auch seltene Fälle, in denen Sie mit PiKVM gar nicht an die BIOS-Einstellungen herankommen. Bei Notebooks etwa kommt es vereinzelt vor, dass das BIOS nicht über den externen Monitoranschluss ausgegeben wird. Dann kann eine USB-Webcam, die man sonst für Videokonferenzen benutzt, die Rettung sein: Schicken Sie dem Anwender eine zusätzliche SD-Karte zu, auf dem PiKVM mit HDMI-USB-Unterstützung installiert ist. Sobald die Karte getauscht, die Webcam links unten am Raspi 4 angeschlossen und auf den Bildschirm ausgerichtet wurde, können Sie sehen, was im BIOS vor sich geht, und den Fehler aus der Ferne beheben.
Aufgelegt
Die Installation von PiKVM ist denkbar einfach. Sie übertragen das PiKVM-Image wie von Raspberry Pi OS gewohnt auf eine mindestens 16 GByte große Micro-SD-Karte, schließen ein Netzteil und ein Netzwerkkabel an den Raspi an und lassen ihn booten. Die Ersteinrichtung erfolgt via SSH als Benutzer root mit dem festen Passwort root, der Raspi besorgt sich per DHCP mit dem Hostnamen pikvm eine IPv4-Adresse.
In unseren Tests gab es dabei allerdings Probleme mit einer FritzBox 7590 als DHCP-Server: PiKVM erhielt nach jedem Neustart eine andere IP-Adresse, obwohl die Router-Konfiguration vorsah, den DHCP-Clients möglichst die gleiche IP-Adresse zuzuweisen. Auch mit Hilfe des PiKVM-Entwicklers Maxim Devaev, den wir über den Projekt-Discord-Server kontaktierten, gelang es uns nicht, das Problem des DHCP-Clients dhclient zu lösen.
Als Workaround können Sie über die Paketverwaltung den NetworkManager installieren und den Standard-DHCP-Client abschalten:
rw pacman -Syy pacman -Sy networkmanager systemctl disable systemd-networkd systemctl disable systemd-resolved systemctl enable NetworkManager ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf reboot
Der Befehl rw mountet das Root-Dateisystem beschreibbar. Das ist eine Besonderheit der Linux-Distro PiKVM: Die Dateisysteme der SD-Karte sind standardmäßig nur Read-Only eingebunden. So können Sie den Raspi jederzeit einfach ausschalten, ohne ihn erst herunterfahren zu müssen. Schäden am Dateisystems gibt es dadurch nicht. Die nächsten Befehle aktualisieren erst die Paketdatenbank, installieren den NetworkManager, deaktivieren die bisherige Netzwerkkonfiguration inklusive Resolver und aktivieren schließlich den NetworkManager. Der Neustart ist die einfachste Methode, um die Änderungen zu übernehmen.
Das Standard-Root-Passwort müssen Sie natürlich schleunigst ändern, genauso das Passwort für den Benutzer „admin“ des PiKVM-Web-Frontends. Wie letzteres geht, erfahren Sie unmittelbar nach dem Login per SSH. Außerdem sollten Sie das System mit dem Befehl pacman -Syu aktualisieren – der PiKVM-Entwickler baut nicht für jedes Update neue Images, Sie erhalten so durchaus nicht nur Sicherheits-Updates, sondern auch funktionale Updates für den KVM-Daemon.
So enthielt eines der kurz vor Redaktionsschluss veröffentlichten Updates eine erste Testversion des H.264-Encoders, mit dem der PiKVM künftig gehörig Bandbreite sparen soll. Bislang nutzt das Web-Frontend für die Einbettung des Bildes einen MJPEG-Stream, dessen Qualität und Framerate je nach verfügbarem Upstream und abhängig davon, wie viel sich gerade auf dem Bildschirm tut, dynamisch oder über das Menü „System“ im Web-Frontend angepasst werden. Zu ruhigen Zeiten sind es durchaus nur 1 bis 5 fps. Um Videos anzusehen oder auch Videos aus der Entfernung zu schneiden ist PiKVM kaum geeignet, allein schon aufgrund der Latenz von etwa einer halben Sekunde zwischen Mausbewegung und Reaktion am eigenen Bildschirm.
Fernbedient
Der Entwickler empfiehlt, für die spätere Fernwartung Chrome im App-Modus als Browser zu verwenden, gestartet mit dem Parameter --app=https:// gefolgt von der IP-Adresse des PiKVM. Das hat den Vorteil, dass die meisten Tastenkombinationen von Chrome ignoriert und vom PiKVM-Web-Frontend an den betreuten Rechner übertragen werden. Das Web-Frontend lässt sich aber auch mit Firefox bedienen.
Über das Menü „Drive“ können Sie den Raspi zusätzlich in ein USB-DVD-Laufwerk oder in ein USB-Storage-Device verwandeln. Dazu laden Sie das Image hoch und schon können Sie etwa Desinfec’t auf dem entfernten Rechner booten und ihn entwanzen oder ein komplett neues Betriebssystem installieren. Das ATX-Menü hingegen ist für Server gedacht und dient dazu, über Relais den Ein-/Ausschalter sowie den Reset-Knopf ebenfalls über PiKVM fernsteuern zu können.
Schwer auf drahtlos
Im Idealfall wird ein PiKVM an einem Netzwerkkabel betrieben, das sorgt für geringe Latenzen. WLAN steht als Alternative zur Verfügung, die Konfiguration ist aber nicht unkritisch: Wenn Admins die WLAN-Konfiguration schon im Betrieb übernehmen wollen, müssen die Beschäftigten die SSID und ihr WLAN-Passwort weitergeben. Das ist nicht nur datenschutztechnisch problematisch, sondern auch fehlerträchtig, denn die Admins können die Konfiguration vorab nicht testen. Wir haben uns deshalb für eine andere Lösung des Henne-Ei-Problems entschieden: Die Anwender konfigurieren ihr WLAN vor Ort selbst, und zwar über das Terminal im Web-Frontend von PiKVM.
Dabei nutzen wir aus, dass der Raspi 4 auch einen USB-Ethernet-Adapter emulieren kann – die Anwender müssen später also nichts weiter tun, als den Raspi per USB-C-Kabel an ihren Rechner anzuschließen und das Web-Frontend im Browser zu öffnen. Dort können sie dann mit einem Befehl ihr WLAN selbst konfigurieren. Die notwendigen Voraussetzungen müssen allerdings die Admins vorab schaffen.
Der erste Schritt ist, die Ethernet-Emulation in der Datei /etc/kvmd/override.yaml zu aktivieren. Dazu fügen Sie die beiden folgenden Konfigurationsblöcke an:
otg:
vendor_id: 1256
product_id: 42251
devices:
ethernet:
enabled: true
driver: ecm
host_mac: da:a6:32:66:35:85
kvm_mac: de:a6:32:66:35:85
otgnet:
firewall:
allow_tcp: [80, 443]
Bei den beiden MAC-Adressen handelt es sich um private Adressen, die wir von der öffentlichen MAC-Adresse des USB-Ethernet-Adapters des Raspi 4 aus /sys/class/net/eth0/address abgeleitet haben. Diese tauschen Sie durch Ihre eigenen privaten MAC-Adressen aus: Dazu ersetzen Sie einfach die unteren vier Bit des ersten Byte der öffentlichen Adresse durch 0xA respektive durch 0xE. So werden aus der MAC-Adresse DC:A6:32:66:35:85 des Ethernet-Ports die beiden privaten Adressen DA:A6:32:66:35:85 und DE:A6:32:66:35:85 für die Ethernet-Emulation.
Damit PiKVM standardmäßig WLAN verwendet, sobald eine Konfigurationsdatei dafür vorliegt, müssen Sie den zugehörigen Systemd-Dienst aktivieren:
systemctl enable netctl-auto@wlan0.service
Schließlich konfigurieren und aktivieren Sie noch die Landeseinstellung für den WLAN-Adapter:
echo "country=DE" > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf systemctl enable wpa_supplicant@wlan0
Nach einem Neustart ist der PiKVM dann über die IP-Adresse 169.254.0.1 erreichbar, außerdem erhält der Anwender-Rechner eine IPv4-Adresse aus dem gleichen Subnetz. Unter Windows müssen Sie außerdem zuvor den Treiber installieren, den wir auf ct.de/yw5c verlinkt haben und neu starten. Die Firewall-Einstellungen aus dem Abschnitt otgnet erlauben Anwendern lediglich, auf das PiKVM-Web-Frontend zuzugreifen. Dort können sie dann über das Terminal mit dem Befehl sudo wlansetup ihr WLAN auswählen und das Passwort eingeben. Das Skript wlansetup haben wir Ihnen unter ct.de/yw5c bereitgestellt. Speichern Sie es in /usr/local/bin und machen Sie es ausführbar. Die Passende Sudo-Konfiguration sudowlan finden Sie dort ebenfalls, diese gehört in das Verzeichnis /etc/sudoers.d/.
Ein Parallelbetrieb von Ethernet und WLAN ist nicht vorgesehen – um wieder auf Ethernet zu wechseln, muss man zuvor die WLAN-Konfiguration wiederum über das Terminal im Web-Frontend mit dem Befehl sudo wlansetup -r löschen. Da das Passwort für das Web-Frontend unabhängig vom Root-Passwort ist, muss man den Anwendern dafür auch keinen vollen Zugriff auf den PiKVM gewähren.
Ab ins Firmennetz
Damit die Anwender in ihren Routern keine Portfreigaben für das Web-Frontend von PiKVM einrichten müssen, sollten Sie PiKVM mit einem VPN-Tunnel ausstatten – idealerweise in ein eigenes Admin-Netzwerk, sodass auch niemand aus dem Unternehmen unberechtigt auf die PiKVM zugreifen kann. Wireguard können Sie leicht über die Paketverwaltung auf dem PiKVM nachinstallieren, die Konfiguration funktioniert auf die gleiche Weise, wie in dem Artikel auf Seite 24 beschrieben.
Der PiKVM-Entwickler hat mit dem VPN-Anbieter Tailscale eine andere, verblüffend einfache Lösung gefunden: Es genügt, das Paket tailscale zu installieren und die beim Start ausgegebene URL im Browser aufzurufen – schon wird der PiKVM als weiterer Rechner zum eigenen VPN hinzugefügt:
pacman -S tailscale-pikvm systemctl enable --now tailscaled tailscale up
Tailscale verwendet ebenfalls Wireguard, die Konfiguration und Verwaltung des VPN erfolgt jedoch über das Web-Frontend beim Anbieter selbst. Für Privatanwender ist der Dienst kostenlos, passende Clients gibt es für alle gängigen Betriebssysteme. Für den professionellen Einsatz mit bis zu 100 Clients kostet Tailscale 10 US-Dollar pro Monat, bis 500 Clients 20 US-Dollar. Da es ohnehin sinnvoll ist, die PiKVM in einem eigenen VPN zu betreiben, auf das nur die Admins Zugriff haben, ist der Einsatz von Tailscale auch bei einem vorhandenen Firmen-VPN eine Überlegung wert.
Fazit
Ob über Tailscale oder Firmen-VPN, mit PiKVM können Admins auch in Homeoffice-Zeiten den Mitarbeitern mit Rat und Tat zur Seite stehen – egal ob es eine Frage zur Bedienung oder ein ernsthaftes Problem mit Viren oder dem Betriebssystem gibt. Dank Raspberry Pi ist die Lösung nicht einmal teuer und lässt sich mit einfachsten Mitteln in jeder Betriebswerkstatt umsetzen. (mid@ct.de)
WLAN-Setup-Skript: ct.de/yw5c