13.6. 为 USB 设备创建结构化自定义策略
您可以在 /etc/usbguard/rules.d/
目录中的几个 .conf
文件中组织自定义 USBGuard 策略。然后 usbguard-daemon
将主 rules.conf
文件与目录中的 .conf
文件按字母顺序组合在一起。
先决条件
-
usbguard
服务已安装并运行。
流程
创建一个授权当前连接的 USB 设备的策略,并将生成的规则保存到一个新的
.conf
文件,如policy.conf
。# usbguard generate-policy --no-hashes > ./policy.conf
--no-hashes
选项不会为设备生成哈希属性。在配置设置中避免哈希属性,因为它们可能不是永久的。使用您选择的文本编辑器显示
policy.conf
文件,例如:# vi ./policy.conf ... allow id 04f2:0833 serial "" name "USB Keyboard" via-port "7-2" with-interface { 03:01:01 03:00:00 } with-connect-type "unknown" ...
将所选行移到一个单独的
.conf
文件中。注意文件名开头的两位数字指定守护进程读取配置文件的顺序。
例如,将键盘的规则复制到一个新的
.conf
文件中。# grep "USB Keyboard" ./policy.conf > ./10keyboards.conf
将新策略安装到
/etc/usbguard/rules.d/
目录中。# install -m 0600 -o root -g root 10keyboards.conf /etc/usbguard/rules.d/10keyboards.conf
将其余的行移到主
rules.conf
文件中。# grep -v "USB Keyboard" ./policy.conf > ./rules.conf
安装其余的规则。
# install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
重新启动
usbguard
守护进程,以应用您的更改。# systemctl restart usbguard
验证
显示所有活动的 USBGuard 规则。
# usbguard list-rules ... 15: allow id 04f2:0833 serial "" name "USB Keyboard" hash "kxM/iddRe/WSCocgiuQlVs6Dn0VEza7KiHoDeTz0fyg=" parent-hash "2i6ZBJfTl5BakXF7Gba84/Cp1gslnNc1DM6vWQpie3s=" via-port "7-2" with-interface { 03:01:01 03:00:00 } with-connect-type "unknown" ...
显示
/etc/usbguard/rules.d/
目录中的rules.conf
文件以及所有.conf
文件的内容。# cat /etc/usbguard/rules.conf /etc/usbguard/rules.d/*.conf
- 验证活动的规则是否包含文件中的所有规则,并且顺序正确。
其他资源
-
您系统上的
usbguard-rules.conf (5)
手册页