Restringir o acesso USB em um Debian

7

É possível restringir as permissões de portas USB em um sistema Debian (Linux)?

Por exemplo:

  • Suprimir a capacidade de conectar qualquer tipo de chave USB com exceção ?
  • Dando a capacidade de ler uma chave USB, mas não escrevendo nela?
  • Enviando um sinal de alerta quando uma chave USB é conectada em um sistema?
por JeanJouX 09.08.2015 / 19:48

2 respostas

4

Quando o kernel do Linux detecta um novo dispositivo, ele envia uma mensagem para udev . O trabalho do udev é tornar o novo dispositivo acessível ao usuário. Para muitos dispositivos, tudo o que o udev precisa fazer é criar entradas em /dev . Para dispositivos de bloco, isso permite que o dispositivo seja montado. Para dispositivos de caracteres, como portas seriais e portas de som, isso permite que aplicativos dedicados usem o dispositivo. Para interfaces de rede, o udev pode definir um nome. Para teclados, o udev também pode definir scancodes adicionais. Se o udev não cria uma entrada de dispositivo, isso efetivamente faz com que o dispositivo não seja usado.

O Udev pode ser controlado pelas regras ; regras padrão estão presentes em /lib/udev/udev.d e elas podem ser substituídas pelo administrador por meio de arquivos em /etc/udev/udev.d . Cada regra do udev tem condições no formato VARIABLE==VALUE ; a regra se aplica se todas essas regras forem atendidas. Você pode ver as condições que se aplicam a um dispositivo executando udevadm info -a -n /dev/… ou udevadm info -a /sys/… .

Até onde eu sei, não há mecanismo genérico para ignorar um dispositivo. Se não for uma interface de rede (que não usa um nó de dispositivo em /dev ), você pode torná-lo efetivamente inutilizável, não dando permissões:

CONDITIONS, MODE="000"

Os dispositivos USB têm um mecanismo de autorização : se o atributo authorized estiver definido como 0 (false), o sistema não acessará o dispositivo. Com esta regra, nenhum dispositivo USB estará disponível além de dispositivos de armazenamento USB.

ACTION=="add", SUSYSTEMS=="usb", DRIVERS!="usb-storage", ATTR{authorized}="0"

Também é possível desativar dispositivos USB após a sequência de inicialização desabilitando todas as portas do host USB com este snippet em /etc/rc.local :

for x in /sys/bus/usb/devices/usb*; do
  echo 0 >"$x/authorized_default"
done

Dispositivos individuais podem ser ativados por meio de uma regra do udev (ou manualmente) que define o atributo authorized como 1.

Se você quiser tornar um dispositivo de armazenamento somente leitura, defina seu atributo ro como 1.

Se você deseja executar um comando, use a chave RUN em uma regra do udev (observe que você precisa do caminho completo para o comando e veja o manual para as seqüências de escape disponíveis e variáveis de ambiente). Se você quiser que o comando acesse a GUI, consulte Abrir um janela em um display X remoto (por que "Não é possível abrir a tela")?

    
por 10.08.2015 / 00:42
1

Você vai querer configurar algumas regras do udev.

Etapas para suas necessidades:

  1. Coloque na lista de permissões os dispositivos permitidos
  2. Aplicar direitos / propriedade restritivos a todos os outros
  3. configure o script a ser acionado por inserção no arquivo de regras também.

Aqui está um tópico releated: link

Isso deve ajudar a explicar e fornecer mais dicas. Se você ficar preso, adicione o próximo obstáculo à sua pergunta.

    
por 10.08.2015 / 00:08