Usbguard (Português)

From ArchWiki
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