Kako onemogućiti USB sistem ili određene portove u Ubuntu 22.04


Ovaj vodič pokazuje kako onemogućiti USB, bilo cijeli podsistem ili za određene USB portove, u Ubuntuu.

Za serverske ili proizvodne mašine, onemogućavanje USB-a može biti korisno zbog privatnosti podataka, zaštite od virusa i drugih sigurnosnih razloga. Za Ubuntu i većinu drugih Linuxa, ovdje ću vam pokazati kako onemogućiti USB na 3 načina:

  • Onemogući cijeli USB podsistem
  • Onemogući samo USB memoriju - Onemogućite pristup samo za USB fleš disk i druge uređaje za pohranu.
  • Onemogući određeni USB port

Opcija 1: Onemogućite USB podsistem u Ubuntu i drugom Linuxu

Linux kernel ima parametar za onemogućavanje cijelog USB podsistema. Kada se pokrenete s parametrom kernela, USB tastatura, miš, fleš disk i ugrađeni USB uređaji, kao što su web kamera, čitač otiska prsta, bluetooth će biti onemogućeni. A, USB portovi nemaju napajanje za punjenje.

Ovo je odlično za sigurnost servera, ali morate koristiti ili udaljenu prijavu ili PS2 tastaturu i miš da biste komunicirali sa Linux mašinom. I, USB i dalje radi prije pokretanja kernela u unosu menija Grub. Ako želite da ga onemogućite pritiskom na dugme za napajanje, idite na konfiguraciju u BIOS postavkama.

1. Prvo se povežite na vaš Ubuntu server ili pritisnite Ctrl+Alt+T na Ubuntu radnoj površini da otvorite terminal. Kada se otvori, pokrenite komandu da uredite konfiguracioni fajl za Grub boot-loader:

sudo nano /etc/default/grub

Za Desktop izdanje, možete zamijeniti nano sa gedit za Ubuntu 22.04 i ranije sa GNOME, gnome-text-editor za 23.10 + sa GNOME-om, pluma za MATE ili podlogom za miša za XFCE.

Kada se datoteka otvori, dodajte usbcore.nousb vrijednosti GRUB_CMDLINE_LINUX_DEFAULT. Zatim pritisnite Ctrl+S da sačuvate i Ctrl+X da izađete iz uređivača nano teksta.

2. Zatim pokrenite naredbu za ažuriranje grub konfiguracije:

sudo update-grub

NAPOMENA: Ova komanda se može razlikovati za drugi Linux. Kada završite, ponovo pokrenite računar da biste se prijavili!

Za Ubuntu Desktop sa instaliranim Grub-Customizer, korisnik takođe može pokrenuti grafičku aplikaciju i dodati parametar kernela tako što će otići na karticu „Opšte postavke“.

Opcija 2: Onemogućite samo USB uređaj za skladištenje

Blokiranjem kernel modula, korisnik može odabrati da isključi samo USB fleš disk i druge USB uređaje za pohranu, ostavi da tastatura, miš i drugi ugrađeni USB uređaji i dalje rade.

1. Prvo otvorite terminal (Ctrl+Alt+T) ili se povežite sa serverom i pokrenite komandu da kreirate i uredite konfiguracioni fajl:

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

Također, možete zamijeniti nano u svoj omiljeni uređivač teksta. Kada se datoteka otvori, dodajte sljedeća 2 reda:

blacklist usb_storage
blacklist uas

Zatim pritisnite Ctrl+S da sačuvate i Ctrl+X da izađete iz uređivača nano teksta.

2. Nakon toga, pokrenite naredbu da ažurirate initramfs.

sudo update-initramfs -u

Konačno, ponovo pokrenite svoju mašinu. Vaš sistem će pročitati blacklist-usb-storage.conf konfiguracijski fajl pri pokretanju i blokirati učitavanje 2 modula kernela (usb_storage i uas) za pristup USB memorijskim uređajima.

Opcija 3: Onemogućite određeni USB port

U /sys/bus/usb/devices direktorijumu, postoji lista podfoldera koji sadrže datoteke za konfigurisanje USB portova i povezanih uređaja. Postavljanjem da uvijek suspenduje ili koristi usbguard uslugu, korisnik može "onemogućiti" odgovarajuće USB portove.

Korak 1: Pronađite folder sys uređaja za vaš specificirani USB port

/sys/bus/usb/devices direktorij ima dosta podfoldera, prvo morate saznati koji je za vaš USB port.

1. Prvo, priključite USB uređaj (tastaturu, miš ili fleš disk) u USB port, tako da će automatski generisati odgovarajuću podmapu u tom direktoriju.

2. Zatim otvorite terminal (Ctrl+Alt+T) i pokrenite naredbu za popis svih USB uređaja:

lsusb

I, pokrenite jednu naredbu u nastavku da navedete podfoldere kao i njihove obrađene ID-ove.

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

U izlazu komande lsusb, možete saznati ID vaših povezanih USB uređaja. Sa izlazom 2. komande, možete koristiti ID da saznate nazive foldera uređaja (npr. 1-1, 1-2, usb1, usb2, …).

U mom slučaju (pogledajte snimak ekrana ispod), imam samo 2 USB porta na svom laptopu. Podfolder “1-1” je za 1c4f:0034, USB port povezan sa mišem. I, “1-2” podmapa je za 3151:3020, USB port povezan sa bežičnom tastaturom

Korak 2: (Opcionalno) Automatsko obustavljanje USB uređaja

U posljednjem koraku 1, otkrio sam odgovarajuće podmape (1-1 i 1-2) za moja 2 USB porta.

Za izbor, možete postaviti da automatski suspendirate određeni USB port, na primjer 1-1, i postavite kašnjenje na 0 ms, tako da će uvijek biti suspendovan.

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

Međutim, promjena radi samo dok ne isključite i ponovo uključite uređaj u USB port. Jer, kada jednom isključite USB uređaj, odgovarajući folder za konfiguraciju (1-1 u slučaju) će nestati. Kada ponovo uključite, ta fascikla se automatski ponovo kreira, ali sa resetovanjem svih postavki.

Što znači da ova metoda radi samo kada je USB uređaj povezan na port. Osim ako ste uspjeli automatski pokrenuti 2 gornje naredbe na svakom dodatku.

Korak 2: (Bolji izbor) Koristite USBGuard

Većina Linuxa uključuje usbguard paket u sistemsko spremište. Pokreće systemd uslugu u pozadini kako bi implementirao osnovne USB mogućnosti stavljanja na bijelu i crnu listu.

1. Prvo otvorite terminal i pokrenite naredbu da instalirate paket:

sudo apt install usbguard

2. Zatim pokrenite naredbu da uredite konfiguracijski fajl za ovu uslugu:

sudo nano /etc/usbguard/rules.conf

Za GNOME, zamijenite nano sa gedit (22.04 i ranije), gnome-text-editor (23.10 i noviji), podloga za miša za XFCE, pluma za MATE, ….

Kada se datoteka otvori, trebalo bi da sadrži neke linije za zadana pravila. Ako je PRAZNO, zatvorite fajl. Pričekajte trenutak da dozvolite da automatski generira pravila, a zatim ih ponovo uredite.

3. Prije uređivanja datoteke, bolje je napraviti kopiju zadanog sadržaja. Dakle, možete lako vratiti promjene!

Kada se datoteka otvori, izbrišite liniju za vaš određeni USB port/uređaj (identifikujte po ID-u, imenu, itd.), na kraju dodajte novu liniju blokiraj preko porta “1-1” (promijeni '1 -1' prema tome) da biste onemogućili taj USB port.

4. Konačno, ponovo pokrenite uslugu.

systemctl restart usbguard.service

I, promjena će biti primijenjena nekoliko trenutaka kasnije.

Da poništite ovu promjenu, koristite naredbe za zaustavljanje usluga, a zatim deinstalirajte usbguard:

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

Konačno, uklonite konfiguracijske datoteke u /etc direktoriju:

sudo rm -rf /etc/usbguard/