Monitorar o histórico de drives flash USB

4

Eu tenho que configurar um sistema de monitoramento para o nosso servidor de internet, para monitorar quais drives flash USB (Pen Drives) são montados e desmontados e quando (isso é para evitar o uso indevido e capturar qual dispositivo não autorizado está / foi conectado). )

Existe algum método para monitorar informações da unidade flash, tais como: a) Número de série, b) Marca, c) Modelo, d) Capacidade e) Etiqueta f) Tempo de montagem / desmontagem, etc, e armazená-lo, para ver história sobre isso?

Eu sei que há vários comandos para monitorar dispositivos USB atualmente montados. Como lsusb , lshw . Mas como guardo essa informação?

    
por Tejas 26.08.2014 / 13:54

3 respostas

8

Bem, não há software pronto para isso que eu conheça. Mas você pode escrever seu próprio script, que será iniciado quando o pendrive for inserido | removido da porta usb. Este script seria executado pelo udev se você incluir isso em /etc/udev/rules/99-local.rules :

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

e, nesse script, você terá as seguintes variáveis de ambiente:

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

Você pode examinar o pendrive com:

fdisk -l ${DEVNAME}

para obter layout de capacidade e partição. E faça várias coisas assim. Você pode armazenar informações no arquivo ou no banco de dados. Tudo depende de você. Você pode até mesmo negar o acesso a este dispositivo, se desejar, enviando SCSI STOP UNIT e removendo a unidade do sistema.

Também é importante verificar o ${ID_BUS} para examinar apenas dispositivos usb. É importante verificar o ${DEVTYPE} porque o script também será chamado para cada partição no dispositivo 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

Talvez seja uma boa ideia limitar o acesso quando ${DEVTYPE}=disk , mas armazenar informações sobre todas as partições - ${DEVTYPE}=partition .

HTH, elogios

    
por 03.09.2014 / 09:47
0

Você pode tentar pesquisar por informações relacionadas ao usb em "/ var / log / syslog" . Este arquivo de log armazena uma informação toda vez que você conecta um dispositivo usb. exemplo quando eu conecto uma chave 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

Tudo o que você precisa fazer é escrever um script para usar essas informações a seu gosto. Como a seguinte linha de comando, que lhe dará informações básicas:

grep usb-storage /var/log/syslog

espere esta ajuda.

    
por 03.09.2014 / 09:10
0

Você precisa modificar as regras do udev para a montagem e desmontagem de dispositivos USB.

A regra de montagem levará a saída do comando como udevadm info -a -n device_name ; date

e a regra de desmontagem usará o comando similar para desmontar também.

(eu não sou capaz de escrever as regras exatas a partir de agora, portanto, apenas dando a direção onde você pode fazer um movimento)

    
por 03.09.2014 / 09:47