12.01.10 14:54 Alter: 240 Tage Rubrik: Serveradministration

Virenscanner Auswertung für Linux-Server

Submitting your vote...
Bewertungen: 5.0 von 5. 1 Stimmen(n).
Klicken Sie auf die Bewertungszeile um den 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 laufen kann, haben wir uns ein kleines Skript gebaut, das sich um den Scan, dessen Auswertung und den Versand von Statusemails kümmert.


Da immer mal wieder auch Fehlalarme von harmlosen Skripten verursacht werden, arbeitet unser Virenscan mit einer Whitelist. Für jeden Alarm wird nur eine einzige E-Mail verschickt. Der zuverlässige Admin wird sich darum schon kümmern...

 

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



Dateien: clamscan_01.sh
*

*

* Bitte ausfüllen

Kommentar zum Artikel schreiben

Monitoring, 24/7 Support, zeitnahe Einspielung von Sicherheits-Updates

Linux Server Hosting - Inklusive Server Administration - das Sorglospaket für Webmaster

Programmierung von individuellen TYPO3 Extensions / Erweiterungen