USBGuard für Linux reglementiert die Nutzung von USB-Geräten. Es dürfen nur USB-Geräte genutzt werden, die in einer Whiteliste frei­gegeben wurden. Alle anderen USB-Spielzeuge werden blockiert.

USBGuard ist in allen aktuellen Linux Distributionen enthalten und kann mit dem bevorzugten Paketmanager installiert werden: Debian: > sudo apt install usbguard
Fedora: > sudo dnf install usbguard
Nach der Installation muss man einen initalen Regelsatz erzeugen, der zumindest eine via USB angeschlossene Tatstatur und Maus freigibt (sonst sperrt man sich aus). Es ist sinnvoll, auch weitere USB-Geräte anzuschließen, die man später nutzen möchte (Backup USB-Stick oder -Festplatte, Nitrokey usw.). Dann kann man mit folgendem Kommando die initiale Konfiguration erstellen, die alle angeschlossenen Geräte erlaubt und den Rest sperrt: > sudo usbguard generate-policy > rules.conf Die erstellte Konfiguration kann man dann in das Konfigurationsverzeichnis "/etc/usbguard" kopieren und sichere Zugriffrechte für die Datei setzen: > sudo cp rules.conf /etc/usbguard/rules.conf
> sudo chmod 0600 /etc/usbguard/rules.conf
In der Konfiguration "/etc/usbguard/usbguard-daemon.conf" sind kleine Anpassungen empfehlenswert, bevor man USBGuard verwendet: Danach kann man den USBGuard Daemon starten: > systemctl start usbguard Alle unbekannten USB-Geräte werden zukünftig blockiert. Wenn man ein ein neues USB-Spielzeug verwenden möchte, kann man es im Terminal freigeben. Dafür schließt man das Gerät an und lässt sich alle vorhandenen USB-Geräte anzeigen: > sudo usbguard list-devices
...
29: block id 20a0:4107 serial "" name "Crypto Stick v1.2" hash "li65uJm8....
Die Nummer am Anfang der Zeile ist die ID, mit der man das Gerät temporär freigeben kann: > sudo usbguard allow-device 29 Wenn man das USB Spielzeug öfters verwenden möchte, kann man es dauerhaft freigeben, indem man die Option --permanent bzw. -p hinzufügt. Die Regel wird dann in die Datei "/etc/usbguard/rules.conf" eingetragen: > sudo usbguard allow-device --permanent 29 Mit dem folgenden Kommado kann man eine Freigabe widerrufen, solange das USB Spielzeug noch angeschlossen ist > sudo usbguard reject-device 29 Wenn man eine permanente Freigabe löschen möchte und das USB Spielzeug nicht angeschlossen ist, kann man sich die Regeln anschauen und die Regel löschen: > sudo usbguard list-rules
...
> sudo usbguard remove-rule <ID>



Die umständliche Freigabe von unbekannten USB-Geräten auf der Kommandozeile und nur für den adminstrativen User ist etwas umständlich aber auch ein Sicherheits­feature.

Wer es etwas weniger streng haben möchte, kann auch anderen Nutzern die Modifikation der Regeln erlauben. Dafür ist folgende Option in der Konfigurations­datei "/etc/usbguard/usbguard-daemon.conf" anzupassen: IPCAllowedUsers = root username1 username2 ... Die in der Liste genannten User können das Kommando usbguard wie beschrieben nutzen, um neue USB-Geräte zu erlauben oder Freigaben aufzuheben.

Noch einfacher würde es sein, wenn man das Paket "usbguard-applet-qt" zusätzlich installiert. Das Paket stellt ein Applet für den Desktop zu Verfügung, das man in der Menügruppe "System" findet. Wenn das Applet gestartet wurde, dann öffnet sich bei jedem unbekanntem USB-Gerät ein Popup-Fenster und man kann entscheiden, ob man das USB-Spielzeug freigeben will oder nicht. Natürlich könnte dann auch Angreifer, der unbemerkt Zugang zu dem Computer hat, sein Bad-USB-Device anschließen und mit einem Klick problemlos freigeben, wenn der Bildschirm nicht gesperrt ist. Außerdem könnten Anwender auf Dauer darauf konditioniert werden, nicht weiter nachzudenken sondern einfach immer auf "Allow" zu klicken, wenn das Fenster aufploppt. Die Bequemlichkeit erkauft man sich mit einer verringerten Sicherheit.