Гид по технологиям

Как контролировать USB‑устройства в Linux с помощью USBGuard

9 min read Безопасность Обновлено 20 Nov 2025
Контроль USB‑устройств в Linux с USBGuard
Контроль USB‑устройств в Linux с USBGuard

Набор флешек и внешних USB‑накопителей на столе

TL;DR

USBGuard действует как файервол для USB‑устройств: он позволяет разрешать, блокировать или отклонять подключённые устройства по правилам. Установите пакет, сгенерируйте базовую политику для текущих доверенных устройств и затем добавляйте или удаляйте доступ по идентификаторам. Это полезно для домашних и рабочих компьютеров, где нежелательные флешки и устройства представляют риск утечки данных или запуска вредоносного ПО.

Быстрые ссылки

  • The USB Memory Stick and Its Dangers

  • What Is USBGuard?

  • Normal Behavior With USB Sticks on Linux

  • Installing USBGuard

  • Configuring a Base Policy

  • Adding Another USB Device

  • Removing a USB Device’s Access

Краткое описание

USBGuard предоставляет способ контролировать, какие USB‑накопители и другие USB‑устройства могут работать в вашей системе Linux. Он запускается как демон и применяет набор правил (allow/block/reject). Настройка базовой политики для текущих устройств позволяет быстро разрешить клавиатуры, мыши и другие доверенные периферийные устройства, а затем блокировать всё остальное.

Important: после установки USBGuard демон обычно активируется по умолчанию. Сразу после установки необходимо сгенерировать и/или проверить правила — иначе при перезагрузке незаданные устройства могут оказаться заблокированы.


Почему флешки представляют опасность

USB‑накопители удобны и портативны, но именно из‑за этого они часто становятся источником угроз:

  • Физический носитель может содержать вредоносный код, маскирующийся под документ.
  • Устройство типа BadUSB может эмулировать клавиатуру и посылать нежелательные команды.
  • Злоумышленник может быстро скопировать конфиденциальные данные с незаблокированного ПК.
  • Некоторые аппаратные атаки (например, USB Killer) представляют физическую угрозу, которую программные средства не предотвратят.

Если ваш компьютер используется другими людьми или находится в общем доступе (офис, лаборатория, общественный коворкинг), стоит ограничить доступ по USB как меру снижения риска.

Что такое USBGuard

USBGuard — это сервис/демон и набор инструментов для определения и применения правил доступа USB‑устройств. Он позволяет:

  • Пропускать одни устройства (allow), блокировать другие (block) или отклонять их (reject).
  • Создавать базовую политику, автоматически фиксируя текущие доверенные устройства.
  • Разрешать устройство временно или навсегда.
  • Логировать события подключения и отклонения.

Ключевые термины: 1‑строчный глоссарий — allow: разрешить устройство; block: полностью скрыть устройство; reject: запретить работу, но устройство остаётся видимым в списках.

USBGuard защищает от программных атак, распространяемых через носители (скрипты, вредоносные бинарники, BadUSB). Он не защищает от аппаратного разрушения, например, от USB Killer — такие атаки можно предотвратить только физическими барьерами или блокировкой портов.

Поведение Linux с флешками по умолчанию

На современном дистрибутиве (Ubuntu, Fedora, Manjaro) при подключении флешки система обычно:

  • подаёт звуковой сигнал;
  • отображает значок устройства в панели/доке;
  • добавляет точку монтирования в файловый менеджер;
  • устройства видны в выводе lsusb.

Пример команды для отображения списка USB‑устройств:

lsusb

Это удобно, но делает систему более уязвимой: любой пользователь с физическим доступом может подключить внешний накопитель и взаимодействовать с данными.

Установка USBGuard

Зависимости: usbutils и udisks2 (в большинстве современных дистрибутивов уже установлены).

Установка в популярных системах:

Для Ubuntu/Debian:

sudo apt install usbguard

Для Fedora:

sudo dnf install usbguard

Для Manjaro / Arch:

sudo pacman -S usbguard

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

systemctl status usbguard

Если демон активен и у вас ещё нет настроенной политики, при перезагрузке система может заблокировать нежелательные устройства — поэтому следующий раздел про базовую политику обязателен.

Настройка базовой политики

Идея базовой политики: зафиксировать все устройства, которые вы считаете доверенными и которые часто подключены (клавиатуры, мыши, веб‑камеры, некоторые накопители). Это удобно для рабочего ноутбука или настольной станции: всё, что не зафиксировано, по умолчанию отклоняется или блокируется.

USBGuard поддерживает три типа правил:

  • allow — устройство работает как обычно;
  • block — устройство полностью скрыто от ОС (пользователь не видит его);
  • reject — устройство запрещено, но остаётся видимым в списках (полезно для диагностики).

Команда, которая быстро генерирует базовую политику (нужно выполнить в интерактивной root‑сессии):

sudo -i
usbguard generate-policy -X -t reject > /etc/usbguard/rules.conf
exit

Пояснения:

  • sudo -i — открывает shell под root. Обычный sudo не подходит для этой команды.
  • generate-policy создаёт правила для всех текущих подключенных устройств.
  • -X отключает включение хешей в правила (иногда удобнее для читаемости); без -X правила будут содержать уникальные хеш‑атрибуты устройства.
  • -t reject устанавливает поведение по умолчанию для незнакомых устройств (можно выбрать block).

Просмотреть сгенерированные правила:

sudo cat /etc/usbguard/rules.conf

Важно: убедитесь, что в этот момент подключены все ваши доверенные устройства (клавиатура, мышь, веб‑камера и т.д.). Если не подключать — их придётся разрешать вручную позже.

Добавление ещё одного USB‑устройства

После включения базовой политики незнакомое устройство не будет автоматически монтироваться. Способы взаимодействия:

  1. Вариант временного разрешения по ID устройства:
  • Получите список подключённых (но отклонённых) устройств:
lsusb
sudo usbguard list-devices -b
  • Номер устройства в списке (например, 10) используется для временного разрешения:
sudo usbguard allow-device 10
  1. Сделать разрешение постоянным:
sudo usbguard allow-device 10 -p

Команда с -p добавит правило в /etc/usbguard/rules.conf.

Если цель базовой политики была block, чтобы увидеть заблокированные устройства, используйте:

sudo usbguard list-devices -b

Примеры команд, которые часто встречаются в рабочем процессе:

# вывести все разрешенные устройства
sudo usbguard list-devices -a

# вывести все отклонённые устройства
sudo usbguard list-devices -r

# вывести все текущие правила
sudo usbguard show-rules

Удаление доступа у USB‑устройства

Если вы потеряли флешку или хотите отозвать ранее выданное разрешение, выполните:

  1. Найдите актуальный ID устройства в списке разрешённых:
sudo usbguard list-devices -a
  1. Заблокируйте устройство навсегда (пример ID 13):
sudo usbguard block-device 13 -p

Важно: команда немедленно отключит устройство и завершит все операции с ним. Убедитесь, что данные операции завершены.

Рекомендации по безопасности и жёсткая конфигурация

  • Используйте reject в рабочей среде, чтобы устройство было видно в диагностике, но не могло получить доступ.
  • Для особо важных систем фиксируйте хеши устройств (не используйте -X) — это усложняет подделку идентификаторов.
  • Запрещайте устройства класса HID (эмуляция клавиатуры/мыши), если они не нужны:
    • В правилах можно указывать фильтр по классу USB.
  • Ограничьте список пользователей, которые могут выполнять команды usbguardctl/usbguard.
  • Включите централизованный сбор логов для событий USBGuard (syslog/rsyslog/ELK), чтобы отслеживать подозрительную активность.

Когда USBGuard не спасёт (ограничения и случаи неудач)

  • Аппаратные атаки (USB Killer) не блокируются программно — требуется физическая защита или блокираторы портов.
  • Устройства, которые уже получили доступ и выполнили вредоносную операцию, USBGuard не отменит постфактум — мониторинг и резервные копии нужны отдельно.
  • Если администратор по ошибке удалил базовые правила, можно потерять доступ к периферии до восстановления конфигурации.
  • Если злоумышленник имеет root‑доступ, он может отключить демон и обойти правила.

Альтернативные подходы и совместимые инструменты

  • udev‑правила: позволяют разрешать/блокировать устройства по атрибутам на уровне ядра, но не предоставляют удобного интерфейса для политик.
  • AppArmor/SELinux: усиливают контроль над тем, какие процессы могут взаимодействовать с устройствами, но не фокусируются на политике USB.
  • Политики на уровне MDM/Endpoint Security (например, централизованный EDR/MDM) — подходят для корпоративной инфраструктуры и дают централизованный контроль.

Выбор зависит от масштаба: для одного домашнего ПК USBGuard — лёгкое и эффективное решение; для предприятия лучше централизованные продукты.

Типовой сценарий внедрения (SOP/Playbook)

  1. Подготовка
  • Убедитесь, что установлены usbutils и udisks2.
  • Сделайте резервную копию существующих конфигураций.
  1. Установка и проверка
  • Установите usbguard и проверьте статус демона.
  • Сгенерируйте начальную политику при подключённых доверенных устройствах.
  1. Тестирование
  • Подключите новую флешку и попробуйте временно разрешить её.
  • Проверьте логи на предмет ошибок.
  1. Развертывание
  • Распространите правило для доверенных устройств, добавьте в CM/конфигурационное хранилище.
  1. Документы и обучение
  • Инструктируйте пользователей, как запрашивать временный доступ.
  • Опишите процедуру реагирования на потерянный накопитель.

План действий при инциденте (инцидент‑распутывание)

  1. Подозрение на компрометацию через USB:
  • Немедленно отключите подозрительный компьютер от сети.
  • Отмонтируйте и заблокируйте все подозрительные устройства через usbguard.
  1. Сбор данных:
  • Соберите логи USBGuard и системные логи.
  • Сохраните образ диска для последующего анализа.
  1. Анализ и восстановление:
  • Проведите анализ носителя на отдельной защищённой машине.
  • Восстановите систему из резервной копии или выполните чистую переустановку при необходимости.
  1. Пост‑инцидентные меры:
  • Обновите политику USBGuard, закройте найденные уязвимости.
  • Обучите персонал и внесите изменения в SOP.

Тесты и критерии приёмки

Критерии приёмки для базовой политики:

  • При подключении неизвестного USB‑устройства система не монтирует файловые системы автоматически.
  • lsusb показывает подключенные устройства; usbguard list-devices -b показывает заблокированные (при target=block) или -r для отклонённых.
  • Разрешение устройства командой allow-device даёт доступ немедленно.
  • Блокировка командой block-device разрывает соединение и не допускает дальнейшей работы.

Тесты:

  • Подключить доверенную клавиатуру/мышь — устройство должно работать.
  • Подключить неизвестную флешку — доступ должен быть запрещён.
  • Разрешить флешку временно — оператор должен получить рабочую сессию.
  • Сделать разрешение постоянным и перезагрузить — устройство остаётся разрешённым.

Роль‑ориентированные чек‑листы

Администратор:

  • Установить usbguard и проверить статус.
  • Сгенерировать и закоммитить базовую политику.
  • Настроить централизованные логи.

Домашний пользователь:

  • Сгенерировать базовую политику, подключив клавиатуру и мышь.
  • Использовать allow-device для временного доступа гостям.

Офисный ответственный по безопасности:

  • Установить правила по умолчанию reject для публичных рабочих станций.
  • Проводить обучение сотрудников и вести инвентаризацию доверенных устройств.

Совместимость и советы по миграции

USBGuard доступен в репозиториях большинства популярных дистрибутивов: Ubuntu/Debian, Fedora, Arch/Manjaro. При миграции:

  • Экспортируйте /etc/usbguard/rules.conf и храните его в системе управления конфигурацией.
  • Тестируйте на стенде перед массовым развёртыванием.

Конфиденциальность и соответствие требованиям

USBGuard помогает снизить риск утечки данных через физические носители. Однако:

  • Он не шифрует данные и не заменяет DLP (Data Loss Prevention) решения.
  • В корпоративной среде комбинируйте USBGuard с политиками шифрования и аудитом доступа, чтобы соответствовать требованиям GDPR/локальным стандартам защиты данных.

Устранение неполадок

Проблемы и простые решения:

  • «После установки всё перестало работать» — вероятно, нет базовой политики. Загрузитесь в режим восстановления или подключите клавиатуру/мышь по PS/2 (если доступно), сгенерируйте правила как root.
  • «Правило не сработало» — проверьте вывод sudo usbguard show-rules и логи демона через journalctl -u usbguard.
  • «Возникают конфликты с udisks2» — убедитесь, что udisks2 обновлен и разрешения на монтирование соответствуют политике.

Факто‑бокс: ключевые команды

  • Установить: sudo apt install usbguard / sudo dnf install usbguard / sudo pacman -S usbguard
  • Сгенерировать базовую политику: usbguard generate-policy -X -t reject > /etc/usbguard/rules.conf
  • Временно разрешить устройство: sudo usbguard allow-device
  • Постоянно разрешить: sudo usbguard allow-device -p
  • Постоянно заблокировать: sudo usbguard block-device -p
  • Показать заблокированные: sudo usbguard list-devices -b
  • Показать разрешённые: sudo usbguard list-devices -a

Краткое резюме

USBGuard — простой и мощный инструмент для контроля доступа USB в Linux. Он идеален для домашних пользователей, систем администраторов и небольших организаций, которые хотят снизить риск заражения или утечки данных через физические носители. Комбинируйте USBGuard с резервным копированием, мониторингом и политиками шифрования для всесторонней защиты.


Ключевые выводы

  • USBGuard позволяет создавать политики доступа (allow, block, reject) для USB‑устройств.
  • Сгенерируйте базовую политику сразу после установки, пока доверенные устройства подключены.
  • Используйте постоянные правила для часто используемых устройств и временные для гостевых носителей.
  • USBGuard не защитит от аппаратных атак — комбинируйте с физическими мерами и бэкапами.

Related: How to Mount and Unmount Storage Devices from the Linux Terminal

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Альтернативный менеджер пакетов в Linux
Linux

Альтернативный менеджер пакетов в Linux

Как скачать и настроить DaVinci Resolve в Linux
Видеомонтаж

Как скачать и настроить DaVinci Resolve в Linux

EyeOS — облачная ОС под вашим контролем
Обзоры

EyeOS — облачная ОС под вашим контролем

Скачать данные Cortana на Windows
Конфиденциальность

Скачать данные Cortana на Windows

WannaCrypt: уроки после масштабной атаки
Кибербезопасность

WannaCrypt: уроки после масштабной атаки

Ошибка Valorant: код 46 — как исправить
Техподдержка

Ошибка Valorant: код 46 — как исправить