• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Claws-Mail und spamassassin

admine

Ultimate Guru
Hallo,

als Mail-Client benutze ich Claws-Mail. Da in den letzten Tagen recht viele Spam-Mails rein kommen und nicht schon vom Provider als Spam erkannt werden, hab ich in Claws-Mail das SpamAssassin-Plugin aktiviert.
Dieses brauch einen SpamAssassin-Server - spamd.
Also hab ich spamassassin installiert.
Dabei kam folgendes auf die Platte:
Code:
Die folgenden 21 NEUEN Pakete werden installiert:
  perl-Crypt-OpenSSL-Random perl-Crypt-OpenSSL-RSA perl-Encode-Detect perl-Error perl-HTML-SimpleParse perl-IO-Socket-INET6
  perl-IO-Socket-IP perl-Mail-DKIM perl-Mail-SpamAssassin perl-Mail-SPF perl-MailTools perl-NetAddr-IP perl-Net-CIDR-Lite perl-Net-IP
  perl-Net-Patricia perl-Net-Server perl-razor-agents perl-Socket6 perl-Sys-Hostname-Long re2c spamassassin

Die folgenden 5 empfohlenen Pakete wurden automatisch gewählt:
  perl-Encode-Detect perl-IO-Socket-INET6 perl-Mail-SPF perl-Net-Patricia perl-razor-agents
Danach als root spamd aktiviert und gestartet:
Code:
systemctl enable spamd
systemctl start spamd
Und schon funzte das Plugin in Claws-Mail.

Nun hab ich aber das Problem, dass spamd scheinbar nicht sauber beim Booten gestartet werden kann :(
Claws-Mail bringt mir dazu die entsprechende Fehlermeldung und im spamd-Status kann ich erkennen, dass da nichts gestartet werden konnte.
systemd-journalctl:
Code:
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Start-pre operation timed out. Terminating.
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Unit entered failed state.
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Failed with result 'timeout'.

Starte ich dann spamd neu (systemctl restart spamd) funzt alles wie es soll.
Versucht das System spamd zu früh zu starten oder wo könnte das Problem sein?

Vielen Dank für eure Hilfe vorab.
 

MH1962

Member
admine schrieb:
Code:
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Start-pre operation timed out. Terminating.
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Unit entered failed state.
Feb 07 17:26:15 laptop.leoni.daheim systemd[1]: spamd.service: Failed with result 'timeout'.

Starte ich dann spamd neu (systemctl restart spamd) funzt alles wie es soll.
Versucht das System spamd zu früh zu starten oder wo könnte das Problem sein?
Nun, da heißt es ja
Code:
Start-pre operation timed out.
Schaut man in spamd.service so steht da zu dem Thema folgendes:
Code:
ExecStartPre=/bin/bash -c "sa-update || true"
Anscheinend wird versucht, noch vor dem Start einen Update zu machen und der bleibt zu lange hängen.

Die Abhängigkeiten sind auf den ersten Blick richtig gesetzt:
Code:
Wants=remote-fs.target network.target
After=remote-fs.target network.target
D.h. Netzwerk sollte eigentlich da sein.

Ich würde mal schauen, ob sa-update was im Syslog hinterlässt...
 
OP
A

admine

Ultimate Guru
MH1962 schrieb:
Ich würde mal schauen, ob sa-update was im Syslog hinterlässt...
Im boot.log steht nichts dazu und auch "systemd-journalctl | grep sa-update" bringt keine Ausgabe.
Hier noch die Ausgabe zu "spamd" gleich nach dem Start:
Code:
systemctl status spamd
● spamd.service - Daemonized version of spamassassin
   Loaded: loaded (/usr/lib/systemd/system/spamd.service; enabled; vendor preset: disabled)
   Active: failed (Result: timeout) since Thu 2018-02-08 16:05:40 CET; 1h 17min ago

Feb 08 16:04:11 laptop systemd[1]: Starting Daemonized version of spamassassin...
Feb 08 16:05:40 laptop.leoni.daheim systemd[1]: spamd.service: Start-pre operation timed out. Terminating.
Feb 08 16:05:40 laptop.leoni.daheim systemd[1]: Failed to start Daemonized version of spamassassin.
Feb 08 16:05:40 laptop.leoni.daheim systemd[1]: spamd.service: Unit entered failed state.
Feb 08 16:05:40 laptop.leoni.daheim systemd[1]: spamd.service: Failed with result 'timeout'.
 
Code:
Feb 08 16:05:40 laptop.leoni.daheim systemd[1]: spamd.service: Failed with result 'timeout'.

Meines Wissens ist spamd ein perl Konstrukt und verwendet das Net::DNS module.
Dieses module will schon beim Laden zur Verifizierung eine Auflösung von wenigstens localhost.
Das Netzwerk sollte an dieser Stelle also konfiguriert sein. Leider oder glücklicherweise habe ich von systemd keine Ahnung.
Es sollte aber möglich sein, diesen spamd service nach hinten zu verschieben, also an eine Stelle, an der das Netzwerk fertig konfiguriert ist.
Ich denke, dann müsste dieser timeout verschwinden.

Kollegialen Gruß
Gräfin Klara
 

MH1962

Member
Gräfin Klara schrieb:
Es sollte aber möglich sein, diesen spamd service nach hinten zu verschieben, also an eine Stelle, an der das Netzwerk fertig konfiguriert ist.
Ich habe doch oben schon als Ausschnitt aus (meinem!) spamd.service dargestellt, dass dies schon der Fall ist. Evtl. sollte admine noch mal kontrollieren, ob das bei ihr auch so ist.
 
OP
A

admine

Ultimate Guru
MH1962 schrieb:
Ich habe doch oben schon als Ausschnitt aus (meinem!) spamd.service dargestellt, dass dies schon der Fall ist. Evtl. sollte admine noch mal kontrollieren, ob das bei ihr auch so ist.
Sorry, die Antwort bin ich noch schuldig. So sieht es bei mir aus:
Code:
Description=Daemonized version of spamassassin
Wants=remote-fs.target network.target
After=remote-fs.target network.target
Before=mail-transfer-agent.target
Also eigentlich wie bei dir :roll:
 

drcux

Hacker
MH1962 schrieb:
Gräfin Klara schrieb:
Es sollte aber möglich sein, diesen spamd service nach hinten zu verschieben, also an eine Stelle, an der das Netzwerk fertig konfiguriert ist.
Ich habe doch oben schon als Ausschnitt aus (meinem!) spamd.service dargestellt, dass dies schon der Fall ist.

Nö, ein

Code:
After=network.target

besagt nur, das ein Netzwerkmanager gestartet ist, der sich um die Konfiguration des Netzwerkes kümmert. Will man sicher sein, das das Netzwerk konfiguriert ist, braucht man noch ein

Code:
After=network-online.target

Dazu muss aber der jeweilige "Online"-Dienst des Netzwerkmanagers gestartet sein, im falle des NetworkManager also:

Code:
# systemctl enable NetworkManager-wait-online.service


https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
 
OP
A

admine

Ultimate Guru
drcux schrieb:
Nö, ein
Code:
After=network.target
besagt nur, das ein Netzwerkmanager gestartet ist, der sich um die Konfiguration des Netzwerkes kümmert. Will man sicher sein, das das Netzwerk konfiguriert ist, braucht man noch ein
Code:
After=network-online.target
Dazu muss aber der jeweilige "Online"-Dienst des Netzwerkmanagers gestartet sein, im falle des NetworkManager also:
Code:
# systemctl enable NetworkManager-wait-online.service
Das heißt für mich jetzt, ich aktiviere den Service NetworkManager-wait-online.service und ergänze ihn in der Zeile "After" des spamd ?
 
OP
A

admine

Ultimate Guru
@drcux

Danke :) das war es wohl gewesen :)
Ich habe NetworkManager-wait-online.service aktiviert und im spamd.service network-online.target bei AFTER und WANTS ergänzt.
Jetzt läuft spamd nach einem ersten Test (Reboot) :D
 
Oben