როგორ გამორთოთ USB სისტემა ან გარკვეული პორტები Ubuntu 22.04-ში


ეს სახელმძღვანელო გვიჩვენებს, თუ როგორ უნდა გამორთოთ USB, სრული ქვესისტემა ან გარკვეული USB პორტები, Ubuntu-ში.

სერვერის ან წარმოების მანქანებისთვის USB-ის გამორთვა შეიძლება სასარგებლო იყოს მონაცემთა კონფიდენციალურობის, ვირუსებისგან დაცვისა და უსაფრთხოების სხვა მიზეზების გამო. Ubuntu-სთვის და სხვა Linux-ის უმეტესობისთვის, აქ მე გაჩვენებთ როგორ გამორთოთ USB 3 გზით:

  • სრული USB ქვესისტემის გამორთვა
  • მხოლოდ USB მეხსიერების გამორთვა – გამორთეთ წვდომა მხოლოდ USB ფლეშ დრაივზე და სხვა საცავ მოწყობილობებზე.
  • გამორთეთ კონკრეტული USB პორტი

ვარიანტი 1: გამორთეთ USB ქვესისტემა Ubuntu-სა და სხვა Linux-ში

Linux Kernel-ს აქვს პარამეტრი მთელი USB ქვესისტემის გამორთვისთვის. ბირთვის პარამეტრით ჩატვირთვისას, USB კლავიატურა, მაუსი, ფლეშ დრაივი და ჩაშენებული USB მოწყობილობები, როგორიცაა ვებკამერა, თითის ანაბეჭდის წამკითხველი, ბლუთუზი, ყველაფერი გამორთული იქნება. და, USB პორტებს არ აქვთ ენერგია დასატენად.

ეს შესანიშნავია სერვერის უსაფრთხოებისთვის, მაგრამ თქვენ უნდა გამოიყენოთ დისტანციური შესვლა ან PS2 კლავიატურა და მაუსი Linux-ის აპარატთან ურთიერთობისთვის. და USB ჯერ კიდევ მუშაობს Grub მენიუში ბირთვის ჩატვირთვამდე. თუ გსურთ მისი გამორთვა ჩართვის ღილაკზე დაჭერით, გადადით მისი კონფიგურაცია BIOS-ის პარამეტრებში.

1. პირველ რიგში, ან დაუკავშირდით თქვენს Ubuntu სერვერს, ან დააჭირეთ Ctrl+Alt+T Ubuntu Desktop-ზე ტერმინალის გასახსნელად. როდესაც ის გაიხსნება, გაუშვით ბრძანება Grub-ის ჩამტვირთველის კონფიგურაციის ფაილის რედაქტირებისთვის:

sudo nano /etc/default/grub

Desktop გამოცემისთვის შეგიძლიათ შეცვალოთ nano gedit Ubuntu 22.04-ისთვის და უფრო ადრე GNOME-ით, gnome-text-editor 23.10-ისთვის + GNOME-ით, pluma MATE-სთვის ან მაუსის pad XFCE-ისთვის.

როდესაც ფაილი გაიხსნება, დაამატეთ usbcore.nousb GRUB_CMDLINE_LINUX_DEFAULT მნიშვნელობას. შემდეგ დააჭირეთ Ctrl+S შესანახად და Ctrl+X ნანო ტექსტის რედაქტორის გასასვლელად.

2. შემდეგ, გაუშვით ბრძანება grub კონფიგურაციის განახლებისთვის:

sudo update-grub

შენიშვნა: ეს ბრძანება შეიძლება განსხვავდებოდეს სხვა Linux-ისთვის. როდესაც დასრულდება, გადატვირთეთ თქვენი კომპიუტერი განაცხადისთვის!

Ubuntu Desktop-ისთვის დაინსტალირებული Grub-Customizer, მომხმარებელს ასევე შეუძლია გაუშვას გრაფიკული აპლიკაცია და დაამატოთ ბირთვის პარამეტრი „ზოგადი პარამეტრების“ ჩანართზე გადასვლით.

ვარიანტი 2: გამორთეთ მხოლოდ USB შენახვის მოწყობილობა

ბირთვის მოდულის დაბლოკვით, მომხმარებელს შეუძლია აირჩიოს მხოლოდ USB ფლეშ დრაივის და სხვა USB შენახვის მოწყობილობების გამორთვა, კლავიატურა, მაუსი და სხვა ჩაშენებული USB მოწყობილობები კვლავ მუშაობდეს.

1. ჯერ გახსენით ტერმინალი (Ctrl+Alt+T) ან დაუკავშირდით სერვერს და გაუშვით ბრძანება კონფიგურაციის ფაილის შესაქმნელად და რედაქტირებისთვის:

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

ასევე, შეგიძლიათ შეცვალოთ nano თქვენს საყვარელ ტექსტურ რედაქტორში. ფაილის გახსნისას დაამატეთ შემდეგი 2 სტრიქონი:

blacklist usb_storage
blacklist uas

შემდეგ დააჭირეთ Ctrl+S შესანახად და Ctrl+X ნანო ტექსტის რედაქტორის გასასვლელად.

2. ამის შემდეგ გაუშვით ბრძანება initramfs-ის განახლებისთვის.

sudo update-initramfs -u

და ბოლოს, გადატვირთეთ თქვენი მანქანა. თქვენი სისტემა წაიკითხავს blacklist-usb-storage.conf კონფიგურაციის ფაილს გაშვებისას და დაბლოკავს ბირთვის 2 მოდულის ჩატვირთვას (usb_storage და uas) USB შენახვის მოწყობილობებზე წვდომისთვის.

ვარიანტი 3: გამორთეთ კონკრეტული USB პორტი

/sys/bus/usb/devices დირექტორიაში არის ქვესაქაღალდეების სია, რომლებიც შეიცავს ფაილებს USB პორტებისა და დაკავშირებული მოწყობილობების კონფიგურაციისთვის. ყოველთვის შეჩერების ან usbguard სერვისის გამოყენებით, მომხმარებელს შეუძლია „გამორთოს“ შესაბამისი USB პორტები.

ნაბიჯი 1: აღმოაჩინეთ sys მოწყობილობის საქაღალდე თქვენი მითითებული USB პორტისთვის

/sys/bus/usb/devices დირექტორიაში საკმაოდ ბევრი ქვესაქაღალდეა, ჯერ უნდა გაარკვიოთ რომელია თქვენი USB პორტისთვის.

1. პირველ რიგში, შეაერთეთ USB მოწყობილობა (კლავიატურა, მაუსი ან ფლეშ დრაივი) USB პორტში, რათა ის ავტომატურად გამოიმუშავებს შესაბამის ქვესაქაღალდეს ამ დირექტორიაში.

2. შემდეგ გახსენით ტერმინალი (Ctrl+Alt+T) და გაუშვით ბრძანება ყველა USB მოწყობილობის სიაში:

lsusb

და გაუშვით ერთჯერადი ბრძანება ქვემოთ, რათა ჩამოთვალოთ ქვესაქაღალდეები და მათი დამუშავებული 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

lsusb ბრძანების გამოსავალში შეგიძლიათ გაიგოთ დაკავშირებული USB მოწყობილობების ID. მე-2 ბრძანების გამომავალი საშუალებით, შეგიძლიათ გამოიყენოთ ID მოწყობილობის საქაღალდის სახელების გასარკვევად (მაგ., 1-1, 1-2, usb1, usb2, ...).

ჩემს შემთხვევაში (იხილეთ ეკრანის სურათი ქვემოთ), მე მაქვს მხოლოდ 2 USB პორტი ჩემს ლეპტოპში. „1-1“ ქვესაქაღალდე განკუთვნილია 1c4f:0034-ისთვის, USB პორტი დაკავშირებულია მაუსით. ხოლო „1-2“ ქვესაქაღალდე არის 3151:3020, USB პორტი დაკავშირებულია უკაბელო კლავიატურასთან

ნაბიჯი 2: (სურვილისამებრ) USB მოწყობილობის ავტომატური შეჩერება

ბოლო ეტაპზე 1, მე აღმოვაჩინე შესაბამისი ქვესაქაღალდეები (1-1 და 1-2) ჩემი 2 USB პორტისთვის.

არჩევანისთვის, შეგიძლიათ დააყენოთ გარკვეული USB პორტის ავტომატური შეჩერება, მაგალითად 1-1 და დააყენოთ დაყოვნება 0 ms-ზე, ასე რომ, ის ყოველთვის შეჩერდება.

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

თუმცა, ცვლილება იმუშავებს მხოლოდ მანამ, სანამ არ გამორთავთ და არ შეაერთებთ მოწყობილობას USB პორტში. რადგან USB მოწყობილობის გამორთვის შემდეგ, შესაბამისი კონფიგურაციის საქაღალდე (შესაბამისად 1-1) გაქრება. ხელახლა ჩართვისას, ეს საქაღალდე ისევ ავტომატურად იქმნება, მაგრამ ყველა პარამეტრი გადატვირთულია.

ეს ნიშნავს, რომ ეს მეთოდი მუშაობს მხოლოდ მაშინ, როდესაც USB მოწყობილობა მუდმივად არის დაკავშირებული პორტთან. თუ თქვენ მოახერხეთ ზემოთ მოცემული 2 ბრძანების ავტომატურად გაშვება ყველა დანამატზე.

ნაბიჯი 2: (უკეთესი არჩევანი) გამოიყენეთ USBGuard

Linux-ის უმეტესობა შეიცავს usbguard პაკეტს სისტემის საცავში. ის აწარმოებს სისტემურ სერვისს ფონზე, რათა განახორციელოს USB თეთრ სიაში და შავი სიის ძირითადი შესაძლებლობები.

1. ჯერ გახსენით ტერმინალი და გაუშვით ბრძანება პაკეტის დასაყენებლად:

sudo apt install usbguard

2. შემდეგ, გაუშვით ბრძანება ამ სერვისის კონფიგურაციის ფაილის რედაქტირებისთვის:

sudo nano /etc/usbguard/rules.conf

GNOME-სთვის, შეცვალეთ nano gedit (22.04 და უფრო ადრე), gnome-text-editor (23.10 და მოგვიანებით), mousepad XFCE-სთვის, pluma MATE-სთვის, ….

როდესაც ფაილი იხსნება, ის უნდა შეიცავდეს რამდენიმე ხაზს ნაგულისხმევი წესებისთვის. თუ ცარიელია, დახურეთ ფაილი. დაელოდეთ ერთ წუთს, რათა მან ავტომატურად შექმნას წესები, შემდეგ ხელახლა შეცვალეთ იგი.

3. ფაილის რედაქტირებამდე ჯობია ნაგულისხმევი შინაარსის ასლი გააკეთოთ. ასე რომ, თქვენ შეგიძლიათ მარტივად აღადგინოთ ცვლილებები!

როდესაც ფაილი გაიხსნება, წაშალეთ ხაზი თქვენი კონკრეტული USB პორტისთვის/მოწყობილობისთვის (იდენტიფიცირება ID-ით, სახელით და ა.შ.), ბოლოს დაამატეთ ახალი ხაზი ბლოკი პორტის „1-1“ (შეცვალეთ '1 -1' შესაბამისად) რომ გამორთოთ ეს USB პორტი.

4. ბოლოს გადატვირთეთ სერვისი.

systemctl restart usbguard.service

და, ცვლილება გამოყენებული იქნება რამდენიმე წუთის შემდეგ.

ამ ცვლილების გასაუქმებლად გამოიყენეთ ბრძანებები სერვისების შესაჩერებლად, შემდეგ წაშალეთ usbguard:

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

დაბოლოს, წაშალეთ კონფიგურაციის ფაილები /etc დირექტორიაში:

sudo rm -rf /etc/usbguard/