Sådan deaktiveres USB-system eller visse porte i Ubuntu 22.04


Denne vejledning viser, hvordan du deaktiverer USB, enten det fulde undersystem eller for visse USB-porte, i Ubuntu.

For server- eller produktionsmaskiner kan deaktivering af USB være nyttig af hensyn til databeskyttelse, virusbeskyttelse og andre sikkerhedsårsager. For Ubuntu og de fleste andre Linux, her vil jeg vise dig, hvordan du deaktiverer USB på 3 måder:

  • Deaktiver hele USB-undersystemet
  • Deaktiver kun USB-lager – Deaktiver kun adgang for USB-flashdrev og andre lagerenheder.
  • Deaktiver specifik USB-port

Mulighed 1: Deaktiver USB-undersystem i Ubuntu og andre Linux

Linux Kernel har en parameter til at deaktivere hele USB-undersystemet. Når du starter op med Kernel-parameteren, vil USB-tastatur, mus, flashdrev og indbyggede USB-enheder, såsom webcam, fingeraftrykslæser, bluetooth alle være deaktiveret. Og USB-porte har ingen strøm til opladning.

Dette er fantastisk til serversikkerhed, men du skal bruge enten fjernlogin eller PS2-tastatur og -mus for at interagere med Linux-maskinen. Og USB fungerer stadig før opstart af kernen i Grub menuindgang. Hvis du vil deaktivere det, når du trykker på tænd/sluk-knappen, skal du gå til at konfigurere det i BIOS-indstillinger.

1. Først skal du enten oprette forbindelse til din Ubuntu-server eller trykke på Ctrl+Alt+T på Ubuntu Desktop for at åbne terminalen. Når den åbnes, kør kommandoen for at redigere konfigurationsfilen til Grub boot-loader:

sudo nano /etc/default/grub

For Desktop-udgaven kan du erstatte nano med gedit til Ubuntu 22.04 og tidligere med GNOME, gnome-text-editor for 23.10+ med GNOME, pluma for MATE eller musemåtte for XFCE.

Når filen åbnes, skal du tilføje usbcore.nousb til værdien GRUB_CMDLINE_LINUX_DEFAULT. Tryk derefter på Ctrl+S for at gemme og Ctrl+X for at afslutte nano-teksteditor.

2. Kør derefter kommandoen for at opdatere grub-konfigurationen:

sudo update-grub

BEMÆRK: Denne kommando kan variere for andre Linux. Når du er færdig, genstart din computer for at anvende!

For Ubuntu Desktop med Grub-Customizer installeret kan brugeren også starte den grafiske app og tilføje kerneparameteren ved at navigere til fanen "Generelle indstillinger".

Mulighed 2: Deaktiver kun USB-lagerenhed

Ved at blokere kernemodulet kan brugeren vælge kun at deaktivere USB-flashdrev og andre USB-lagerenheder, lade tastatur, mus og andre indbyggede USB-enheder stadig fungere.

1. Åbn først terminal (Ctrl+Alt+T) eller opret forbindelse til serveren, og kør kommandoen for at oprette og redigere konfigurationsfilen:

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

Du kan også erstatte nano med din foretrukne teksteditor. Når filen åbnes, skal du tilføje følgende 2 linjer:

blacklist usb_storage
blacklist uas

Tryk derefter på Ctrl+S for at gemme og Ctrl+X for at afslutte nanoteksteditor.

2. Kør derefter kommandoen for at opdatere initramf'erne.

sudo update-initramfs -u

Til sidst skal du genstarte din maskine. Dit system vil læse blacklist-usb-storage.conf-konfigurationsfilen ved opstart og blokere indlæsning af de 2 kernemoduler (usb_storage og uas) for at få adgang til USB-lagerenheder.

Mulighed 3: Deaktiver specifik USB-port

Under biblioteket /sys/bus/usb/enheder er der en liste over undermapper, der indeholder filerne til at konfigurere USB-porte og tilsluttede enheder. Ved at indstille til altid at suspendere eller bruge usbguard-tjenesten, kan brugeren "deaktivere" de tilsvarende USB-porte.

Trin 1: Find ud af sys-enhedsmappen for din angivne USB-port

Mappen /sys/bus/usb/devices har en del undermapper, du skal først finde ud af hvilken der er til din USB-port.

1. Sæt først en USB-enhed (tastatur, mus eller flashdrev) i USB-porten, så den automatisk genererer en tilsvarende undermappe i den mappe.

2. Åbn derefter terminalen (Ctrl+Alt+T), og kør kommandoen for at vise alle USB-enheder:

lsusb

Og kør den enkelte kommando nedenfor for at vise undermapperne samt deres håndterede ID'er.

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 kommandoudgangen lsusb kan du finde ud af ID'et på dine tilsluttede USB-enheder. Med den anden kommandoudgang kan du bruge ID'et til at finde ud af enhedsmappenavnene (f.eks. 1-1, 1-2, usb1, usb2, …).

I mit tilfælde (se skærmbillede nedenfor), har jeg kun 2 USB-porte i min bærbare computer. "1-1"-undermappen er til 1c4f:0034, USB-porten forbundet med musen. Og "1-2" undermappe er til 3151:3020, USB-porten forbundet med trådløst tastatur

Trin 2: (Valgfrit) Auto-suspender USB-enheden

I sidste trin 1 har jeg fundet ud af de tilsvarende undermapper (1-1 og 1-2) til mine 2 USB-porte.

For valg kan du indstille til automatisk at suspendere den bestemte USB-port, f.eks. 1-1, og indstille forsinkelsen til 0 ms, så den altid vil være suspenderet.

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 virker dog kun, indtil du afbryder og tilslutter enheden til USB-porten igen. Fordi, når først USB-enheden er taget ud, vil den tilsvarende konfigurationsmappe (1-1 i etuiet) forsvinde. Når du plug-in igen, oprettes mappen automatisk igen, men med alle indstillinger nulstillet.

Det betyder, at denne metode kun virker, når USB-enheden forbliver forbundet til porten. Medmindre det lykkedes dig at køre de 2 ovenstående kommandoer automatisk på hvert plug-in.

Trin 2: (Bedre valg) Brug USBGuard

De fleste Linux inkluderer en usbguard-pakke i systemlageret. Det kører en systemd service i baggrunden for at implementere grundlæggende USB whitelisting og blacklisting muligheder.

1. Åbn først terminal og kør kommandoen for at installere pakken:

sudo apt install usbguard

2. Kør derefter kommandoen for at redigere konfigurationsfilen for denne tjeneste:

sudo nano /etc/usbguard/rules.conf

For GNOME skal du erstatte nano med gedit (22.04 og tidligere), gnome-text-editor (23.10 og nyere), musemåtte til XFCE, pluma til MATE, ….

Når filen åbnes, bør den indeholde nogle linjer for standardregler. Hvis TOM, luk filen. Vent et øjeblik med at lade det automatisk generere reglerne, og rediger det så igen.

3. Før du redigerer filen, er det bedre at lave en kopi af standardindholdet. Så du kan nemt gendanne ændringerne!

Når filen åbnes, skal du slette linjen for din specifikke USB-port/enhed (identificeres med ID, navn osv.), til sidst tilføje en ny linje blok via-port “1-1” (ændre '1 -1' i overensstemmelse hermed) for at deaktivere den USB-port.

4. Genstart endelig tjenesten.

systemctl restart usbguard.service

Og ændringen vil blive anvendt et øjeblik senere.

For at fortryde denne ændring skal du bruge kommandoer til at stoppe tjenesterne og derefter afinstallere usbguard:

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

Fjern endelig konfigurationsfilerne under mappen /etc:

sudo rm -rf /etc/usbguard/