Làm cách nào để ngăn chặn thiết bị HID trên một số cổng USB nhất định?


7

Vì lý do bảo mật, tôi muốn ngăn chặn các thiết bị đầu vào không thể được sử dụng trên một cổng USB nhất định. Chức năng không đầu vào (ví dụ: bộ nhớ lớn hoặc ttyUSB) phải có sẵn trên cổng này. Các thiết bị đầu vào phải vẫn hoạt động trên các cổng USB khác.

"không thể được sử dụng" có nghĩa là ví dụ: không có /dev/input/eventXthiết bị tương ứng nào được tạo và các khung chung (X11, bảng điều khiển linux) không chấp nhận đầu vào từ thiết bị.

Tôi có thể xác định cổng USB theo quy tắc udev như

DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7.1/*"

nhưng tôi không chắc làm thế nào để vô hiệu hóa nó.

Các phiên bản udev cổ đại được hỗ trợ OPTIONS+="ignore_device"nhưng tùy chọn này không còn nữa.

Tôi có thể làm cái này như thế nào?

Câu trả lời:


3

Bạn cần viết quy tắc cho từng loại thiết bị đầu vào có thể, nghĩa là:

  • ID_INPUT_KEYBOARD
  • ID_INPUT_KEY
  • ID_INPUT_MOUSE
  • ID_INPUT_TOUCHPAD
  • ID_INPUT_TABLET
  • ID_INPUT_JOYSTICK

Trong quy tắc, kiểm tra biến môi trường có tên đó là không trống, ví dụ: khớp với biến toàn cục ?*chỉ khớp với nếu có ít nhất một ký tự. Ví dụ:

ENV{ID_INPUT_KEYBOARD}=="?*"

Trong mỗi quy tắc, khi nó khớp, đặt authorizedthuộc tính của thiết bị thành 0, ví dụ:

ATTR{authorized}="0"

Tốt nhất là thay thế =bằng :=để nó không thể bị ghi đè bởi quy tắc sau này. Điều này đưa ra một quy tắc điển hình của:

ACTION=="add", DEVPATH=="...", ENV{ID_INPUT_KEYBOARD}=="?*", ATTR{authorized}:="0"

Xem bài trình bày này của Adrian Crenshaw.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.