Hur man inaktiverar USB-system eller vissa portar i Ubuntu 22.04


Den här handledningen visar hur du inaktiverar USB, antingen hela undersystemet eller för vissa USB-portar, i Ubuntu.

För server- eller produktionsmaskiner kan inaktivera USB vara användbart för datasekretess, virusskydd och andra säkerhetsskäl. För Ubuntu och de flesta andra Linux, här ska jag visa dig hur du inaktiverar USB på tre sätt:

  • Inaktivera hela USB-undersystemet
  • Inaktivera endast USB-lagring – Inaktivera endast åtkomst för USB-minnen och andra lagringsenheter.
  • Inaktivera specifik USB-port

Alternativ 1: Inaktivera USB-undersystem i Ubuntu och andra Linux

Linux Kernel har en parameter för att inaktivera hela USB-undersystemet. När du startar upp med Kernel-parametern, kommer USB-tangentbord, mus, flash-enhet och inbyggda USB-enheter, såsom webbkamera, fingeravtrycksläsare, bluetooth att inaktiveras. Och USB-portar har ingen ström för laddning.

Detta är bra för serversäkerhet, men du måste använda antingen fjärrinloggning eller PS2-tangentbord och -mus för att interagera med Linux-maskinen. Och USB fungerar fortfarande innan kärnan startas i Grub-menyposten. Om du vill inaktivera den när du trycker på strömbrytaren, gå konfigurera den i BIOS-inställningarna.

1. Anslut först antingen till din Ubuntu-server eller tryck på Ctrl+Alt+T på Ubuntu Desktop för att öppna terminalen. När den öppnas, kör kommandot för att redigera konfigurationsfilen för Grub boot-loader:

sudo nano /etc/default/grub

För Desktop-utgåvan kan du ersätta nano med gedit för Ubuntu 22.04 och tidigare med GNOME, gnome-text-editor för 23.10+ med GNOME, pluma för MATE eller musmatta för XFCE.

När filen öppnas, lägg till usbcore.nousb till värdet GRUB_CMDLINE_LINUX_DEFAULT. Tryck sedan på Ctrl+S för att spara och Ctrl+X för att avsluta nanotextredigeraren.

2. Kör sedan kommandot för att uppdatera grub-konfigurationen:

sudo update-grub

OBS: Detta kommando kan variera för andra Linux. När du är klar, starta om datorn för att ansöka!

För Ubuntu Desktop med Grub-Customizer installerat kan användaren också starta den grafiska appen och lägga till kärnparametern genom att navigera till fliken "Allmänna inställningar".

Alternativ 2: Inaktivera endast USB-lagringsenhet

Genom att blockera kärnmodulen kan användaren välja att endast inaktivera USB-minnen och andra USB-lagringsenheter, låta tangentbord, mus och andra inbyggda USB-enheter fortfarande fungera.

1. Öppna först terminalen (Ctrl+Alt+T) eller anslut till servern och kör kommandot för att skapa och redigera konfigurationsfilen:

sudo nano /etc/modprobe.d/blacklist-usb-storage.conf

Du kan även byta ut nano till din favorittextredigerare. När filen öppnas lägger du till följande två rader:

blacklist usb_storage
blacklist uas

Tryck sedan på Ctrl+S för att spara och Ctrl+X för att avsluta nanotextredigeraren.

2. Efter det, kör kommandot för att uppdatera initramfs.

sudo update-initramfs -u

Slutligen, starta om din maskin. Ditt system kommer att läsa konfigurationsfilen blacklist-usb-storage.conf vid uppstart och blockerar laddning av de två kärnmodulerna (usb_storage och uas) för åtkomst till USB-lagringsenheter.

Alternativ 3: Inaktivera specifik USB-port

Under katalogen /sys/bus/usb/devices finns en lista över undermappar som innehåller filerna för att konfigurera USB-portar och anslutna enheter. Genom att ställa in att alltid stänga av eller använda usbguard-tjänsten kan användaren "inaktivera" motsvarande USB-portar.

Steg 1: Ta reda på sys-enhetsmappen för din angivna USB-port

Katalogen /sys/bus/usb/devices har en hel del undermappar, du måste först ta reda på vilken som är för din USB-port.

1. Anslut först en USB-enhet (tangentbord, mus eller flashenhet) till USB-porten, så att den automatiskt genererar en motsvarande undermapp i den katalogen.

2. Öppna sedan terminalen (Ctrl+Alt+T) och kör kommandot för att lista alla USB-enheter:

lsusb

Och kör enkla kommandot nedan för att lista undermappar och deras hanterade ID:n.

cd /sys/bus/usb/devices && for d in *; do if [ -f $d/idProduct ]; then prod=$( cat $d/idProduct ); vend=$( cat $d/idVendor ); echo Device: "${d}", ID: "${vend}:${prod}"; fi; done

I kommandoutgången lsusb kan du ta reda på ID:t för dina anslutna USB-enheter. Med den andra kommandoutgången kan du använda ID:t för att ta reda på enhetens mappnamn (t.ex. 1-1, 1-2, usb1, usb2, …).

I mitt fall (se skärmdump nedan) har jag bara 2 USB-portar i min bärbara dator. Undermappen "1-1" är för 1c4f:0034, USB-porten som är ansluten till musen. Och undermappen "1-2" är för 3151:3020, USB-porten ansluten till det trådlösa tangentbordet

Steg 2: (Valfritt) Stäng av USB-enheten automatiskt

I det sista steget 1 har jag tagit reda på motsvarande undermappar (1-1 och 1-2) för mina 2 USB-portar.

För val, kan du ställa in att automatiskt stänga av en viss USB-port, 1-1 till exempel, och ställa in fördröjningen till 0 ms, så att den alltid är avstängd.

echo 0 | sudo tee /sys/bus/usb/devices/1-1/power/autosuspend_delay_ms
echo "auto" | sudo tee /sys/bus/usb/devices/1-1/power/control

Ändringen fungerar dock bara tills du kopplar ur och återansluter enheten till USB-porten. Eftersom, när du kopplar ur USB-enheten, kommer motsvarande konfigurationsmapp (1-1 i fallet) att försvinna. När du pluggar in igen skapas den mappen automatiskt igen, men med alla inställningar återställda.

Detta innebär att den här metoden bara fungerar när USB-enheten är ansluten till porten. Såvida du inte lyckades köra de två kommandona ovan på varje plugin automatiskt.

Steg 2: (Bättre val) Använd USBGuard

De flesta Linux inkluderar ett usbguard-paket i systemförrådet. Den kör en systemd-tjänst i bakgrunden för att implementera grundläggande USB-vitlistnings- och svartlistningsfunktioner.

1. Öppna först terminalen och kör kommandot för att installera paketet:

sudo apt install usbguard

2. Kör sedan kommandot för att redigera konfigurationsfilen för den här tjänsten:

sudo nano /etc/usbguard/rules.conf

För GNOME, ersätt nano med gedit (22.04 och tidigare), gnome-text-editor (23.10 och senare), musmatta för XFCE, pluma för MATE, ….

När filen öppnas bör den innehålla några rader för standardregler. Om den är TOM, stäng filen. Vänta ett ögonblick för att låta den automatiskt generera reglerna och redigera den sedan igen.

3. Innan du redigerar filen är det bättre att göra en kopia av standardinnehållet. Så du kan enkelt återställa ändringarna!

När filen öppnas, ta bort raden för din specifika USB-port/enhet (identifiera med ID, namn, etc), lägg till en ny rad blockera via-port “1-1” (ändra '1 -1' i enlighet med detta) för att inaktivera den USB-porten.

4. Starta slutligen om tjänsten.

systemctl restart usbguard.service

Och ändringen kommer att tillämpas en stund senare.

För att ångra denna ändring, använd kommandon för att stoppa tjänsterna och avinstallera sedan usbguard:

sudo systemctl disable --now usbguard.service
sudo systemctl stop usbguard-dbus.service
sudo systemctl mask usbguard-dbus.service
sudo apt remove --purge usbguard

Ta slutligen bort konfigurationsfilerna under katalogen /etc:

sudo rm -rf /etc/usbguard/