Cum să dezactivați sistemul USB sau anumite porturi în Ubuntu 22.04


Acest tutorial arată cum să dezactivați USB, fie sub-sistemul complet, fie pentru anumite porturi USB, în Ubuntu.

Pentru servere sau mașini de producție, dezactivarea USB poate fi utilă pentru confidențialitatea datelor, protecția împotriva virușilor și alte motive de securitate. Pentru Ubuntu și majoritatea celorlalte Linux, aici vă voi arăta cum să dezactivați USB prin 3 moduri:

  • Dezactivați întregul subsistem USB
  • Dezactivați numai stocarea USB – dezactivați accesul numai pentru unitatea flash USB și alte dispozitive de stocare.
  • Dezactivați un anumit port USB

Opțiunea 1: Dezactivați subsistemul USB în Ubuntu și alte Linux

Linux Kernel are un parametru pentru a dezactiva întregul subsistem USB. La pornirea cu parametrul Kernel, tastatura USB, mouse-ul, unitatea flash și dispozitivele USB încorporate, cum ar fi camera web, cititorul de amprente, bluetooth vor fi toate dezactivate. Și porturile USB nu au putere pentru încărcare.

Acest lucru este excelent pentru securitatea serverului, dar trebuie să utilizați fie autentificarea de la distanță, fie tastatura și mouse-ul PS2 pentru a interacționa cu mașina Linux. Și, USB încă funcționează înainte de a porni nucleul în intrarea din meniul Grub. Dacă doriți să îl dezactivați la apăsarea butonului de pornire, configurați-l în setările BIOS.

1. Mai întâi, fie conectați-vă la serverul Ubuntu, fie apăsați pe Ctrl+Alt+T pe desktop Ubuntu pentru a deschide terminalul. Când se deschide, executați comanda pentru a edita fișierul de configurare pentru încărcătorul Grub:

sudo nano /etc/default/grub

Pentru ediția Desktop, puteți înlocui nano cu gedit pentru Ubuntu 22.04 și anterioare cu GNOME, gnome-text-editor pentru 23.10 + cu GNOME, pluma pentru MATE sau mousepad pentru XFCE.

Când se deschide fișierul, adăugați usbcore.nousb la valoarea GRUB_CMDLINE_LINUX_DEFAULT. Apoi apăsați pe Ctrl+S pentru a salva și pe Ctrl+X pentru a ieși din editorul de nano text.

2. Apoi, executați comanda pentru a actualiza configurația grub:

sudo update-grub

NOTĂ: Această comandă poate varia pentru alte Linux. Când ați terminat, reporniți computerul pentru a aplica!

Pentru Ubuntu Desktop cu Grub-Customizer instalat, utilizatorul poate lansa și aplicația grafică și poate adăuga parametrul kernelului navigând la fila „Setări generale”.

Opțiunea 2: Dezactivați numai dispozitivul de stocare USB

Prin blocarea modulului kernel, utilizatorul poate alege să dezactiveze doar unitatea flash USB și alte dispozitive de stocare USB, să lase tastatura, mouse-ul și alte dispozitive USB încorporate în continuare funcționale.

1. Mai întâi, deschideți terminalul (Ctrl+Alt+T) sau conectați-vă la server și executați comanda pentru a crea și edita fișierul de configurare:

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

De asemenea, puteți înlocui nano cu editorul de text preferat. Când fișierul se deschide, adăugați următoarele 2 rânduri:

blacklist usb_storage
blacklist uas

Apoi apăsați Ctrl+S pentru a salva și Ctrl+X pentru a ieși din editorul de text nano.

2. După aceea, executați comanda pentru a actualiza initramfs.

sudo update-initramfs -u

În cele din urmă, reporniți mașina. Sistemul dvs. va citi fișierul de configurare blacklist-usb-storage.conf la pornire și va bloca încărcarea celor 2 module kernel (usb_storage și uas) pentru accesarea dispozitivelor de stocare USB.

Opțiunea 3: Dezactivați un port USB specific

În directorul /sys/bus/usb/devices, există o listă de subdirectoare care conțin fișierele pentru a configura porturile USB și dispozitivele conectate. Prin setarea suspendării sau utilizând întotdeauna serviciul usbguard, utilizatorul poate „dezactiva” porturile USB corespunzătoare.

Pasul 1: Aflați folderul dispozitivului sistem pentru portul USB specificat

Directorul /sys/bus/usb/devices are destul de multe subdirectoare, mai întâi trebuie să aflați care este pentru portul dumneavoastră USB.

1. Mai întâi, conectați un dispozitiv USB (tastatură, mouse sau unitate flash) la portul USB, astfel încât acesta va genera automat un subdosar corespunzător în acel director.

2. Apoi deschideți terminalul (Ctrl+Alt+T) și executați comanda pentru a lista toate dispozitivele USB:

lsusb

Și, rulați comanda unică de mai jos pentru a lista subdosarele, precum și ID-urile gestionate.

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

În ieșirea comenzii lsusb,  puți afla ID-ul dispozitivelor USB conectate. Cu a doua ieșire a comenzii, puteți utiliza ID-ul pentru a afla numele folderelor dispozitivului (de exemplu, 1-1, 1-2, usb1, usb2, …).

În cazul meu (vezi captura de ecran de mai jos), am doar 2 porturi USB în laptop. Subfolderul „1-1” este pentru 1c4f:0034, portul USB conectat cu mouse-ul. Și subfolderul „1-2” este pentru 3151:3020, portul USB conectat cu tastatura fără fir

Pasul 2: (Opțional) Suspendați automat dispozitivul USB

În ultimul pas 1, am găsit subdirectoarele corespunzătoare (1-1 și 1-2) pentru cele 2 porturi USB ale mele.

Pentru alegere, puteți seta să suspendați automat un anumit port USB, 1-1 de exemplu, și să setați întârzierea la 0 ms, astfel încât acesta va fi întotdeauna suspendat.

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

Cu toate acestea, modificarea funcționează numai până când deconectați și reconectați dispozitivul la portul USB. Deoarece, odată deconectat dispozitivul USB, folderul de configurare corespunzător (1-1 în caz) va fi dispărut. Când vă conectați din nou, folderul respectiv este creat din nou automat, dar cu toate setările resetate.

Aceasta înseamnă că această metodă funcționează numai atunci când dispozitivul USB rămâne conectat la port. Cu excepția cazului în care ați reușit să rulați automat cele 2 comenzi de mai sus pe fiecare plug-in.

Pasul 2: (O alegere mai bună) Utilizați USBGuard

Majoritatea Linux include un pachet usbguard în depozitul de sistem. Rulează un serviciu systemd în fundal pentru a implementa capabilitățile de bază de listare albă și lista neagră USB.

1. Mai întâi, deschideți terminalul și executați comanda pentru a instala pachetul:

sudo apt install usbguard

2. Apoi, executați comanda pentru a edita fișierul de configurare pentru acest serviciu:

sudo nano /etc/usbguard/rules.conf

Pentru GNOME, înlocuiți nano cu gedit (22.04 și versiuni anterioare), gnome-text-editor (23.10 și mai recente), mousepad pentru XFCE, pluma pentru MATE, ….

Când se deschide fișierul, ar trebui să conțină câteva linii pentru regulile implicite. Dacă EMPTY, închideți fișierul. Așteptați un moment pentru a-l lăsa să genereze automat regulile, apoi reeditați-l.

3. Înainte de a edita fișierul, este mai bine să faceți o copie a conținutului implicit. Deci, puteți restabili cu ușurință modificările!

Când fișierul se deschide, ștergeți linia pentru portul/dispozitivul USB specific (identificați-vă după ID, nume etc.), în cele din urmă adăugați o nouă linie blocați prin portul „1-1” (modificați „1 -1' în consecință) pentru a dezactiva acel port USB.

4. În cele din urmă, reporniți serviciul.

systemctl restart usbguard.service

Și, modificarea va fi aplicată câteva momente mai târziu.

Pentru a anula această modificare, utilizați comenzi pentru a opri serviciile, apoi dezinstalați usbguard:

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

În cele din urmă, eliminați fișierele de configurare din directorul /etc:

sudo rm -rf /etc/usbguard/