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=<defiance@session4u.de>, 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