Ako zakázať systém USB alebo určité porty v Ubuntu 22.04
Tento tutoriál ukazuje, ako zakázať USB, buď celý podsystém alebo pre určité porty USB, v Ubuntu.
Pre servery alebo produkčné stroje môže byť vypnutie USB užitočné z dôvodu ochrany osobných údajov, ochrany pred vírusmi a iných bezpečnostných dôvodov. Pre Ubuntu a väčšinu ostatných Linuxov vám tu ukážem, ako deaktivovať USB 3 spôsobmi:
- Zakázať celý podsystém USB
- Zakázať iba ukladací priestor USB - Zakáže prístup iba pre USB flash disk a iné úložné zariadenia.
- Zakázať konkrétny port USB
Možnosť 1: Zakážte podsystém USB v Ubuntu a inom systéme Linux
Linuxové jadro má parameter na vypnutie celého podsystému USB. Pri zavádzaní s parametrom Kernel budú všetky vypnuté USB klávesnica, myš, flash disk a vstavané USB zariadenia, ako je webová kamera, čítačka odtlačkov prstov, bluetooth. A porty USB nemajú energiu na nabíjanie.
Je to skvelé pre zabezpečenie servera, ale na interakciu so strojom Linux musíte použiť buď vzdialené prihlásenie alebo klávesnicu a myš PS2. A USB stále funguje pred zavedením jadra v položke ponuky Grub. Ak ho chcete deaktivovať stlačením tlačidla napájania, nakonfigurujte ho v nastaveniach systému BIOS.
1. Najprv sa buď pripojte k svojmu serveru Ubuntu, alebo stlačte Ctrl+Alt+T
na pracovnej ploche Ubuntu, čím otvoríte terminál. Keď sa otvorí, spustite príkaz na úpravu konfiguračného súboru pre zavádzač Grub:
sudo nano /etc/default/grub
Vo verzii Desktop môžete nahradiť nano
za gedit
pre Ubuntu 22.04 a staršie za GNOME, gnome-text-editor
pre 23.10 + s GNOME, pluma
pre MATE alebo mousepad
pre XFCE.
Keď sa súbor otvorí, pridajte usbcore.nousb k hodnote GRUB_CMDLINE_LINUX_DEFAULT. Potom stlačte Ctrl+S na uloženie a Ctrl+X na ukončenie nano textového editora.
2. Ďalej spustite príkaz na aktualizáciu konfigurácie grub:
sudo update-grub
POZNÁMKA: Tento príkaz sa môže líšiť pre iný Linux. Po dokončení reštartujte počítač, aby ste mohli použiť!
Pre Ubuntu Desktop s nainštalovaným Grub-Customizer môže používateľ spustiť aj grafickú aplikáciu a pridať parameter jadra prechodom na kartu „Všeobecné nastavenia“.
Možnosť 2: Zakázať iba úložné zariadenie USB
Zablokovaním modulu jadra môže používateľ zakázať iba USB flash disk a iné úložné zariadenia USB, ponechať klávesnicu, myš a ďalšie vstavané USB zariadenia stále funkčné.
1. Najprv otvorte terminál (Ctrl+Alt+T) alebo sa pripojte k serveru a spustite príkaz na vytvorenie a úpravu konfiguračného súboru:
sudo nano /etc/modprobe.d/blacklist-usb-storage.conf
Môžete tiež nahradiť nano
svojim obľúbeným textovým editorom. Keď sa súbor otvorí, pridajte nasledujúce 2 riadky:
blacklist usb_storage
blacklist uas
Potom stlačte Ctrl+S pre uloženie a Ctrl+X pre ukončenie nano textového editora.
2. Potom spustite príkaz na aktualizáciu initramfs.
sudo update-initramfs -u
Nakoniec reštartujte počítač. Váš systém pri spustení prečíta konfiguračný súbor blacklist-usb-storage.conf
a zablokuje načítanie 2 modulov jadra (usb_storage
a uas
) pre prístup k úložným zariadeniam USB.
Možnosť 3: Zakázať špecifický port USB
V adresári /sys/bus/usb/devices
sa nachádza zoznam podpriečinkov, ktoré obsahujú súbory na konfiguráciu USB portov a pripojených zariadení. Nastavením vždy pozastaviť alebo použiť službu usbguard môže používateľ „zakázať“ príslušné porty USB.
Krok 1: Nájdite priečinok zariadenia sys pre váš špecifikovaný port USB
Adresár /sys/bus/usb/devices
má pomerne veľa podpriečinkov, najprv musíte zistiť, ktorý z nich je pre váš USB port.
1. Najprv zapojte USB zariadenie (klávesnicu, myš alebo flash disk) do USB portu, aby sa automaticky vygeneroval zodpovedajúci podpriečinok v tomto adresári.
2. Potom otvorte terminál (Ctrl+Alt+T) a spustite príkaz na zobrazenie všetkých zariadení USB:
lsusb
A spustením jediného príkazu nižšie zobrazíte zoznam podpriečinkov, ako aj ich obsluhované ID.
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
Vo výstupe príkazu lsusb
môžete zistiť ID pripojených zariadení USB. S výstupom 2. príkazu môžete použiť ID na zistenie názvov priečinkov zariadenia (napr. 1-1, 1-2, usb1, usb2, ...).
V mojom prípade (pozri snímku obrazovky nižšie) mám v notebooku iba 2 porty USB. Podpriečinok „1-1“ je určený pre 1c4f:0034, port USB pripojený k myši. A podpriečinok „1-2“ je určený pre 3151:3020, port USB pripojený k bezdrôtovej klávesnici
Krok 2: (Voliteľné) Automatické pozastavenie zariadenia USB
V poslednom kroku 1 som našiel zodpovedajúce podpriečinky (1-1 a 1-2) pre moje 2 USB porty.
Na výber môžete nastaviť automatické pozastavenie určitého USB portu, napríklad 1-1, a nastaviť oneskorenie na 0 ms, takže bude vždy pozastavený.
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
Zmena však funguje iba dovtedy, kým neodpojíte a znova nepripojíte zariadenie k portu USB. Pretože po odpojení USB zariadenia príslušný konfiguračný priečinok (1-1 v prípade) zmizne. Keď sa znova pripojíte, tento priečinok sa znova automaticky vytvorí, ale všetky nastavenia sa vynulujú.
Znamená to, že táto metóda funguje iba vtedy, keď je zariadenie USB stále pripojené k portu. Pokiaľ sa vám nepodarilo automaticky spustiť 2 vyššie uvedené príkazy na každom doplnku.
Krok 2: (Lepšia voľba) Použite USBGuard
Väčšina Linuxu obsahuje balík usbguard v systémovom úložisku. Na pozadí beží službu systemd, ktorá implementuje základné funkcie USB whitelisting a blacklisting.
1. Najprv otvorte terminál a spustite príkaz na inštaláciu balíka:
sudo apt install usbguard
2. Potom spustite príkaz na úpravu konfiguračného súboru pre túto službu:
sudo nano /etc/usbguard/rules.conf
Pre GNOME nahraďte nano
za gedit
(22.04 a staršie), gnome-text-editor
(23.10 a novšie), mousepad
pre XFCE, pluma
pre MATE, ….
Keď sa súbor otvorí, mal by obsahovať niekoľko riadkov pre predvolené pravidlá. Ak je PRÁZDNY, zatvorte súbor. Chvíľu počkajte, kým sa automaticky vygenerujú pravidlá, a potom ich znova upravte.
3. Pred úpravou súboru je lepšie vytvoriť kópiu predvoleného obsahu. Takže môžete ľahko obnoviť zmeny!
Keď sa súbor otvorí, vymažte riadok pre váš špecifický USB port/zariadenie (identifikujte ho pomocou ID, názvu atď.), nakoniec pridajte nový riadok blokujte cez port „1-1“ (zmena „1“ -1'), aby ste deaktivovali tento port USB.
4. Nakoniec reštartujte službu.
systemctl restart usbguard.service
A zmena sa použije o chvíľu neskôr.
Ak chcete túto zmenu vrátiť späť, pomocou príkazov zastavte služby a potom odinštalujte usbguard:
sudo systemctl disable --now usbguard.service
sudo systemctl stop usbguard-dbus.service
sudo systemctl mask usbguard-dbus.service
sudo apt remove --purge usbguard
Nakoniec odstráňte konfiguračné súbory v adresári /etc:
sudo rm -rf /etc/usbguard/