- Ограничьте использование USB-устройств в Linux
- Ограничить USB с помощью modprobe (у меня не сработало)
- Отключить USB, удалив драйвер ядра (у меня не сработало)
- Ограничьте доступ к USB-устройствам, изменив / media / permissions (ЕСЛИ это сработало для меня)
- Конец!
- Записки эникейщика
- Как получить серийный номер usb накопителя?
- Настройки usb устройств
- DVI
- Станислав
- Fd1501h
- Станислав
- ulv
- Ограничение доступа к устройствам Bluetooth
- Ограничение доступа к устройствам Wi-Fi
- Ограничение доступа к аудио устройствам
- Блокировка устройств на шинах, отличных от USB
Ограничьте использование USB-устройств в Linux
Тем, кто работает с пользователями в учреждениях, требующих определенных ограничений, либо для обеспечения уровня безопасности, либо по какой-то идее или приказу «сверху» (как мы здесь говорим), много раз необходимо ввести некоторые ограничения доступа на компьютерах, здесь я будет говорить конкретно об ограничении или контроле доступа к USB-устройствам хранения.
Ограничить USB с помощью modprobe (у меня не сработало)
Это не совсем новая практика, она заключается в добавлении модуля usb_storage в черный список загружаемых модулей ядра, это будет:
echo usb_storage> $ HOME / черный список sudo mv $ HOME / черный список /etc/modprobe.d/
Потом перезагружаем компьютер и все.
Уточните, что, хотя все разделяют эту альтернативу как наиболее эффективное решение, в моей Arch у меня это не сработало.
Отключить USB, удалив драйвер ядра (у меня не сработало)
Другой вариант — удалить драйвер USB из ядра, для этого мы выполняем следующую команду:
sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb* /root/
Это переместит файл, содержащий драйверы USB, используемые ядром, в другую папку (/ root /).
Если вы хотите отменить это изменение, достаточно:
sudo mv /root/usb* /lib/modules/$(uname -r)/kernel/drivers/usb/storage/
Ограничьте доступ к USB-устройствам, изменив / media / permissions (ЕСЛИ это сработало для меня)
Пока что это метод, который, безусловно, работает для меня. Как вы должны знать, USB-устройства монтируются в / media / o . если ваш дистрибутив использует systemd, они монтируются в / run / media /
Что мы сделаем, так это изменим разрешения на / media / (или / run / media /), чтобы ТОЛЬКО пользователь root мог получить доступ к его содержимому, для этого будет достаточно:
или . если вы используете Arch или любой другой дистрибутив с systemd:
Конечно, они должны учитывать, что только пользователь root имеет разрешение на монтирование USB-устройств, потому что тогда пользователь может монтировать USB в другой папке и обойти наше ограничение.
Как только это будет сделано, подключенные USB-устройства будут подключены, но пользователю не будет отображаться никаких уведомлений, и они не смогут получить прямой доступ к папке или чему-либо еще.
Конец!
В сети есть и другие способы, например, с помощью Grub . но, угадайте, у меня это тоже не сработало 🙂
Я публикую так много вариантов (хотя не все они у меня работали), потому что один мой знакомый купил цифровую камеру в интернет-магазин технологических товаров в Чили, вспомнил этот сценарий шпион-usb.sh что некоторое время назад я объяснил здесьЯ помню, он служит для слежки за USB-устройствами и кражи информации с них.) и спросил меня, есть ли способ предотвратить кражу информации с его новой камеры или, по крайней мере, какой-либо вариант заблокировать USB-устройства на его домашнем компьютере.
В любом случае, хотя это не защита вашей камеры от всех компьютеров, к которым вы можете ее подключить, по крайней мере, она сможет защитить домашний компьютер от удаления конфиденциальной информации через USB-устройства.
Я надеюсь, что это было (как всегда) полезно для вас, если кто-то знает какой-либо другой метод запрета доступа к USB в Linux и, конечно же, он работает без проблем, дайте нам знать.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » Учебники / Руководства / Советы » Ограничьте использование USB-устройств в Linux
Записки эникейщика
Идея такая: создать в udev правило, которое будет блокировать все флешки, серийник которых не внесён в правило.
1. Идем в /etc/udev/rules.d
2. Создаем файл 99-rem-unauth-usb.rules (имя файла можете и сами придумать, но соблюдайте правила udev)
3. Пишем в файл:
ACTION!="add", GOTO="dont_remove_usb" ENV!="usb", GOTO="dont_remove_usb" ENV!="disk", GOTO="dont_remove_usb" ENV=="008D7DC64", GOTO="dont_remove_usb" ENV=="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
Как получить серийный номер usb накопителя?
Для этого используется команда udevadm info с параметрами -q (запрос какой информации выводить) и -n (имя устройства). В результате команда должна получить вид:
udevadm info -q all -n /dev/sdb
-q all выведет всю информацию об устройстве. В качестве альтернативы вместо all можно использовать property.
-n /dev/sdb задает имя устройства.
Будьте с этим внимательны! У вас вместо sdb может быть sdd, sdc или что-то еще! Проверяйте, какому именно устройству присвоено sd*. Посмотреть это можно командой fdisk -l
Далее в выводе команды вас интересует значение параметра ID_SERIAL_SHORT. Это и есть серийник флешки. Его и надо подставлять в правило. Само собой, разрешенных флешек может быть несколько, просто копируйте строку, где проверяется серийник, и подставляйте в неё нужное значение.
Да, в выводе команды udevadm info присутствует параметр ID_SERIAL, но у меня по нему флеш накопители система фильтровать отказалась.
Настройки usb устройств
Как запретить все usb устройства (сьемные диски, мышь, клавиатура, принтера, устройства чтения смарт-карт, модемы, Wi-Fi, камеры, bluetooth. ) и прописать только нужные (которые будут работать на этом компьютере)?
Должно получиться по типу все запрещено кроме того что разрешено.
И как эту созданную политику можно будет распространять другим компьютерам, только потом прописывая нужные, подключаемые к ним устройства?
DVI
New member
На SE посмотрите в оснастке «Управление политикой безопасности» там есть пункт «Доступ к устройствам», а так по хорошему покрутите службу Astra Linux Directory.
Станислав
New member
На SE посмотрите в оснастке «Управление политикой безопасности» там есть пункт «Доступ к устройствам», а так по хорошему покрутите службу Astra Linux Directory.
Я там лазил, можно только запретить устройство. А мне нужно по системе запрещено все кроме того что разрешено.
Fd1501h
Moderator
Я там лазил, можно только запретить устройство. А мне нужно по системе запрещено все кроме того что разрешено.
Станислав
New member
И там лазил, вывел из группы floppy а вот fuse такого не нашел, все равно все подключается и работает. Может конечно из за fuse, но я её там не увидел в группах, нету её. Так что нужна какая та более подробная инструкция.
ulv
Moderator
В ОС СН входит средство по разграничению доступа к устройствам.
Оно в совей работе использует права на символьные и блочные устройства, создаваемые через систему udev.
Средство разрабатывалось для контроля за отчуждаемыми носителями.
Фактически, если выкинуть пользователя из группы floopy, то он не сможет смонтировать флешку (из cdrom — cd-disk).
Смонтировать сможет он только то устройство, что было добавлено через «управление устройствами» с выставлением этого пользователя в качестве владельца или группы пользователя.
Когда устройство добавляется через «окно добавления устройства», можно выбрать к какому из параметров прикрепится (по-умолчанию id_serial).
Среди этих параметров есть и dev_path который определяет конкретный порт, в который воткнуто устройство.
Идею создания «белого списка устройств» возьмем на проработку.
Ограничение доступа к устройствам Bluetooth
Предполагается, что для работы с устройствами bluetooth в ОС установлен пакет bluez, входящий в зависимости пакета blueman (см. Подключение устройств Bluetooth к ОС Astra Linux). Для ограничения доступа к устройствам bluetooth отредактировать файл /etc/dbus-1/system.d/bluetooth.conf, удалив строки:
После выполнения перезагрузки доступ к устройствам bluetooth будут иметь только пользователи, входящие в системную группу bluetooth.
Ограничение доступа к устройствам Wi-Fi
Блокировка осуществляется средствами графической утилиты PolicyKit-1 (меню «Пуск» — «Панель управления» — «Безопасность» — «Санкции PolicyKyt-1»).
В разделах дерева правил выбрать ветку org.freedesktop → NetworkManager.
- org.freedesktop.NetworkManager.settings.reload
- org.freedesktop.NetworkManager.settings.network-control
- org.freedesktop.NetworkManager.settings.enable-disable-network
- org.freedesktop.NetworkManager.wifi.enable-disable-wifi
добавив в каждой группу правила авторизации:
Ограничение доступа к аудио устройствам
Для блокировки аудио устройств отредактировать файл /lib/udev/rules.d/70-uaccess.rules, закомментировав следующие строки:
#Sound devices #SUBSYSTEM=="sound", TAG+="uaccess" \ #OPTIONS+="static_node=snd/timer", OPTIONS+="static_node=snd/seq"
После сохранения изменений и перезагрузки доступ к аудио-устройствам будет только у пользователей, состоящих в группе audio.
Блокировка устройств на шинах, отличных от USB
Блокировка реализуется путем добавления соответствующих модулей ядра в список запрещенных для загрузки модулей (blacklist). Для создания такого списка в каталоге /etc/modprobe.d/ создать отдельный .conf файл или отредактировать существующий файл blacklist.conf, добавив строку blacklist с указанием имени блокируемого модуля, например:
# Do not load the 'ath9k' module on boot. blacklist ath9k
Блокировка модуля будет применена после перезагрузки.
Команда blacklist запрещает автоматическую загрузку указанного в ней модуля ядра, но этот модуль всё равно может загрузиться если от него зависит другой не запрещенный модуль или если он загружен вручную. Для полной блокировки модуля и всех зависящих от него модулей, используется команда install, подменяющую реальных модуль фиктивной командой. При этом вместо стандартной загрузки модуля в ядро выполняется указанная фиктивная команда. В качестве фиктивной обычно используется команда /bin/false, не выполняющая никаких действий и всегда заканчивающаяся с кодом завершения (completion code) равным единице, что по принятым соглашениям обозначает «ошибка»):