HowTo: Qmail Queue prüfen und eMails aus der Queue entfernen
Problem: Nach einem Angriff auf dem Mailserver Qmail haben sich Mails in der Mail-Queue angesammelt. Diese Emails sollen nun gelöscht werden. Leider gibt es von Qmail selbst keine Funktion um die Mails schnell und vor allem ohne Dirty Tricks vom Server, bzw. aus der Queue zu löschen.
Anleitung: Mails sicher aus der Qmail Queue entfernen
Hierfür ist es notwendig ein zusätzliches Programm auf dem Server zu installieren, auf dem sich auch der Qmail-Mailserver befindet.
Doch bevor wir starten hier ein kleiner Linux Befehl mit dem ihr testen könnt, wie viele Mails sich derzeit in der Mail Queue befinden:
/var/qmail/bin/qmail-qstat
Die Ausgabe sollte wie folgt aussehen:
messages in queue: 512
messages in queue but not yet preprocessed: 5
Dies bedeutet, dass der Mailserver noch 512 in der Queue hat, welche nicht versendet werden konnten. Dies kann unterschiedliche Gründe haben. z.B. Empfänger existieren nicht oder ähnliches!
5 Emails wurden noch nicht vorbereitet für das Versenden!!
Qmail Log ausgeben: tail –f /var/log/mail.log
Plesk maillog ausgeben: tail -f /opt/psa/var/log/maillog
Das Programm, welches ich Euch empfehle um die Queue zu bereinigen nennt sich: Qmail-Remove
Um Qmail-Remove zu installieren sind folgende Schritte unter Debian nötig:
Am besten wechselt ihr nun in das tmp Verzeichnis des Servers!
Schritt 1: Qmail-Remove Download
wget http://www.linuxmagic.com/opensource/qmail/qmail-remove/qmail-remove-0.95.tar.gz
Dies ist die momentan aktuelle Version! Ihr solltet aber quer checken, ob es schon eine neuere Version gibt!!!
Schritt 2: Programm entpacken
tar -zxvf qmail-remove-0.95.tar.gz
Jetzt solltet ihr in das entpackte Verzeichnis wechseln!!
Schritt 3: Qmail Remove einrichten
make
make install
Damit ist die Installation abgeschlossen!
Bevor ihr jedoch das Tool das erste mal nutzt, müsst ihr noch das “yanked” Verzeichnis anlegen!
Schritt 4: Yanked Verzeichnis generieren!
mkdir /var/qmail/queue/yanked
So, nun ist Qmail Remove fertig eingerichtet und kann verwendet werden!
Schritt 5: Mit Qmail Remove die Queue löschen!
Hierzu gibt es folgenden Befehl:
qmail-remove [Optionen]
Hier ein kleiner Auszug aus den verfügbaren Optionen:
-e use extended POSIX regular expressions
-h, -? this help message
-i search case insensitively [default: case sensitive]
-n limit our search to the first bytes of each file
-p specify the pattern to search for
-q specify the base qmail queue dir [default: /var/qmail/queue]
-r actually remove files, without this we’ll only print them
-s specify your conf-split value if non-standard [default: 23]
-v increase verbosity (can be used more than once)
-y directory to put files yanked from the queue [default: /yanked]
-X modify timestamp on matching files, to make qmail expire mail is the number of seconds we want to move the file into
the past.specifying a value of 0 causes this to default to (604800)
-x modify timestamp on matching files, to make qmail expire mail is a date/time string in the format of output of the
“date” program.
Bevor es jedoch los geht, sollte der Mailserver über folgenden Befehl gestoppt werden:
/etc/init.d/qmail stop
So könnten dann die Befehle aussehen, welche die Mails in der Queue in den Yanked Ordner verschieben:
qmail-remove -r -p
qmail-remove -i -p failure notice –r
Das Programm verschiebt nun alle Mails aus der Queue!
Nach der Aktion nicht vergessen den Mailserver wieder zu starten!!
/etc/init.d/qmail start
Jetzt sollten alle Mails in der Queue gelöscht bzw. verschoben worden sein!
So, und nun für alle, welche die Anleitung bis hier gelesen haben, die Quick and Dirty Lösung zum einfachen Löschen der Mails! Hier kann aber nichts rückgängig gemacht werden, bzw. kann auch nichts beim löschen aussortiert werden!
/etc/init.d/qmail stop
find /var/qmail/queue/mess -type f -exec rm {} \;
find /var/qmail/queue/info -type f -exec rm {} \;
find /var/qmail/queue/local -type f -exec rm {} \;
find /var/qmail/queue/intd -type f -exec rm {} \;
find /var/qmail/queue/todo -type f -exec rm {} \;
find /var/qmail/queue/remote -type f -exec rm {} \;
/etc/init.d/qmail start
Tags:
- mailq mails löschen
- Printer Queue leeren
- qmail queue
- plesk mails löschen
- qMail-Queue in der Kommandozeile verwalten
Dankeschön! Sehr guter Artikel!
Besten Dank für den Artikel, bei mir sind über Nacht 90.000 Mails mit nicht existierenden Usern in der Queu gelandet…
Weiter so :)