12.01.10 14:54 Kategorie: Shell

Virenscanner Auswertung für Linux-Server

Übermittlung Ihrer Stimme...
Bewertungen: 5.0 von 5. 1 Stimme(n).
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.

Auch wenn für Linux-Systeme eigentlich keine klassischen Viren bekannt sind, Schadprogramme wie Rootkits gibt es dennoch. Auch auf Linux-Servern sollte daher regelmäßig ein Virenscanner laufen.

Damit das automatisch im Hintergrund passieren kann, haben wir uns ein kleines Skript gebaut, das sich um den Scan, dessen Auswertung und den Versand von Statusemails kümmert.

  1. #!/bin/bash
  2. ##################################################
  3. ##name: clamscan.sh
  4. ##last change: 09.06.2009
  5. #################################################
  6.  
  7. #Variablen definieren
  8. EMAIL=admin@help.de
  9.  
  10. #WICHTIG! Verzeichnisse müssen existieren
  11. EXCLUDE_DIR=/var/spool/clamscan/
  12. if [ ! -d $EXCLUDE_DIR ]; then
  13. echo "Clamscan kann Exlude-Ordner auf $(hostname) nicht finden" |
  14. mail -s 'Exlude-Ordner auf '$(hostname)' nicht gefunden' $EMAIL
  15. exit 1
  16. fi
  17. LOGDIR=/var/log/clamscan/
  18. if [ ! -d $LOGDIR ]; then
  19. echo "Clamscan kann Logflie-Ordner auf $(hostname) nicht finden" |
  20. mail -s 'Logfile-Ordner auf '$(hostname)' nicht gefunden' $EMAIL
  21. exit 1
  22. fi
  23.  
  24. #Array mit zu scannenden Verzeichnissen
  25. allDirs="/bin /var/www"
  26. for DIR in $allDirs; do
  27. DIRNAME=$(echo $DIR | sed 's!/!_!g')
  28. EXCLUDE_DATEI=$EXCLUDE_DIR$DIRNAME.exclude.txt
  29.  
  30. #eventuell Exclude-Datei anlegen
  31. if [ ! -f $EXCLUDE_DATEI ]; then
  32. touch $EXCLUDE_DATEI
  33. fi
  34. LOG=$LOGDIR$DIRNAME.logfile.txt
  35.  
  36. #Eventeull Logfile Anlegen
  37. if [ ! -f $LOG ]; then
  38. touch $LOG
  39. fi
  40.  
  41. #whitelist in Variable speichern
  42. while read LINE; do
  43. EXCLUDE="$EXCLUDE --exclude $LINE"
  44. done < $EXCLUDE_DATEI
  45. #Scan durchführen ohne Whitelist
  46. /usr/bin/nice /usr/bin/clamscan -r -i --quiet --stdout $DIR $EXCLUDE --log=$LOG
  47. sleep 1
  48.  
  49. #Logfile nach Virenfunden durchsuchen
  50. TEMP=$(grep FOUND $LOG)
  51.  
  52. if [ "$TEMP" != "" ]; then
  53. grep FOUND $LOG | sed 's!'$DIR'!!g' | mail -s 'Virus in
  54. '$DIR' auf '$(hostname)' gefunden!' $EMAIL
  55. fi
  56.  
  57. #gefunden Viren in Whitelist aufnehmen - eine E-Mail reicht uns
  58. grep FOUND $LOG | awk -F ": " '{print $1}' | cat >> $EXCLUDE_DATEI
  59. rm $LOG
  60. done
  61.  


Da immer mal wieder auch Fehlalarme von harmlosen Skripten verursacht werden, arbeitet unser Virenscan mit einer Whitelist. Für jeden Alarm wird daher nur eine einzige E-Mail verschickt, genug wenn man einen zuverlässigen Admin hat. (te)


*

CAPTCHA Bild zum Spamschutz
Wenn Sie das Wort nicht lesen können, bitte hier klicken.
*
*

* Bitte ausfüllen

Keine Kommentare
Folgen Sie uns auf:
Werden Sie Fan!
Empfehlen Sie uns: