Inhaltsverzeichnis

AmaViSd-new Operation

emails aus der Quarantäne releasen:

Wenn AMaViSd emails in die Quarantäne verschiebt, erhält man emails dieser Form:

Betreff: BANNED contents (text/x-msdos-batch,.asc,bacula_after_failure.cmd) in mail FROM LOCAL 

[...]

No viruses were found.

Banned name: text/x-msdos-batch,.asc,bacula_after_failure.cmd
Content type: Banned
Internal reference code for the message is 11606-02/IJvAMUUAzNma

[...]

The message has been quarantined as: I/banned-IJvAMUUAzNma

The message WAS NOT relayed to:
<test@test.de>:
   554 5.7.0 Reject, id=11606-02 - BANNED: text/x-msdos-batch,.asc,bacula_after_failure.cmd


Um diese email freizugeben (zu „releasen“), muss der Pfad nach „quarantined as:“ und ggf. eine Empfaenger-email-Adresse dem Programm amavisd-release mitgegeben werden - an sonsten wird die email an den ursprünglichen Empfänger zugestellt:

amavisd-release I/banned-IJvAMUUAzNma christoph.haas@haas-online.org


Das amavisd-release utility akzeptiert auch mail_ids von STDIN. Dies ist insbesondere dann praktisch, wenn mehrere emails aus der Quarantäne released werden sollen:

$ amavisd-release -
I/banned-IJvAMUUAzNma
S/banned-SsvUgj4PvOTB



Quarantäne clean-up cronjob

Um die Quarantäne regelmässig aufzuräumen, kann eine Ergänzung des AMaViSd-Cronjobs /etc/cron.d/amavisd-new um einen weiteren Cronjob /etc/cron.d/amavisd-new-cleanup-quarantaine helfen:

# Cleanup AMaViSd-quarantine for files older than 31 days:
#10 1 	* * * 	root 	find /var/lib/amavis/virusmails/ -mtime +31 -exec rm {} \;
#15 1 	* * * 	root 	find /var/lib/amavis/tmp/ -mtime +31 -exec rm -r {} \;
# oder:
# 15 1 	* * * 	root 	find /var/lib/amavis/ -iname "amavis-*" -mtime +31 -exec rm -r {} \;
# oder:
10 1 	* * * 	root 	find /var/lib/amavis/virusmails/ -mtime +31 -print0 | xargs -0 --no-run-if-empty /bin/rm -f
15 1 	* * * 	root 	find /var/lib/amavis/ -iname "amavis-*" -mtime +31 -print0 | xargs -0 --no-run-if-empty /bin/rm -f


-print0 terminiert die Ausgabe durch den ASCII-Wert Null
xargs -0 trennt die Ausgaben durch den ASCII-Wert Null
Vorteil: man kann auch Datei- und Verzeichnisnamen verwenden, die durch Leerzeichen (Space) getrennt sind.

Bei Debian kann man temporäre amavis-* Verzeichnisse einfach durch den Neustart von amavis mit 'service amavis restart' oder '/etc/init.d/amavis restart' löschen.
Das init-script beherbergt Code um diese temporären Verzeichnisse aufzuräumen:

cleanup() {

      [ -d /var/lib/amavis ] && 
        find /var/lib/amavis -maxdepth 1 -name 'amavis-*' -type d \
              -exec rm -rf "{}" \; >/dev/null 2>&1 || true
      [ -d /var/lib/amavis/tmp ] && 
        find /var/lib/amavis/tmp -maxdepth 1 -name 'amavis-*' -type d \
              -exec rm -rf "{}" \; >/dev/null 2>&1 || true
      :

}



zurück