USB 플래시 드라이브 기록 모니터링

USB 플래시 드라이브 기록 모니터링

어떤 USB 플래시 드라이브(펜 드라이브)가 마운트 및 마운트 해제되는지, 그리고 시기를 모니터링하려면 인터넷 서버에 대한 모니터링 시스템을 설정해야 합니다. (오용을 방지하고 어떤 비인가 기기가 연결되어 있는지 파악하기 위함입니다.)

a) 일련 번호, b) 제조업체, c) 모델, d) 용량 e) 라벨 f) 설치/제거 시간 등과 같은 플래시 드라이브 정보를 모니터링하고 저장하여 기록에 대한 기록을 볼 수 있는 방법이 있습니까?

현재 설치된 USB 장치를 모니터링하는 명령이 많이 있다는 것을 알고 있습니다. 좋다 lsusb, lshw. 하지만 이 정보를 어떻게 저장합니까?

답변1

글쎄요, 제가 아는 한, 이에 대한 기성 소프트웨어는 없습니다. 그러나 펜 드라이브를 USB 포트에 삽입하거나 제거할 때 시작되는 스크립트를 직접 작성할 수 있습니다. 다음 위치에 스크립트를 추가하면 udev에 의해 스크립트가 실행됩니다 /etc/udev/rules/99-local.rules.

ACTION=="add|remove", SUBSYSTEM=="block", KERNEL=="sd*", RUN+="/usr/local/bin/usb-add.sh"

그러면 이 스크립트 내에는 다음과 같은 환경 변수가 있습니다.

ACTION=add (or remove)
DEVLINKS='/dev/disk/by-id/usb-TDK_LoR_TF10_0703293903BE2444-0:0 /dev/disk/by-path/pci-0000:00:16.2-usb-0:1.1:1.0-scsi-0:0:0:0'
DEVNAME=/dev/sdf
DEVPATH=/devices/pci0000:00/0000:00:16.2/usb7/7-1/7-1.1/7-1.1:1.0/host14/target14:0:0/14:0:0:0/block/sdf
DEVTYPE=disk ← this is important to check in script
ID_BUS=usb ← this is important to check in script
ID_FS_TYPE=
ID_INSTANCE=0:0
ID_MODEL=TF10 ← model
ID_MODEL_ENC='TF10\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'
ID_MODEL_ID=070a
ID_PART_TABLE_TYPE=dos
ID_PART_TABLE_UUID=686bc5da
ID_PATH=pci-0000:00:16.2-usb-0:1.1:1.0-scsi-0:0:0:0
ID_PATH_TAG=pci-0000_00_16_2-usb-0_1_1_1_0-scsi-0_0_0_0
ID_REVISION=PMAP
ID_SERIAL=TDK_LoR_TF10_0703293903BE2444-0:0
ID_SERIAL_SHORT=0703293903BE2444 ← serial number
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
ID_USB_INTERFACES=:080650:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=TDK_LoR ← vendor
ID_VENDOR_ENC='TDK\x20LoR\x20'
ID_VENDOR_ID=0718

다음 방법을 사용하여 USB 플래시 드라이브를 확인할 수 있습니다.

fdisk -l ${DEVNAME}

용량과 파티션 레이아웃을 얻으세요. 그리고 그런 짓은 다 하세요. 정보를 파일이나 데이터베이스에 저장할 수 있습니다. 모든 것은 당신에게 달려 있습니다. 원하는 경우 SCSI STOP UNIT을 보내고 시스템에서 드라이브를 제거하여 이 장치에 대한 액세스를 거부할 수도 있습니다.

USB 장치만 체크되어 있는지 확인하는 것도 중요합니다 ${ID_BUS}. ${DEVTYPE}USB 장치의 각 파티션에 대해서도 스크립트가 호출되므로 이를 확인하는 것이 중요합니다 .

DEVLINKS='/dev/disk/by-id/usb-TDK_LoR_TF10_0703293903BE2444-0:0-part1 /dev/disk/by-label/BACKUPS /dev/disk/by-path/pci-0000:00:16.2-usb-0:1.1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/0FAA-E0EB'
DEVNAME=/dev/sdf1
DEVPATH=/devices/pci0000:00/0000:00:16.2/usb7/7-1/7-1.1/7-1.1:1.0/host18/target18:0:0/18:0:0:0/block/sdf/sdf1
DEVTYPE=partition
ID_BUS=usb
ID_FS_LABEL=BACKUPS ← filesystem label
ID_FS_LABEL_ENC=BACKUPS
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=0FAA-E0EB
ID_FS_UUID_ENC=0FAA-E0EB
ID_FS_VERSION=FAT32
ID_INSTANCE=0:0
ID_MODEL=TF10
ID_MODEL_ENC='TF10\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'
ID_MODEL_ID=070a
ID_PART_ENTRY_DISK=8:80
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_SIZE=15104000 ← size ;)
ID_PART_ENTRY_TYPE=0xc
ID_PART_ENTRY_UUID=686bc5da-01
ID_PART_TABLE_TYPE=dos
ID_PART_TABLE_UUID=686bc5da
ID_PATH=pci-0000:00:16.2-usb-0:1.1:1.0-scsi-0:0:0:0
ID_PATH_TAG=pci-0000_00_16_2-usb-0_1_1_1_0-scsi-0_0_0_0
ID_REVISION=PMAP
ID_SERIAL=TDK_LoR_TF10_0703293903BE2444-0:0
ID_SERIAL_SHORT=0703293903BE2444
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
ID_USB_INTERFACES=:080650:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=TDK_LoR
ID_VENDOR_ENC='TDK\x20LoR\x20'
ID_VENDOR_ID=0718

${DEVTYPE}=disk모든 파티션에 대한 정보를 저장할 때 액세스를 제한하는 것이 좋을 수도 있습니다 ${DEVTYPE}=partition.

HTH, 건배

답변2

USB 장치 마운트 및 마운트 해제에 대한 udev 규칙을 수정해야 합니다.

설치 규칙은 명령의 출력을 사용합니다.udevadm info -a -n device_name ; date

유사한 명령을 사용하여 제거 규칙도 제거됩니다.

(지금까지는 정확한 규칙을 작성할 수 없으므로 취할 수 있는 지침만 제공합니다.)

답변3

다음 위치에서 USB 관련 정보를 검색해 볼 수 있습니다."/var/log/시스템 로그". 이 로그 파일은 USB 장치가 연결될 때마다 메시지를 저장합니다. 예를 들어 USB 키를 연결하면 다음과 같습니다.

Sep  3 09:02:00 LIMLD005 kernel: [ 1612.825433] usb 1-1.5: new high-speed USB device number 4 using ehci-pci
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919570] usb 1-1.5: New USB device found, idVendor=13fe, idProduct=5200
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919577] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919581] usb 1-1.5: Product: DataTraveler 111
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919584] usb 1-1.5: Manufacturer: Kingston
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919587] usb 1-1.5: SerialNumber: 485B39D31C4CECC0D0000450
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.919885] usb-storage 1-1.5:1.0: USB Mass Storage device detected
Sep  3 09:02:00 LIMLD005 kernel: [ 1612.920043] scsi10 : usb-storage 1-1.5:1.0
Sep  3 09:02:00 LIMLD005 mtp-probe: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.5"
Sep  3 09:02:00 LIMLD005 mtp-probe: bus: 1, device: 4 was not an MTP device
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.918015] scsi 10:0:0:0: Direct-Access     Kingston DataTraveler 111 PMAP PQ: 0 ANSI: 6
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.918513] sd 10:0:0:0: Attached scsi generic sg6 type 0
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.919043] sd 10:0:0:0: [sdf] 60599040 512-byte logical blocks: (31.0 GB/28.8 GiB)
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.919817] sd 10:0:0:0: [sdf] Write Protect is off
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.919823] sd 10:0:0:0: [sdf] Mode Sense: 45 00 00 00
Sep  3 09:02:01 LIMLD005 kernel: [ 1613.921062] sd 10:0:0:0: [sdf] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Sep  3 09:02:01 LIMLD005 kernel: [ 1614.180902]  sdf: sdf1
Sep  3 09:02:01 LIMLD005 kernel: [ 1614.184007] sd 10:0:0:0: [sdf] Attached SCSI removable disk
Sep  3 09:02:02 LIMLD005 udisksd[2480]: Mounted /dev/sdf1 at /media/foobar/KINGSTON on behalf of uid 1000

당신이 해야 할 일은 원하는 대로 정보를 사용하는 스크립트를 작성하는 것뿐입니다. 다음 명령줄과 마찬가지로 기본 정보를 제공합니다.

grep usb-storage /var/log/syslog

관련 정보