hosting image
SERVERBIZ Hosting Blog

Postfix Mail Queue Überwachung mit E-Mail Warnung

Überwachung und Monitoring der Postfix Mailqueue mit E-Mail Benachrichtigung.

Durch veraltete Content Management Systeme (CMS) oder ähnliche Sicherheitsprobleme kann der eigene Server schnell zur Spam-Schleuder werden, wenn der Mailserver (z.B. Postfix) durch entsprechende Mailscripte oder auch den Diebstahl von Zugangsdaten von Dritten missbraucht wird. Gerade beim Hosting fremder Websites auf dem eigenen Server geschieht es schnell, dass ein schädliches Spam-Script auf selbigem landet. Daher ist es sinnvoll, die Mail Queue von Postfix immer im Auge zu behalten, um bei ungewöhnlich vielen zu versendenden E-Mails sofort reagieren zu können.

Das folgende Script bietet daher eine E-Mail Benachrichtigung, wenn sich über 100 E-Mails in der Queue befinden, was auf den missbräuchlichen Versandt von Spam hindeuten würde.

Wir legen das Script in diesem Fall im Ordner /root ab. (D.h. wir gehen davon aus, dass Sie als root angemeldet sind.)

[sourcecode language=“text“]cd
nano mailqueue.sh[/sourcecode]

Und fügen folgenden Inhalt ein:

[sourcecode language=“text“]#!/bin/bash

## Anzahl der Mails in der Queue auslesen
/usr/bin/mailq | /usr/bin/tail -n1 | /usr/bin/gawk ‚{print $5}‘ > /etc/postfix/mailq_count

## Ueberpruefen ob mehr als 100 Mails in der Queue sind
mailq_count="/bin/cat /etc/postfix/mailq_count"

if [ `$mailq_count` -gt 100 ]; then echo "Mail-Anzahl in der Queue auf server1.BEISPIEL.de betraegt" `$mailq_count`| mail -s "MAIL QUEUE WARNUNG!" webmaster@IHREADRESSE.de; fi [/sourcecode]

Der Hostname sowie die E-Mail Adresse für die Warnungen sollte natürlich noch entsprechend Ihrer Bedürfnisse angepasst werden.

Dem Script geben wir CHMOD 755

[sourcecode language=“text“]chmod 755 mailqueue.sh[/sourcecode]

Nun erstellen wir noch einen Crontab, der das Script, alle 30 Min. ausführt.

[sourcecode language=“text“]crontab -e[/sourcecode]

[sourcecode language=“text“]## Mailqueue Check
*/30 * * * * /bin/bash /root/mailqueue.sh[/sourcecode]

Nun ist unser Überwachungs-Script aktiv und wir können sofort reagieren, wenn wir eine Warnung erhalten. Somit sinkt das Risiko, dass die Server-IP wegen Spam-Versandt blacklisted wird.

3 Comments

  • Danke für deine Anleitung,
    genau sowas habe ich gesucht.

    Leider funktionierte das bei mir unter debian nicht sofort.
    Lösung:
    um folgende Fehlermeldung
    /root/mailqueue.sh: line 9: [: -gt: unary operator expected
    zu umgehen, sollte die if-Abfrage in Zeile 9 in doppelte Klammern gesetzt werden.

    if [[ `$mailq_count` -gt 100 ]]; then ...............

    Gruss

    michi

  • Man kann auf die Datei „/etc/postfix/mailq_count“ verzichten.
    Lösung:
    #Der Wert wird in der Variable „mailq_count“ gespeichert
    mailq_count=$(/usr/bin/mailq | /usr/bin/tail -n1 | /usr/bin/awk ‚{print $5}‘)

    Grüße
    Michail

  • #!/bin/bash
    mailq_count=`/usr/bin/mailq | /usr/bin/tail -n1 | /usr/bin/gawk ‚{print $5}’`
    mailq_count=`expr $mailq_count + 0`
    if [ $mailq_count -gt 99 ]; then
    echo „Subject: WARNUNG SERVER: Anzahl Mails in Queue ist $mailq_count“ | /usr/sbin/sendmail root@server.de
    fi

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.