¿Cómo escanear automáticamente cualquier dispositivo de almacenamiento USB conectado con clamav?


13

Me gustaría hacer un análisis automático de virus en cualquier dispositivo USB conectado usando ClamAV. Estoy usando Ubuntu 12.04.

Lo más cercano que encontré fue:

El primero no me funciona y el segundo parece estar dirigido a un dispositivo conocido.

¿Hay algún tutorial que me haya perdido? ¿O puedo obtener ayuda con las udevreglas que se aplican a cualquier dispositivo de almacenamiento USB agregado? Actualmente nada parece hacer nada.


Puede escribir una regla de udev para esto.
Barafu Albino

Echa un vistazo a este: superuser.com/questions/305723/… donde RUN + = (ubicación del archivo) es cómo se lee, creo.
No Time

Respuestas:


5

Este es un script automatizado. Solo ejecútalo como root. Puede cambiar el comando ejecutado editando /usr/bin/doOnUSBinsert.

#!/bin/bash
#doOnUSBinsert_0.2.sh
#Author : Totti
# Make it executable by running 'sudo chmod  x doOnUSBinsert_0.2.sh'


if ! [ -f /etc/udev/rules.d/80-doOnUSBinsert.rules ]
then        # rule not added
   cp "$0" /usr/bin/doOnUSBinsert
   chmod u x /usr/bin/doOnUSBinsert

#   echo 'SUBSYSTEM=="usb", ACTION=="add", RUN ="/path/to/script.sh"' | sudo tee     /etc/udev/rules.d/80-clamscan.rules
   echo 'SUBSYSTEM=="usb", ACTION=="add", RUN ="/usr/bin/doOnUSBinsert & "' | tee     /etc/udev/rules.d/80-doOnUSBinsert.rules
   if  [ $? -eq 0 ]
   then
     echo 'Rule Successfully added. See file "/usr/bin/doOnUSBinsert" if you wish to edit the command'
     exit 0
    else
     echo 'ERROR while adding rule'
     exit 1
   fi
fi



lfile="/tmp/doOnUSBinsert.log"     # udev
lfile2="/tmp/clamscanFromUdev.log"   # clamscan
lfile3="/tmp/doOnUSBinsert_mount.log"   # mount


main ()
{
sleep 12  # let the partitions to mount

   #cat /proc/$$/environ | tr '�' 'n' >> /tmp/udevEnvirn.txt
echo "found $ID_SERIAL"   >> "$lfile"
  cat /etc/mtab | grep "^$part_c"   >> "$lfile.3"

if [ "$ID_SERIAL"x = 'x' ]
then
 echo "Exiting on empty ID_SERIAL"   >> "$lfile"
 exit 1
fi

#Eg: ID_SERIAL --> /dev/disk/by-id/usb-sandisk....42343254343543
#i=0
echo 'searching partitions'   >> "$lfile"

for partitionPath in  $( find /dev/disk/by-id/ -name "*$ID_SERIAL*part*" )
do
  echo "current partition = $partitionPath"   >> "$lfile"
 # part[i  ]="$( readlink -f "$partition" )"        # Eg Output: /dev/sdb1     , /dev/sdb2
  part_c="$( readlink -f $partitionPath )"   
  mpoint="$( cat /etc/mtab | grep "^$part_c"  | awk '{print $2}' )"

  echo "partitionPath= $partitionPath, part = $part_c, mountpoint=  $mpoint"  >>     "$lfile"

  echo "Scaning -->  $mpoint"  >> "$lfile.2"
  ############################################
  clamscan -r --bell "$mpoint"/*  >> "$lfile.2"
  #############################################
done
}


main &
echo ______________________________________  >> "$lfile"
exit 0

¿Por qué estás repitiendo tu respuesta y por qué estás pidiendo que alguien edite la publicación?
Lynob

@Fischer ¿Cómo funciona?
totti

bueno, lo ejecuté y da, SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandasí que funciona, pero no puedo encontrar el archivo de registro en / tmp
Lynob

Código actualizado. /tmp/doOnUSBinsert.log para udev. /tmp/clamscanFromUdev.log para clamscan. Ejecutar rm /etc/udev/rules.d/80-doOnUSBinsert.rulesantes de ejecutar el script actualizado.
totti

0

En System> Preferences> Removable Drives and Mediahay una sección para ejecutar automáticamente un programa cuando se enchufa USB.

Aquí agregue el siguiente comando:

clamscan -r -z /media

clamscan -r -z /mediano escanea automáticamente, tengo que enchufar el usb y ejecutarlo desde la terminal ... sobre el sistema, ¿qué sistema? no hay una sección llamada systemen mi xubuntu
Lynob

En el guión, escriba ibus. O en tipo terminal alacarte. O está debajo del botón de apagado.

Estoy en xubuntu, sin unidad ni guión. Escritorio Xfce
Lynob

No existe tal opción en Ubuntu 15.04.
TRiG
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.