Alterator-usbguard
Название пакета
Назначение
Модуль USBGuard предназначен для настройки ограничений на использование USB-устройств. Модуль работает на основе функционала USBGuard, позволяет вести чёрный и белый списки ограничений и предоставляет два типа действий — allow/block.
Модуль предоставляет следующие возможности:
- сканирование подключенных устройств;
- выбор и добавление устройств в набор правил из списка подключенных устройств;
- создание предустановленных правил для распространённых сценариев;
- создание правил по дескрипторам интерфейса: CC:SS:PP;
- создание правил по свойствам USB-устройства: PID, VID;
- создание правил по хэшу устройства по PID+VID+SN;
- создание сложных правил с дополнительными условиями;
- загрузка правил из csv-файла;
- редактирование значений в созданных правилах;
- просмотр журнала событий подключения/отключения USB-устройств.
Для уведомления пользователя о подключённом и заблокированном устройстве сообщением в трее используется модуль уведомлений (пакет usbguard-notifier).
Запуск
Модуль USBGuard доступен в веб-интерфейсе по адресу https://ip-address:8080 (раздел Система ▷ USBGuard):
Использование модуля
Информационное поле
В информационном поле отображается текущее состояние службы usbguard, список пользователей и групп, которые могут редактировать правила, сообщения об ошибках и предупреждения:
Для включения контроля за USB-устройствами необходимо установить отметку в пункте
«Активировать контроль портов» и нажать кнопку «Проверить», а затем кнопку «Применить». Служба usbguard будет запущена и добавлена в автозагрузку:
Список USB-устройств
Если служба usbguard запущена, в веб-интерфейсе будет отображён список текущих подключённых устройств:
В столбце «Статус» отображается текущее состояние USB-устройства («allow» — разрешённое устройство, «block» — заблокированное устройство).
Для редактирования состояния USB-устройства, необходимо выделить строку с нужным USB-устройством и нажать кнопку «Разблокировать»/«Заблокировать». При этом будет добавлено соответствующее правило в таблицу «Хэш».
Кнопка «Сканировать» позволяет обновить список подключённых USB-устройств.
Предустановки
Правила могут работать в режиме белого или чёрного списка. После установки режима «Чёрный список», будут заблокированы только перечисленные в данном списке USB-устройства. А после установки режима «Белый список», будут заблокированы все USB-устройства, кроме перечисленных в данном списке.
Кроме ручного режима добавления правил в списки существует возможность предварительной настройки списков. Для предварительной настройки правил необходимо:
- Выбрать соответствующий пункт:
- «Белый список»:
- «Заблокировать все, кроме подключенных устройств» — в правила (таблица «Хэш») с действием «allow» будут добавлены все подключенные устройства. Все новые USB-устройства будут заблокированы (будут отображаться в таблице «Список устройств» со статусом «block»);
- «Заблокировать все, кроме подключенных и HID/HUB устройств» — в правила с действием «allow» будут добавлены все подключенные устройства (таблица «Хэш») и все устройства с интерфейсами 03:*:* и 09:*:* (таблица «Маски CC:SS:PP»). Все новые USB-устройства кроме HID/HUB-устройств (клавиатуры, мыши, джойстики, USB-концентраторы) будут заблокированы (будут отображаться в таблице «Список устройств» со статусом «block»);
- «Ручной режим» — позволяет установить свои правила.
- «Чёрный список»:
- «Блокировать устройства по классам дескриптора интерфейса: 06 Image и 08 Mass Storage» — в правила (таблица «Маски CC:SS:PP») с действием «block» будут добавлены все устройства с интерфейсами 08:*:* и 06:*:*. Все USB-устройства Mass Storage Device (USB-накопитель, карта памяти, кардридер, цифровая фотокамера) и Image (веб-камера, сканер) будут заблокированы (будут отображаться в таблице «Список устройств» со статусом «block»);
- «Блокировать устройства по списку известных PID:VID, использующих Аndroid Debug Bus» — в правила (таблица «Маски VID:PID») с действием «block» будут добавлены известные Android-устройства. Все Android-устройства будут заблокированы (будут отображаться в таблице «Список устройств» со статусом «block»);
- «Ручной режим» — позволяет установить свои правила.
- «Белый список»:
- Нажать кнопку «Проверить». Будут показаны планируемые изменения, например:
- Если изменения корректные, нажать кнопку «Применить».
- Для отмены изменений, до нажатия кнопки «Применить», следует выбрать пункт «Ручной режим» и нажать кнопку «Проверить», а затем «Применить».
Добавление/удаление правил
Для добавления нового правила должен быть выбран пункт «Ручной режим» в белом или чёрном списках. Если «Ручной режим» выбран в белом списке, правило будет добавлено с действием «allow», если в чёрном — с действием «block».
Правила по классу интерфейса
Назначение USB-устройств может определяться кодами классов, которые сообщаются USB-узлу для загрузки необходимых драйверов. Коды классов позволяют унифицировать работу с однотипными устройствами разных производителей. Устройство может поддерживать один или несколько классов, максимальное количество которых определяется количеством доступных endpoints. Например, широко известны устройства класса Human Interface Device, HID (мыши, клавиатуры, игровые манипуляторы и т.д.) или устройства Mass Storage (USB-накопители, карты памяти и т.д.).
Добавление правила по маске:
- Под таблицей «Маски CC:SS:PP» нажать кнопку «Добавить».
- В поле «CC:SS:PP» вписать маску, например, правило для всех устройств с интерфейсами 09:*:*:
- Нажать кнопку «Проверить». Корректное правило будет выделено зелёным цветом, не корректное — красным:
- Исправить или удалить не корректное правило и повторно нажать кнопку «Проверить».
- Нажать кнопку «Применить» для активации правила. Правило для всех устройств с интерфейсами 09:*:* добавлено:
Удаление правила по маске:
- В таблице «Маски CC:SS:PP» установить отметку в поле с соответствующим правилом.
- Нажать кнопку «Удалить». Правило будет готово к удалению (отображается зачёркнутым):
- Нажать кнопку «Проверить».
- Нажать кнопку «Применить» для удаления правила.
Правила по VID&PID
Каждое USB-устройство содержит атрибуты, куда входит идентификатор разработчика устройства (VID) и идентификатор изделия (PID). На основании этих идентификаторов узел (компьютер) ищет методы работы с этим устройством (обычно это выражается в требовании установить драйверы, поставляемые разработчиком устройства).
- для соответствия любому идентификатору устройства *:*
- для соответствия любому идентификатору продукта от конкретного поставщика, например, 090с:*
Добавление правила по VID&PID:
- Под таблицей «Маски VID:PID» нажать кнопку «Добавить».
- В поле «VID» вписать идентификатор разработчика устройства (VID), а в поле «PID» идентификатор изделия (PID). Например:
- Нажать кнопку «Проверить». Корректное правило будет выделено зелёным цветом, не корректное — красным:
- Исправить или удалить не корректное правило и повторно нажать кнопку «Проверить».
- Нажать кнопку «Применить» для активации правила.
Удаление правил(а) по VID&PID:
- В таблице «Маски VID:PID» установить отметку в поле с соответствующим правилами:
- Нажать кнопку «Удалить». Правила будут готовы к удалению (отображаются зачёркнутым):
- Нажать кнопку «Проверить».
- Нажать кнопку «Применить» для удаления правил.
Правила по хэшу
Для каждого USB-устройства USBGuard вычисляет хэш на основе значений атрибутов устройства и данных дескриптора USB (PID+VID+SN).
Добавление правила по хэшу:
- Под таблицей «Хэш» нажать кнопку «Добавить».
- В поле «Хэш» вписать хэш устройства. Например:
- Нажать кнопку «Проверить». Корректное правило будет выделено зелёным цветом, не корректное — красным.
- Исправить или удалить не корректное правило и повторно нажать кнопку «Проверить».
- Нажать кнопку «Применить» для активации правила.
Удаление правил(а) по хэшу:
- В таблице «Хэш» установить отметку в поле с соответствующим правилом:
- Нажать кнопку «Удалить». Правила будут готовы к удалению (отображаются зачёркнутым).
- Нажать кнопку «Проверить».
- Нажать кнопку «Применить» для удаления правил(а).
Другие правила
Модуль позволяет создать сложные правил с дополнительными условиями.
Добавление правила:
- Под таблицей «Другие правила» нажать кнопку «Добавить».
- В поле «Правило» вписать правило. Например, правило, разрешающее подключение принтера только через определённый порт: allow id 04a9:177a name "Canon E400" serial "F572EC" via-port "1-2" hash "eql9yA8m+5VVMmhXOvbUzwNPDGCAPq+fxIQHvbptlsY=":
- Нажать кнопку «Проверить». Корректное правило будет выделено зелёным цветом, не корректное — красным.
- Исправить или удалить не корректное правило и повторно нажать кнопку «Проверить».
- Нажать кнопку «Применить» для активации правила.
Удаление правила:
- В таблице «Другие правила» установить отметку в поле с соответствующим правилом.
- Нажать кнопку «Удалить». Правила будут готовы к удалению (отображаются зачёркнутым):
- Нажать кнопку «Проверить».
- Нажать кнопку «Применить» для удаления правила.
Загрузка правил из файла
Правила должны быть добавлены в csv-файл, по одному правилу в каждой строке. Строка должна иметь вид:
allow/block,Interface,PID:VID,Hash
Например:
allow,,090c:1000,"2dfdMHZxF5olAaNbsh68G4fpzD3iQLPL3+M7KHnSRjE="
allow,00:00:*,,
allow,,1000:*,
allow,,,"eql9yA8m+5VVMmhXOvbUzwNPDGCAPq+fxIQHvbptlsY="
Для загрузки правил из файла:
- Нажать кнопку «Обзор» (под таблицей «Хэш») и выбрать файл с правилами:
- Нажать кнопку «Загрузить из файла».
- Нажать кнопку «Проверить»:
- Нажать кнопку «Применить».
Просмотр журнала аудита
Для просмотра журнала событий подключения/отключения USB-устройств необходимо нажать кнопку «Журнал», расположенную в левом нижнем углу модуля.
По нажатию на эту кнопку раскрывается журнал аудита:
Передвигаться по журналу к более старым или более новым записям можно с помощью кнопок «Назад» и «Вперёд».
Есть возможность фильтровать данные с помощью специального поля.
Для того чтобы скрыть панель журнала, необходимо нажать кнопку «Свернуть».
Модуль уведомлений для USBGuard
Модуль уведомлений обрабатывает сообщения от USBGuard при подключении/отключении USB-устройств и выводит сообщения для пользователя, если устройство заблокировано, например:
Для возможности оповещения пользователя о блокировке USB-устройств достаточно установить пакет usbguard-notifier:
# apt-get install usbguard-notifier
# systemctl --global disable usbguard-notifier.service