Usbguard (Português)

Status de tradução:
Esse artigo é uma tradução de
USBGuard
. Data da última tradução: 2020-11-09. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
USBGuard
oferece um mecanismo de lista branca/negra para dispositivos USB. A inspiração para isso vem de exploits como BadUSB. Ele faz uso de uma infraestrutura de bloqueio de dispositivo incluída no kernel do Linux e consiste em um daemon e alguns front-ends.
Instalação
Instale
o
usbguard
pacote, ou
usbguard-git
AUR
para a versão de desenvolvimento.
O miniaplicativo Qt foi removido do USBGuard 0.7.5 e será mantido em uma forma simplificada como um projeto separado posteriormente.
[1]
Configuração
O arquivo de configuração principal é encontrado em
/etc/usbguard/usbguard-daemon.conf
. Para editá-lo, você precisa de privilégios de root.
Se você deseja controlar o daemon via IPC, certifique-se de adicionar seu nome de usuário ao
IPCAllowedUsers
ou seu grupo para
IPCAllowedGroups
para tornar as regras persistentes. Na maioria dos casos, você desejará isso.
Por padrão, o USBGuard bloqueia todos os dispositivos recém-conectados e os dispositivos conectados antes da inicialização do daemon são deixados como estão. Isso pode ser alterado com a opção
PresentDevicePolicy
. Definindo esta chave para
apply-policy
é a configuração mais segura, que garante a segurança mesmo quando o daemon é reiniciado.
Com a chave
ImplicitPolicyTarget
você pode configurar o tratamento padrão dos dispositivos, se nenhuma regra corresponder. A opção mais segura aqui é
block
.
Para obter uma documentação detalhada da configuração, consulte o arquivo de configuração muito bem comentado.
Uso
USBGuard tem um daemon principal, um CLI, uma interface DBUS e uma API via libusbguard.
Atenção
Certifique-se de realmente configurar o daemon antes de iniciá-lo / ativá-lo ou todos os dispositivos USB serão bloqueados imediatamente!
Se você quiser usar o Qt GUI ou outro programa de comunicação via DBUS,
enable
e
start
usbguard-dbus.service
.
Se você deseja se comunicar apenas via API (com a ferramenta CLI ou outro software usando libusbguard)
enable
e
start
usbguard.service
.
O CLI está disponível via
usbguard
.
Veja as man pages de acordo para mais informações.
Regras
Para configurar o USBGuard de acordo com suas necessidades, você pode editar
/etc/usbguard/rules.conf
. No entanto, a edição manual das regras normalmente não é necessária. Você pode gerar um conjunto de regras com base em seus dispositivos USB conectados no momento executando
usbguard generate-policy > /etc/usbguard/rules.conf
como root.
A sintaxe das regras é explicada formalmente
aqui
.
Um exemplo de impressora hp conectada via USB pode ser assim:
allow id 03f0:0c17 serial "00CNFD234631" name "hp LaserJet 2020" hash "a0ef07fceb6fb77698f79a44a450121m" parent-hash "69d19c1a5733a31e7e6d9530e6k434a6" with-interface { 07:01:03 07:01:02 07:01:01 }
Uma regra começa com uma política.
allow
coloca um dispositivo na lista de permissões,
block
impede que o dispositivo seja processado agora e
reject
remove o dispositivo do sistema.
Em seguida, segue um conjunto de atributos com suas opções, conforme detalhado a seguir.
Atributo
Descrição
id id-do-dispositivo-usb
Corresponde a um ID de dispositivo USB.
id [operador] { id-do-dispositivo-usb ... }
Corresponde a um conjunto de IDs de dispositivos USB.
hash "valor"
Corresponde a um hash calculado a partir dos valores de atributo do dispositivo e dos dados do descritor USB. O hash é calculado para cada dispositivo pelo USBGuard.
hash [operador] { "valor" ... }
Corresponde a um conjunto de hashes de dispositivo.
parent-hash "valor"
Corresponde a um hash do dispositivo pai.
parent-hash [operador] { "valor" ... }
Corresponde a um conjunto de hashes de dispositivo pai.
name "nome-do-dispositivo"
Corresponda ao atributo do nome do dispositivo USB.
name [operador] { "nome-do-dispositivo" ... }
Combine um conjunto de nomes de dispositivos USB.
serial "número-de-série"
Corresponde ao atributo de dispositivo USB iSerial.
serial [operador] { "número-de-série" ... }
Corresponde a um conjunto de atributos de dispositivo USB iSerial.
via-port "id-da-porta"
Corresponda a porta USB através da qual o dispositivo está conectado. Observe que alguns sistemas têm uma numeração de porta instável que muda após a reinicialização do sistema ou certos módulos do kernel são recarregados (e talvez em outros casos). Use o atributo parent-hash se quiser garantir que um dispositivo seja conectado por meio de um dispositivo pai específico.
via-port [operador] { "id-da-porta" ... }
Combine um conjunto de portas USB.
with-interface tipo-de-interface
Corresponde a um tipo de interface fornecido pelo dispositivo USB.
with-interface [operador] { tipo-de-interface tipo-de-interface ... }
Compare um conjunto de tipos de interface com o conjunto de interfaces que o dispositivo USB fornece.
Veja também
USBGuard Website
Diagrama de componente USBGuard
BadUSB background info
Interface de kernel para controle de dispositivo USB