Я хочу заблокировать все USB-устройства, кроме USB-клавиатуры и USB-мыши, с помощью правил udev в Ubuntu 16.04 и выше.

Вопрос или проблема

Я хочу заблокировать все USB-устройства, кроме USB-клавиатуры и USB-мишки, с помощью правил udev? Цель – ограничить пользователей в подключении внешних накопителей (флеш-накопителей, внутреннего хранилища телефонов и хранилища устройств iOS).

Чтобы ограничить пользователей в передаче данных на эти устройства с машины Ubuntu версии 16.04 и выше.

Также ограничить мобильный протокол передачи MTP для ограничения передачи фотографий.

Войдите в машину с правами sudo в терминале.

# sudo -i 
Список USB-портов:
# lsmod | grep usb 
Отредактируйте файл blacklist.conf
# sudo vi /etc/modprobe.d/blacklist.conf 
blacklist usb_storage
blacklist uas
blacklist usbhid
# sudo vi /etc/rc.local/ 
modprobe -r usb_storage 
modprobe -r uas
modprobe -r usbhid

Сохраните и перезагрузите машину.
Но каким-то образом мобильное хранилище управляет подключением хранилища к машине.
Поэтому сейчас пробую правила udev, я пробовал следующее для всех портов (usb/1-3, usb1/1-3…) но это блокирует и клавиатуру, и мышь.

# echo 0 > /sys/bus/usb/devices/1-3/authorized 

Другой вариант, который я пробовал:

/etc/udev/rules.d/01-usblockdown.rules
Содержимое скрипта следующее:
# Скрипт Аделья Креншоу
# С информацией от Майкла Миллера, Инаки Переса-Гонсалеса и VMWare

# По умолчанию отключить.
# ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'echo 0 >/sys$DEVPATH/authorized'"
ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'" # Включить устройства-репитеры. Может быть, существует лучший способ, чем это. ACTION=="add", ATTR{bDeviceClass}=="09", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'" # Другие вещи, которые нужно включить ACTION=="add", ATTR{idVendor}=="046d", ATTR{idProduct}=="0809", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'" ACTION=="add", ATTR{serial}=="078606B90DD3", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'" ACTION=="add", ATTR{product}=="802.11 n WLAN", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'" # ACTION=="add", ATTR{idVendor}=="413c", ATTR{idProduct}=="2106", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"

Это также блокирует USB-клавиатуру и мышь.

Просто подсказки:

  • /etc/modprobe.d/blacklist.conf .. blacklist не работает для всех типов драйверов. Некоторые из них не являются внешними модулями, и для их работы необходимо передать специальный аргумент через /etc/default/grub .. GRUB_CMDLINE_LINUX_DEFAULT.
  • usbhid – это основной драйвер USB HID (устройства человеко-машинного интерфейса) для клавиатуры, мыши и джойстика. Лучше его убрать. Хорошо, что у вас все еще есть доступ к машине. Лучше, если вы подготовите вход по OpenSSH на всякий случай.
  • Проверьте lsusb -t и udevadm info -a ..., когда подключены только мышь/клавиатура. Соберите список всех активных USB-драйверов. Я ожидаю увидеть: USB1/2/3-хабы, мышь, клавиатуру, кардридер SD, Bluetooth.
  • Разработайте похожее правило, как в посте для отвязывания драйвера, позволяя, вероятно, только USB-хабы и USB HID-драйверы.

Если вы столкнетесь с блокировкой, обновите вопрос с собранной информацией, дайте знать в комментариях.

Попробуйте это

ctrl + alt + t

Введите: sudo nautilus n /usr/lib/gvfs/

Нажмите enter

Введите свой пароль

Откроется одна страница, на ней проверьте gvfsd-mtp, кликните правой кнопкой мыши на этом

Снимите галочку (Разрешить выполнение файла как программы)

Закройте это и в терминале введите init 6, нажмите enter

Система перезагрузится и проверьте сейчас

Ответ или решение

Для блокировки всех USB-устройств, кроме USB-клавиатуры и USB-мыши, на системах Ubuntu 16.04 и выше, можно использовать правила udev. Следуя нижеприведённым шагам, вы сможете настроить систему так, чтобы она не разрешала подключение внешних носителей, таких как флеш-накопители и устройства MTP, при этом оставив работу клавиатуры и мыши без изменений.

Шаги по настройке udev для блокировки USB-устройств

  1. Откройте терминал:
    Нажмите Ctrl + Alt + T, чтобы открыть терминал.

  2. Получите информацию об устройствах:
    Выполните команду для получения списка подключённых USB-устройств:

    lsusb

    Это позволит вам идентифицировать устройства и их идентификаторы idVendor и idProduct, необходимых для создания правил.

  3. Создайте правило udev:
    Для создания правил необходимо создать файл в директории /etc/udev/rules.d/. Имя файла может быть, например, 99-usb-restrict.rules:

    sudo nano /etc/udev/rules.d/99-usb-restrict.rules
  4. Добавьте правила:
    В редакторе добавьте следующие строки:

    # Блокируем все устройства по умолчанию
    ACTION=="add", SUBSYSTEM=="usb", ATTR{authorized}="0"
    
    # Разрешаем USB-клавиатуру
    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c31c", ATTR{authorized}="1"   
    # Замените idVendor и idProduct на ваши значения для вашей клавиатуры
    
    # Разрешаем USB-мышь
    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c52b", ATTR{authorized}="1"
    # Замените idVendor и idProduct на ваши значения для вашей мыши

    Измените idVendor и idProduct на соответствующие значения для ваших устройств (их можно получить из команды lsusb).

  5. Сохраните и закройте редактор:
    Нажмите Ctrl + O, затем Enter, затем Ctrl + X, чтобы завершить редактирование.

  6. Примените созданные правила:
    Чтобы обновить изменения, выполните команду:

    sudo udevadm control --reload-rules
  7. Перезагрузите систему:
    Для того чтобы изменения вступили в силу, перезагрузите компьютер:

    sudo reboot

Дополнительные меры

  • Отключение протокола MTP:
    Для предотвращения подключения мобильных устройств с использованием протокола MTP вы можете отключить рабочие процессы, отвечающие за это. В терминале выполните:

    sudo systemctl stop gvfs-daemon
    sudo systemctl disable gvfs-daemon
  • Блокировка дополнительных модулей:
    Если вы хотите дополнительно заблокировать другие модули, откройте файл /etc/modprobe.d/blacklist.conf и добавьте:

    blacklist usb-storage
    blacklist uas

    Это предотвратит загрузку драйверов, относящихся к USB-накопителям.

Заключение

С помощью приведённых выше шагов вы сможете эффективно блокировать все USB-устройства, за исключением клавиатур и мышей, что значительно повысит уровень безопасности вашей системы. Обязательно проверяйте правильность введённых параметров idVendor и idProduct, чтобы не потерять функциональность ваших ввода устройств.

Оцените материал
Добавить комментарий

Капча загружается...