Usbguard (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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-gitAUR 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