Wiki-Quellcode von RangeeOS - USB-Geräte Verwaltung mit USBGuard
Zuletzt geändert von Tobias Wintrich am 2024/10/25 14:16
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | {{info}} | ||
2 | USBGuard ist ab der Firmware 10.00 amd64 build 155 im Basissystem von RangeeOS enthalten | ||
3 | {{/info}} | ||
4 | |||
5 | Mittels des USBGuard behalten Sie die Kontrolle über die am Gerät angeschlossenen USB-Geräte. | ||
6 | |||
7 | {{toc/}} | ||
8 | |||
9 | = USBGuard aktivieren = | ||
10 | |||
11 | {{info}} | ||
12 | Wird der USBGuard erstmalig aktiviert, wird automatisch ein neuer Regelsatz erstellt, welcher den Zugriff auf alle in diesem Moment angeschlossen USB-Geräte erlaubt. Per Default wird der Zugriff auf alle späteren Geräte blockiert. | ||
13 | {{/info}} | ||
14 | |||
15 | Der USBGuard ist in unserer Firmware standardmäßig ausgeschaltet. Zum aktivieren setzen Sie die Option "USBGuard verwenden" unter {{status title="Peripherie"/}} -> {{status title="USB-Geräte"/}} -> **USBGuard-Daemon-Konfiguration** | ||
16 | |||
17 | [[image:usb_guard_01.png||alt="USB Guard aktivieren" width="600"]] | ||
18 | |||
19 | = Geräte Verwalten = | ||
20 | |||
21 | Ist der USBGuard aktiviert können Sie die angeschlossenen USB-Geräte und die entsprechenden Regeln unter {{status title="Peripherie"/}} -> {{status title="USB-Geräte"/}} -> **USBGuard-Geräteverwaltung** verwalten. | ||
22 | |||
23 | Bereits angelegte Regeln können über die Spalte "Target" bearbeitet werden. | ||
24 | Bereits definierte Regeln können über den "Löschen"-Button entfernt werden. Das Gerät verhält sich anschließend wieder wie ein unbekanntes neu angeschlossenes Gerät. | ||
25 | Für Geräte ohne hinterlegte Regel kann über den Button "Regel erstellen" eine neue Regel angelegt werden. | ||
26 | |||
27 | (% class="box warningmessage" %) | ||
28 | ((( | ||
29 | Wenn die Standardregel für neu angeschlossene Geräte auf "Ablehnen" gesetzt ist, tauchen neue Geräte nicht in der Geräteliste auf. | ||
30 | ))) | ||
31 | |||
32 | (% class="wikigeneratedid" %) | ||
33 | [[image:usb_guard_02.png||alt="USB Guard konfigurieren" width="800"]] | ||
34 | |||
35 | = Verfügbare Geräte Berechtigungen = | ||
36 | |||
37 | (% class="box warningmessage" %) | ||
38 | ((( | ||
39 | Die automatisch erstellten Geräteregeln gelten immer exakt für eine Kombination aus USB-Gerät + USB-Port. Wird das USB-Gerät an einen anderen Port gesteckt, kann eine andere Regel definiert werden bzw. wird die Standardregel für neue Geräte angewendet. | ||
40 | ))) | ||
41 | |||
42 | Sowohl als Standardregel in der "USBGuard-Daemon-Konfiguration" als auch für einzelne Geräte über die "USBGuard-Geräteverwaltung" können folgende Regeln definiert werden: | ||
43 | |||
44 | (% style="list-style-type:square" %) | ||
45 | * **Zulassen** | ||
46 | Erlaubt die Verwendung des entsprechenden Geräts exakt an dem aktuell verwendeten USB-Port. | ||
47 | * **Blockieren** | ||
48 | Unterbindet das laden der entsprechenden Gerätetreiber - das Gerät kann an diesem Port nicht verwendet. | ||
49 | * **Ablehnen** | ||
50 | Das Gerät taucht nicht in der Systemkonfiguration auf, neu angeschlossene Geräte können nicht konfiguriert werden. | ||
51 | |||
52 | = USB-Guard und TCMS / Expertenkonfiguration = | ||
53 | |||
54 | Mit den Standardeinstellungen generiert jedes Gerät individuelle Konfigurationsdateien für den USBGuard. Erhält ein Gerät per Gruppenkonfiguration die Aufforderung USBGuard zu nutzen, so generiert es beim ersten aktivieren automatisch eine Konfiguration entsprechend der aktuell angeschlossenen Geräte. Alle später angeschlossenen Geräte müssen händisch konfiguriert werden. | ||
55 | |||
56 | Will man eine zentrale Konfiguration für alle Geräte pflegen und z.B.: alle Eingabegeräte, Webcams.... generell erlauben, so kann man hierzu den "Expertenmodus" verwenden. Sobald der Expertenmodus aktiviert ist, wird die vom System erstellte Konfiguration **mit an den TCMS und damit auch auf andere Geräte übertragen**. | ||
57 | |||
58 | {{warning}} | ||
59 | Wenn Sie den Expertenmodus aktivieren **müssen **Sie die automatisch generierte Konfiguration händisch Anpassen. Wenn die automatisch generierte Konfiguration auf ein anderes Gerät übertragen wird, werden dort keinerlei USB-Geräte mehr funktionieren, da die Konfiguration Port und Seriennummer der angeschlossenen Geräte enthalte und diese auch von Gerät zu Gerät unterscheiden. | ||
60 | {{/warning}} | ||
61 | |||
62 | Den Expertenmodus aktivieren Sie unter {{status title="Peripherie"/}} (% id="cke_bm_78664S" style="display:none" %){{status title="Peripherie"/}}(%%) -> {{status title="USB-Geräte"/}} -> **USBGuard-Daemon-Konfiguration. **Sobald er aktiviert ist, steht Ihnen ein Textfeld "Benutzerdefinierte Regeln" in der **USBGuard-Geräteverwaltung** zur Verfügung. | ||
63 | |||
64 | [[image:usb_guard_03.png||alt="USB Guard Expertenkonfiguration" width="1000"]] | ||
65 | |||
66 | Der automatische Inhalt dient erstmal als "Platzhalter" und sorgt dafür, dass Sie mir Ihrem Gerät an dem Sie die Regeln erstellen und Testen noch weiterarbeiten können. Sobald Sie eigene Regeln geschrieben haben, können Sie den generierten Inhalt löschen. | ||
67 | |||
68 | == Benutzerdefinierte Regeln erstellen == | ||
69 | |||
70 | Per Default werden neue Geräte bereits blockiert. Das heißt, dass Sie in den Regeln nur die Geräte oder Geräteklassen definieren die Sie zulassen möchten. | ||
71 | |||
72 | === Einzelnes Gerät an allen Plätzen erlauben === | ||
73 | |||
74 | Haben Sie Beispielsweise ein spezielles Maus-, Tastatur- oder Webcam Modell, so können Sie dieses eine Gerät für alle Plätze freigeben. Hierzu müssen Sie zunächst über (% id="cke_bm_155072S" style="display:none" %) (%%) {{status title="Peripherie"/}} (% id="cke_bm_78664S" style="display:none" %){{status title="Peripherie"/}}(%%) -> {{status title="USB-Geräte"/}} die PID:VID (Product & Vendor ID) zu Ihrem Produkt ermitteln. Anhand diesem kann ein Gerätemodell eindeutig identifiziert werden. | ||
75 | |||
76 | [[image:usb_guard_04.png||alt="USB Guard Expertenkonfiguration" width="800"]] | ||
77 | |||
78 | Eine Regel für die im Screenshot zu sehende "Microdia USB 2.0 Camera" könnte so aussehen: | ||
79 | |||
80 | //allow id 0c45:636e// | ||
81 | |||
82 | {{warning}} | ||
83 | Buchstaben innerhalb der PID:VID Kombination **müssen **klein geschrieben werden | ||
84 | {{/warning}} | ||
85 | |||
86 | Sie können hier beliebig viele dieser Regeln untereinander schreiben. | ||
87 | |||
88 | === Geräteklassen erlauben === | ||
89 | |||
90 | Geräteklassen werden anhand Ihrer Inferace Klasse definiert und freigeben. Es gibt 8 Geräteklassen die Sie erlauben können: | ||
91 | |||
92 | 1. Mass Storage Class (MSC): **08** | ||
93 | 1. Human Interface Device Class (HID): **03** | ||
94 | 1. Communication Device Class (CDC): **02** | ||
95 | 1. Audio Device Class (ADC): **01** | ||
96 | 1. Printer Device Class (PDC): **07** | ||
97 | 1. Image Device Class (IDC): **06** | ||
98 | 1. Still Image Capture Device Class (SICDC): **06** | ||
99 | 1. Video Device Class (VDC): **0E** | ||
100 | |||
101 | Eine Regel um zum Beispiel alle HID Geräte (Maus/Tastatur + HUBs) zu erlauben sähe dann so aus: | ||
102 | |||
103 | {{code language="bash"}} | ||
104 | allow with-interface one-of { 09:*:* 03:*:* } | ||
105 | {{/code}} | ||
106 | |||
107 | Sie können beliebig viele Inferfaceklassen hintereinander schreiben. Mit dieser Kombination würden Sie HUBs + HIDs + Kameras + Audio Geräte erlauben: | ||
108 | |||
109 | {{code language="bash"}} | ||
110 | allow with-interface one-of { 09:*:* 03:*:* 0E:*:* 01:*:* } | ||
111 | {{/code}} | ||
112 | |||
113 | Bitte beachten Sie, dass wenn Sie die HUB Klasse (09) entfernen, verlieren Sie automatisch auch den Zugriff auf daran angeschlossene Geräte, auch wenn deren Klassen freigegeben sind. | ||
114 | |||
115 | === Beispiel === | ||
116 | |||
117 | Über folgenden Inhalt im Textfeld würden alle Mäuse und Tastaturen, Audiogeräte und ein spezielle Webcam Modell funktionieren: | ||
118 | |||
119 | {{code language="bash"}} | ||
120 | allow id 0c45:636e | ||
121 | allow with-interface one-of { 03:*:* 01:*:* } | ||
122 | {{/code}} | ||
123 | |||
124 | === Weitere Befehle === | ||
125 | |||
126 | Eine Vollständige Übersicht über die usb-guard syntax können Sie im Web hier finden [[USBGuard Rule Language>>https://usbguard.github.io/documentation/rule-language]] |