Verwendete Software:
- Ubuntu 22.04
- USBGuard 1.1.1
USBGuard kann mit folgendem Befehl installiert werden.
apt install usbguard
Die Default-Regeln von USBGuard sollten um folgende Einstellungen in der Datei /etc/usbguard/usbguard-daemon.conf
erweitert werden:
PresentDevicePolicy=apply-policy
PresentControllerPolicy=apply-policy
Mit diesen zwei Parametern wird sichergestellt, dass alle Regeln auch für USB-Geräte angewendet werden, die vor dem Booten eingesteckt wurden.
Alle USB Geräte, die keiner Regel zugewiesen sind, werden beim Starten von USBGuard mit folgendem Parameter in der Datei /etc/usbguard/usbguard-daemon.conf
blockiert:
ImplicitPolicyTarget=block
Initalen Regelsatz (Policy) erzeugen:
Nach der USBGuard Daemon Konfiguration wird ein initaler Regelsatz (Policy) erzeugt, der die integrierten sowie angeschlossenen USB Geräte freigibt. Es ist von Vorteil, alle benötigten USB Geräte (z.B USB-Stick, Yubikey etc.) anzuschließen, die später in Benutzung sein werden.
Mit folgendem Befehl die initiale Konfiguration erstellen und Rechte setzen:
# usbguard generate-policy > /etc/usbguard/rules.conf
# chmod 0600 /etc/usbguard/rules.conf
Nach der Initialisierung des Relgelsatzes wird der USBGuard Service mit folgendem Befehl durchgestartet:
# systemctl restart usbguard.service
Damit der Service automatisch beim Booten startet, wird er enabled:
# systemctl enable usbguard.service
USB-Geräte auflisten: Um sich alle angesteckten USB-Geräte anzeigen zu lassen benutzt man den den Befehl “usbguard” mit der Option “list-devices”:
# usbguard list-devices
10: allow id 1d6b:0002 serial "0000:00:0d.0" name "xHCI Host Controller" hash "d3YN7OD60Ggqc9hClgdTehcd7ajjceuI03=" parent-hash "XjauE1kBdG1uWQr5CjULQs7zzdjiwidhU7cWLk83v+tE=" via-port "usb1" with-interface 09:00:00
11: allow id 1d6b:0002 serial "0000:00:14.0" name "xHCI Host Controller" hash "jEP/6WzZdgUwdJ5dghcejd7375/d6378OqdplND/o=" parent-hash "rV09okjfdELq7c2eA4tYjVhdjZZwoxj73/hdbcj=" via-port "usb2" with-interface 09:00:00
14: block id 058f:6387 serial "E84615B5" name "Intenso Alu Line" hash "eY9PSaUQeCKDLyxToadj5EZChdgtwuZsjw72/2eT9k=" parent-hash "jEPhU/dw1viqdJ5VSeUidnjfh9jeuTwqo2OqdplND/o=" with-interface 08:06:50 with-connect-type "hotplug"
Im Beispiel ist ersichtlich, dass jedes USB-Gerät eine eindeutige ID hat, über die es referenziert werden kann. Es ist auch zu erkennen, dass zwei USB-Geräte freigegeben sind und eines blockiert ist.
USB-Geräte freigeben und blockieren:
Wir sehen, dass der USB-Stick mit der ID 14 blockiert ist. Um den Stick freizugeben, wird folgender Befehl genutzt:
# usbguard allow-device 14
Standardmäßig ist die Freigabe eines USB-Gerätes nur vorrübergehend gültig. Nach dem Aus- und erneuten Einstecken des USB-Gerätes wird dieses wieder blockiert. Durch den Parameter -p
wird es dauerhaft erlaubt.
# usbguard allow-device 14 -p
Mit folgendem Befehl macht ihr die Freigabe dauerhaft rückgängig:
# usbguard block-device 14 -p
Weitere Informationen zu USBGuard:
Genauere Auskunft zu USBGuard, z.B. wie ihr eigene Regeln schreibt oder wie ihr das integrierte USB-Authorization-Feature benutzt, findet ihr unter folgenden Links: