Вопросы:Ограничение на подключение USB носителей: различия между версиями

Материал из Юпитер-8
Новая страница: «В связи с требованиями информационной безопасности, иногда возникает вопрос, связанный с ограничением подключения внешних носителей по USB порту.<br> <u>Методика:</u> создать в udev правило, которое будет блокировать все флешки, серийник которых не внесён в п...»
 
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
=Ограничение подключения USB-носителей=
В связи с требованиями информационной безопасности, иногда возникает вопрос, связанный с ограничением подключения внешних носителей по USB порту.<br>
В связи с требованиями информационной безопасности, иногда возникает вопрос, связанный с ограничением подключения внешних носителей по USB порту.<br>
<u>Методика:</u> создать в udev правило, которое будет блокировать все флешки, серийник которых не внесён в правило.
<u>Методика:</u> создать в udev правило, которое будет блокировать все флешки, серийник которых не внесён в правило.<br>
1. Запустить терминал. Перейти в каталог /etc/udev/rules.d: <code>cd /etc/udev/rules.d</code><br>
1. Запустить терминал. Перейти в каталог /etc/udev/rules.d: <code>cd /etc/udev/rules.d</code><br>
2. Запустить любой доступный редактор с правами root, например, <code>sudo nano</code>
2. Запустить любой доступный редактор с правами root, например, <code>sudo nano 99-access-usb.rule</code><br>Имя файла можете и сами придумать, но главное соблюдайте правила udev.<br>
3. Внести в файл следующие записи:
3. Внести в файл следующие записи:
  ACTION!="add", GOTO="dont_remove_usb"
  ACTION!="add", GOTO="dont_remove_usb"
Строка 12: Строка 13:


<u>Пояснение:</u><br>
<u>Пояснение:</u><br>
1. Если действие не '''add''', то выходим (выходим путем отсылки интерпретатора командой '''GOTO''' к метке, расположенной в самом конце файла).
* Если действие не '''add''', то выходим (выходим путем отсылки интерпретатора командой '''GOTO''' к метке, расположенной в самом конце файла).<br>
2. Если подключается устройство не usb, то выходим.
* Если подключается устройство не usb, то выходим.<br>
3. Если подключенное usb устройство не типа disk, то выходим. Это важный нюанс, т.к. без этой опции отключается вся usb переферия - клавиатуры, мышки и т.д. Во всяком случае, на тестовой реальной машине было так. А вот в VirtualBox этот эффект не проявлялся.
* Если подключенное '''''usb''''' устройство не типа ''disk'', то выходим. Это важный нюанс, т.к. без этой опции отключается вся '''''usb''''' переферия - клавиатуры, мышки и т.д. На тестовом реальном компьютере так и произошло. При использовании VirtualBox этот эффект не проявлялся.<br>
4. Собственно проверка на серийник. Как его узнать, напишу ниже. Если параметр ID_SERIAL_SHORT у usb устройства равен указанному, то выходим - эту флешку вставлять в машину можно
* Проверка на серийный номер. Если параметр ID_SERIAL_SHORT у '''''usb''''' устройства равен указанному, то выходим - эту флешку вставлять в машину можно.<br>
5. Что же делать, если правило всё еще выполняется? Учитывая все проверки выше, это означает, что к машине подключили usb накопитель, серийник которого не прошел проверку. А это значит, что его нужно отключить. Делается это путем записывания 1 в файл sys/путь к usb устройству/device/delete. После этого флешка отключается. На тестах это выглядело как отключение питания от флешки - на ней гас светодиодный индикатор работы.  
* Если правило всё еще выполняется. Учитывая все проверки выше, это означает, что к машине подключили '''''usb''''' накопитель, серийный номер которого не прошел проверку. Это означает, что его нужно отключить. Делается это путем записывания "1" в файл sys/путь к '''''usb''''' устройству/device/delete. После этого флешка отключается. На тестах это выглядело как отключение питания от флешки - на ней гаснет светодиодный индикатор работы.<br>
6. Отметка, куда будет перемещен интерпретатор, если ему передать это командой GOTO  
* Отметка, куда будет перемещен интерпретатор, если ему передать это командой '''GOTO'''.<br>
 
4. Сохранить изменения в файле. Если используются редактора nano или mcedit. то надо нажать <F2> и выйти из редактора.<br>
 
<br clear="both" />
2. Любым доступным редактором создать файл 99-rem-unauth-usb.rules (имя файла можете и сами придумать, но соблюдайте правила udev)
Правило должно начать работать сразу после добавления. Для надежности можете выполнить команды <code>sudo udevadm control --reload-rules</code> и <code>udevadm trigger</code> или перезапустить компьютер.<br>
3. Пишем в файл:
=Получение серийного номера USB-носителя=
Для получение серийного номера USB-носителя используется команда udevadm info с параметрами -q (запрос какой информации выводить) и -n (имя устройства). Необходимо выполнить следующие действия(в терминале):<br>
1. В начале необходимо узнать как подключаемый носитель видит ОС. Для этих целей можно использовать утилиу '''''lsblk''''', или '''''blkid''''', или '''fdisk''' с параметром '''-l'''.<br>
2. Далее выполняем запрос:<br>
:<code>udevadm info -q all -n /dev/sdb</code>, где '''/dev/sdb''' - устройство, как его видит ОС.<br>
<u>Примечание:</u> '''Будьте внимательны! Вместо sdb может быть sdd, sdc и т.п.! Проверяйте, какому именно устройству присвоено sd*.'''<br>
<br clear="both" />
3. После получения отклика, обратите внимание на значение параметра ID_SERIAL_SHORT. Это и есть серийный номер носителя. Его и надо подставлять в правило. Так как, разрешенных носителей может быть несколько, то в этом случае скопируйте строку правила, в которой проверяется серийный номер, и подставте в неё нужное значение. В примере эта строка выглядит следующим образом:
ENV{ID_SERIAL_SHORT}=="008D7DC64", GOTO="dont_remove_usb"
<br clear="both" />
[[#top|В начало статьи]]

Текущая версия от 09:43, 31 марта 2023

Ограничение подключения USB-носителей

В связи с требованиями информационной безопасности, иногда возникает вопрос, связанный с ограничением подключения внешних носителей по USB порту.
Методика: создать в udev правило, которое будет блокировать все флешки, серийник которых не внесён в правило.
1. Запустить терминал. Перейти в каталог /etc/udev/rules.d: cd /etc/udev/rules.d
2. Запустить любой доступный редактор с правами root, например, sudo nano 99-access-usb.rule
Имя файла можете и сами придумать, но главное соблюдайте правила udev.
3. Внести в файл следующие записи:

ACTION!="add", GOTO="dont_remove_usb"
ENV{ID_BUS}!="usb", GOTO="dont_remove_usb"
ENV{ID_TYPE}!="disk", GOTO="dont_remove_usb"
ENV{ID_SERIAL_SHORT}=="008D7DC64", GOTO="dont_remove_usb"
ENV{ID_BUS}=="usb", RUN+="/bin/sh -c 'echo 1 > /sys$DEVPATH/device/delete'"
LABEL="dont_remove_usb"

Пояснение:

  • Если действие не add, то выходим (выходим путем отсылки интерпретатора командой GOTO к метке, расположенной в самом конце файла).
  • Если подключается устройство не usb, то выходим.
  • Если подключенное usb устройство не типа disk, то выходим. Это важный нюанс, т.к. без этой опции отключается вся usb переферия - клавиатуры, мышки и т.д. На тестовом реальном компьютере так и произошло. При использовании VirtualBox этот эффект не проявлялся.
  • Проверка на серийный номер. Если параметр ID_SERIAL_SHORT у usb устройства равен указанному, то выходим - эту флешку вставлять в машину можно.
  • Если правило всё еще выполняется. Учитывая все проверки выше, это означает, что к машине подключили usb накопитель, серийный номер которого не прошел проверку. Это означает, что его нужно отключить. Делается это путем записывания "1" в файл sys/путь к usb устройству/device/delete. После этого флешка отключается. На тестах это выглядело как отключение питания от флешки - на ней гаснет светодиодный индикатор работы.
  • Отметка, куда будет перемещен интерпретатор, если ему передать это командой GOTO.

4. Сохранить изменения в файле. Если используются редактора nano или mcedit. то надо нажать <F2> и выйти из редактора.

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

Получение серийного номера USB-носителя

Для получение серийного номера USB-носителя используется команда udevadm info с параметрами -q (запрос какой информации выводить) и -n (имя устройства). Необходимо выполнить следующие действия(в терминале):
1. В начале необходимо узнать как подключаемый носитель видит ОС. Для этих целей можно использовать утилиу lsblk, или blkid, или fdisk с параметром -l.
2. Далее выполняем запрос:

udevadm info -q all -n /dev/sdb, где /dev/sdb - устройство, как его видит ОС.

Примечание: Будьте внимательны! Вместо sdb может быть sdd, sdc и т.п.! Проверяйте, какому именно устройству присвоено sd*.

3. После получения отклика, обратите внимание на значение параметра ID_SERIAL_SHORT. Это и есть серийный номер носителя. Его и надо подставлять в правило. Так как, разрешенных носителей может быть несколько, то в этом случае скопируйте строку правила, в которой проверяется серийный номер, и подставте в неё нужное значение. В примере эта строка выглядит следующим образом:

ENV{ID_SERIAL_SHORT}=="008D7DC64", GOTO="dont_remove_usb"


В начало статьи