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
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