Obwohl dieser Fehler schon lange bekannt ist, trat er in meinem Setup erst die letzten Tage auf und sorgte für eine lange Suche bis endlich wieder Mails auf meinem System zugestellt wurden. Dieser Fehler an sich ist jedoch einfach zu beheben.

Start der Suche war mein Maillog. Dort fand sich der Fehler:

localhost postfix/smtp[28976]: E57A7E5E98: to=<[email protected]>, relay=none, delay=982, delays=982/0.07/0/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)

Dieser sagt mir erst einmal, dass die Mails nicht zugestellt werden können, da eine Verbindung auf dem System nicht hergestellt werden kann. Eine Konfiguration in vielen Tutorials ist es auf diesen Port den Virenscanner Amavis zu legen.

Also suche ich dort in den Logs des Antivirenprogramms weiter. Dieses speichert seine Ausgaben im Journald. Um nur die Ausgaben eine Programms zu erhalten verwenden wir die Option „-u“.

journalctl -u clamd

Im Log finden sich recht schnell eine Häufung des folgenden Fehlers:

clamd[2210]: /usr/sbin/clamd: unrecognized option `--nofork=yes'
clamd[2210]: ERROR: Unknown option passed
clamd[2210]: ERROR: Can't parse command line options

Eine Suche ergibt recht schnell, dass der Fehler seit Jahren bekannt ist. Hier der Link auf den entsprechenden Fehler im Bugtracker bei Red Hat:

https://bugzilla.redhat.com/show_bug.cgi?id=1364253

Clamav unterstützt das Parameter nicht mehr „-nofork=yes“ nicht mehr.. Es wurde durch „-foreground=yes“ ersetzt. Eine Lösung ist es das Parameter im Startskript anzupassen, um den Service wieder zum Laufen zu bekommen.

Die Datei befindet sich unter Cent OS 7 an folgendem Ort:

view /usr/lib/systemd/system/clamd.service

Sie hat folgenden Inhalt:

[Unit]
Description = clamd scanner daemon
After = syslog.target nss-lookup.target network.target

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/amavisd.conf --nofork=yes
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target

Die Datei wird wie folgt angepasst:

[Unit]
Description = clamd scanner daemon
After = syslog.target nss-lookup.target network.target

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/amavisd.conf --foreground=yes
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target

Damit diese Änderung auch aktiv wird, lassen wir unsere confizguratiojnen erneut einlesen.

systemctl daemon-reload

Dieser Befehl bewirkt folgendes:
Lädt die Konfiguration des Systemmanagers neu. Dies führt alle Generatoren erneut aus (siehe systemd.generator(7)), lädt
alle Unit-Dateien, und erstellen Sie den gesamten Abhängigkeitsbaum neu. Während der Dämon neu geladen wird, werden alle Sockets
systemd hört im Namen der Benutzerkonfiguration ab und bleibt zugänglich.
Dieser Befehl sollte nicht mit dem Befehl reload verwechselt werden.

Danach können wir den Dienst wieder starten:

systemctl start clamd

Leave a Comment

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