Disabilitazione delle porte USB


8

Sto usando l'RPI per creare un programma, ma devo disabilitare le porte USB in modo che l'utente finale non possa collegare una tastiera o un mouse e pasticciare con il dispositivo.

È possibile, e se sì, come si fa?


1
Penso che questo sia quello che stai cercando: wpkg.org/Disable_/_enable_keyboard_and_mouse_in_Linux
Gerben

1
Anche il super incollaggio delle porte USB funziona. Questo è quello che facevano le banche. :-P
Gerben,

Cosa hai paura che l'utente possa fare?
Zurechtweiser,

@Gerben il tuo link che spiega disabilitare mouse / tastiera in X Window System, non l'hardware del mouse / tastiera USB.
Gurcanozturk,

Stai usando X o solo la console? Per impostazione predefinita, la console è protetta da password. Potresti spiegare qualcosa in più sulla situazione per cui vuoi usarlo?
Gerben,

Risposte:


4

Puoi trovare fortuna con questo comando:

echo 0x0> / sys / devices / platform / bcm2708_usb / buspower

Questo sembra disabilitare le porte USB. Non l'ho provato però.


1
Le porte USB saranno ancora disponibili durante l'avvio, quindi se l'utente può riavviare il PI, questa soluzione non funzionerà.
pim

2

Ogni controller host USB in Linux espone un'impostazione chiamata authorized_default, che controlla lo stato di tutti i nuovi dispositivi collegati. Impostandolo su 0, tutti i nuovi dispositivi vengono disabilitati per impostazione predefinita:

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

Un modo consigliato di eseguire questo script consiste nell'utilizzare le udevregole. In questo modo, sei sicuro che lo script verrà eseguito al momento giusto, quando il driver del controller host è già caricato, ma nessuno dei dispositivi è stato ancora autorizzato. Vedi questa domanda per un esempio di questo approccio.

Una cosa che dovresti capire è che i blocchi software sono efficaci solo se l'utente finale non può scollegare la scheda SD e rimuovere le protezioni che hai messo in atto.


1

Non so davvero che sia direttamente possibile ... Perché non bloccare fisicamente la capacità degli utenti di farlo? O posizionandolo dove non riescono, riempiendo le porte o posizionando un meccanismo di blocco sopra / attorno ad esso.


Non si conosce l'ambiente in cui risiederà il dispositivo. Potrebbe trovarsi in una posizione in cui non si ha controllo su chi ha accesso ad esso, come in un rack AV da qualche parte in una posizione remota a miglia di distanza. È possibile bloccarlo in un armadio, ma in genere la direzione o il personale in loco avranno comunque accesso a tali armadi. È più facile fornire un blocco a livello di software per scoraggiare le persone che giocano.
ScottN,

@ScottN: Certo, immagino. Riempire le porte con resina epossidica risolverebbe questo problema, ma davvero ... se qualcuno ha quel livello di accesso fisico al dispositivo, tutte le altre considerazioni sulla sicurezza sono comunque più o meno controverse.
Jacobm001

Oh, riempire le porte con resina epossidica è davvero l'ultima risorsa e dimentica di avere il dispositivo utilizzabile se viene restituito per RMA o qualcosa del genere. Il mio punto principale era quello di scoraggiare qualcuno che ci giocava come uno staff che aggancia una tastiera e avvia YouTube e guarda i video quando quel dispositivo dovrebbe essere usato per fare segnaletica o altro.
ScottN,

1
sudo sh -c "echo 0 > /sys/devices/platform/soc/3f980000.usb/buspower"

Disabiliterà le porte USB ma anche la porta LAN.

sudo sh -c "echo 1 > /sys/devices/platform/soc/3f980000.usb/buspower"

Li riattiva.


0

usa SELinux, cerca questo online e avrai molte risorse. È stato sviluppato per questo scopo. È quindi possibile disabilitare / abilitare le porte e altre funzionalità del proprio sistema Linux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.