Найти в Дзене
ИТ заметки

Контроль USB накопителей в Astra Linux

В ОС Windows мы контролировали использование USB накопителей средствами ПО Kaspersky Endpoint Security, добавляя серийный номер накопителя для нужного пользователя в настройки политики KES. Перейдя на ОС Astra Linux заметили, что разрешить USB накопитель средствами антивирусного ПО можно по серийному номеру без привязки к имени пользователя. Т.е. получается, что мы добавляем флешку в доверенные и ей могут пользоваться все юзеры. Такой вариант нас не устраивает.

Решено было ограничивать доступ к USB накопителям, средствами ОС Astra Linux. Почитали соответствующую статью на wiki. Получили, что доступ к накопителям получаю, члены группы floppy, причем как к учтенным, так и к не учтенным накопителям. Если у Вас доступ к не зарегистрированным флешка члены группы floppy не имеют, поделитесь информацией в комментариях.

И так необходимо свое решение для контроля USB накопителей. Вот какое решение мы придумали.

  • Вставляем USB накопитель в порт. Запоминаем имя устройства. У меня это "/dev/sdb".
  • Берем серийный номер командой "sudo lsblk --output KNAME,SERIAL /dev/sdb", sdb - это имя устройства из скриншота выше.
-2
  • Для каждого USB накопителя создаем группу. Для того, что бы группы не повторялись в название группы включили серийный номер накопителя. У меня серийный номер накопителя - 03002927052421214806. Выполним команду "sudo groupadd usb_03002927052421214806"
-3
  • Далее добавляем в группу всех пользователей которые будут иметь доступ к накопителю, командой "sudo usermod -a -G usb_03002927052421214806 user1". Как вы уже догадались usb_03002927052421214806 - имя группы, user1 - имя пользователя который будет иметь доступ к накопителю.
-4

Последним шагом создаем правило udev выставляющее права доступа на устройство. Для этого создаем файл "/etc/udev/rules.d/99zz_PDAC_LOCAL_USB.rules" и наполняем его следующим содержимым.

KERNEL=="sd[a-z]|sd[a-z][1-9]", ENV{ID_SERIAL}=="03002927052421214806", SUBSYSTEMS=="usb", ACTION=="add", OWNER="root", GROUP="usb_03002927052421214806", MODE="060", PDPL="0:0:0x0:0x0!", A
UDIT="o:0x0:0x0", GOTO="BLOCK_DEV"
KERNEL=="sd[a-z]|sd[a-z][1-9]", SUBSYSTEMS=="usb", ACTION=="add", OWNER="root", GROUP="root", MODE="
000", PDPL="0:0:0x0:0x0!", AUDIT="o:0x0:0x0", GOTO="BLOCK_DEV"
GOTO="END"
LABEL="BLOCK_DEV"
SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="?*", SYMLINK+="%k_$env{ID_FS_TYPE}", RUN+="/bin/ln -f /d
ev/%k /dev/%k_$env{ID_FS_TYPE}"
LABEL="END"

-5

Данное правило будет перехватывать события добавления USB накопителя и для устройства с идентификатором "03002927052421214806" выставить группу владельца "usb_03002927052421214806" и права доступа "060". Тем самым все входящие в группу пользователи смогут её смонтировать. Для устройств с другими серийными номерами будет выставлены права "000".

  • Напоследок напомню, что новая группа применится к пользователю после того как он повторно зайдет в систему (перелогиниться).