# Mail-Problem seit OpenSuse Sicherheits-Patch



## Paul (19. Dez. 2010)

Seit dem letzten Suse Sichterheits-Update funktioniert der Mailserver nicht mehr. Wenn ich mich recht erinnere wurden Spamassassin und/oder Amavis Patches geladen. Seitdem werden Emails weder empfangen noch versandt. Einige Zeit nach dem Versenden kommt eine Nachricht mit folgendem Inhalt zurück: 


```
Your message could not be delivered for more than 1 hour(s).
  ...
  … connect to 127.0.0.1[127.0.0.1]:10024: Connection refused
```
Im Log-File „warn“ ist folgendes zu lesen:


```
Dec 18 22:45:27 server1 amavis[3740]: (!!)TROUBLE in pre_loop_hook: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
Dec 18 22:45:27 server1 amavis[3740]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
```
In der genannten Datei PerMsgStatus.pm wird in Zeile 164 ein Modul aufgerufen:


```
if (!$self->{main}->have_plugin("check_main")) {
      die "check: no loaded plugin implements 'check_main': cannot scan!";
```
In „mail.info“ ist noch folgendes zu finden:


```
Dec 19 10:05:31 server1 postfix/smtp[12289]: D5DD5A0E44: to=<name@domain.de>, relay=none, delay=43672, delays=43672/0.04/0/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
```
Es sieht so aus, als ob ein Modul nicht mehr geladen wird.
Vielleicht bin ich aber auch auf dem Holzweg.
Hat jemand eine Idee was zu tun ist?

Die technischen Daten zum Webserver:[FONT=Arial, sans-serif]OpenSUSE 11.1 (x86_64)[/FONT]
[FONT=Arial, sans-serif]ISPConfig 3.0.1.6[/FONT]
[FONT=Arial, sans-serif]Postfix 2.5.5-6.8[/FONT]​[FONT=Arial, sans-serif]
[/FONT]


----------



## Luuk (20. Dez. 2010)

*ich habe dass selbe problem..*

I hope someone has some tips to solve this...


----------



## Luuk (20. Dez. 2010)

gefunden:

jemand anderes hat das gleiche Problem vor zwei Jahren berichtet:


http://blog.chr.istoph.de/amavis-rechteproblem/


----------



## Paul (20. Dez. 2010)

Danke für den Tipp. 
Die Rechte von etc/mail habe ich wie empfohlen auf 0777 gesetzt. Allerdings für root:root. Eine Gruppe amavis gibt es hier nicht.
Nach dem Reboot habe ich dann versucht eine Email zu verschicken.
Leider ohne Erfolg.
Das Verschicken ergab in var/log/mail folgenden Eintrag:

```
Dec 20 11:37:53 server1 postfix/smtpd[4349]: connect from unknown[217.239.21.60]
Dec 20 11:37:53 server1 postfix/smtpd[4349]: D5080A0F5D: client=unknown[217.239.21.60], sasl_method=LOGIN, sasl_username=sender@domain.de
Dec 20 11:37:54 server1 postfix/cleanup[4468]: D5080A0F5D: message-id=<1292841472.2133.0.camel@Miditower>
Dec 20 11:37:54 server1 postfix/qmgr[3964]: D5080A0F5D: from=<sender@domain.de>, size=1056, nrcpt=1 (queue active)
Dec 20 11:37:54 server1 postfix/error[4472]: D5080A0F5D: to=<empfaenger@gmx.de>, relay=none, delay=0.38, delays=0.27/0.02/0/0.09, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
Dec 20 11:37:55 server1 postfix/smtpd[4349]: disconnect from unknown[217.239.21.60]
```


----------



## Till (20. Dez. 2010)

amavisd läuft nicht. Starte es mal neu und schau dann isn log ob irgendwelche fehler beim starten aufgetreten sind.


----------



## Paul (20. Dez. 2010)

Die Eingabe von "amavisd start" führt dazu, dass die Konsole hängt.
In var/log/warn steht dann lediglich:
Dec 20 13:15:00 server1 amavis(client)[10275]: failed to connect(): Connection refused
In den anderen log-files ist gar keine Reaktion auf den Startbefehl zu finden.


----------



## Till (20. Dez. 2010)

Nimm bitte mal das klassische start script:

/etc/init.d/amavisd restart


----------



## Paul (20. Dez. 2010)

Der Daemon will einfach nicht starten.
Auf "amavisd reload" kommt die Antwort:The amavisd daemon is not running​Und auf testweise eingegebene starts, und reloads findet man in der mail.warn:

```
Dec 20 15:59:46 server1 amavis[21029]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
```
Und in messages:

```
Dec 20 15:53:21 server1 amavis[20676]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
Dec 20 15:58:44 server1 amavis[20993]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
Dec 20 15:59:46 server1 amavis[21029]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
```
Für mich sieht's so aus, als wenn der Daemon nicht anläuft, weil ein Plugin nicht geladen werden kann. Oder bin ich da auf dem Holzweg?


----------



## Till (20. Dez. 2010)

Hast Du irgendwelche spamassassin Module von hand installiert?


----------



## Paul (20. Dez. 2010)

Nix von Hand installiert.
Ich vermute, dass der letzte Suse Sicherheitspatch etwas überschrieben hat.
Vor einigen Monaten gab's schon einmal Probleme nach einem Suhosin Patch.


----------



## Paul (20. Dez. 2010)

Ich habe gerade gesehen, dass ich zwei amavisd.conf Dateien habe:./etc/amavisd.conf
./etc/amavis/amavisd.conf​Ist das so ok?
Nur in der Conf-Datei im amavis-Ordner sind ispconfig-Einträge zu finden.
Deshalb habe ich die Conf-Datei aus etc renamed und die Datei, in der ISPConfig-Einträge enthalten waren nach etc kopiert.
Auch nach dem Reboot keine Änderung. Immer noch die gleichen Fehlermeldungen in den Log-Files.


----------



## Luuk (20. Dez. 2010)

im /etc/amavisd.conf steht dieser regel:
$daemon_group = 'vscan';    

Die rechte auf die datei /etc/mail mussen auf die gruppe 'vscan' gesetzt worden
# cd /etc
# chown -R root:vscan mail



(sorry for my German.... i'm from Holland ;-)


----------



## Paul (20. Dez. 2010)

Ich habe mal "amavisd debug" eingegeben.
Leider ist die Ausgabe ziemlich umfangreich. Einiges habe ich weggelöscht. - Hoffentlich nichts wichtiges.
Vielleicht erkennt jemand etwas?

```
amavisd debug
Dec 20 18:05:02.069 linux-jfp8.site /usr/sbin/amavisd[5109]: logging initialized, log level 5, syslog: amavis.mail
Dec 20 18:05:02.069 linux-jfp8.site /usr/sbin/amavisd[5109]: starting.  /usr/sbin/amavisd at linux-jfp8.site amavisd-new-2.6.1 (20080629), Unicode aware, LANG="de_DE.utf8"
Dec 20 18:05:02.069 linux-jfp8.site /usr/sbin/amavisd[5109]: user=, EUID: 65 (65);  group=, EGID: 108 108 (108 108)
Dec 20 18:05:02.069 linux-jfp8.site /usr/sbin/amavisd[5109]: Perl version               5.010000
Dec 20 18:05:02.096 linux-jfp8.site /usr/sbin/amavisd[5109]: INFO: no optional modules: IO::Socket::INET6
Dec 20 18:05:02.229 linux-jfp8.site /usr/sbin/amavisd[5109]: INFO: SA version: 3.2.5, 3.002005, no optional modules: Net::CIDR::Lite Sys::Hostname::Long Mail::SpamAssassin::BayesStore::PgSQL Encode::Detect Razor2::Client::Agent IP::Country::Fast Image::Info Image::Info::GIF Image::Info::JPEG Image::Info::PNG Image::Info::TIFF Mail::SPF Mail::SPF::Server Mail::SPF::Request Mail::SPF::Mech Mail::SPF::Mech::A Mail::SPF::Mech::PTR Mail::SPF::Mech::All Mail::SPF::Mech::Exists Mail::SPF::Mech::IP4 Mail::SPF::Mech::IP6 Mail::SPF::Mech::Include Mail::SPF::Mech::MX Mail::SPF::Mod Mail::SPF::Mod::Exp Mail::SPF::Mod::Redirect Mail::SPF::SenderIPAddrMech Mail::SPF::v1::Record Mail::SPF::v2::Record NetAddr::IP NetAddr::IP::Util auto::NetAddr::IP::Util::inet_n2dx auto::NetAddr::IP::Util::ipv6_n2d auto::NetAddr::IP::Util::ipv6_n2x Mail::SPF::Query Error
Dec 20 18:05:02.230 linux-jfp8.site /usr/sbin/amavisd[5109]: SpamControl: init_pre_chroot on SpamAssassin done
Pid_file "/var/spool/amavis/amavisd.pid" already exists.  Overwriting!
Dec 20 18:05:02.230 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: 2010/12/20-18:05:02 Amavis (type Net::Server::PreForkSimple) starting! pid(5109)
Dec 20 18:05:02.232 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: Binding to UNIX socket file /var/spool/amavis/amavisd.sock using SOCK_STREAM
Dec 20 18:05:02.232 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: Binding to TCP port 10024 on host 127.0.0.1
Dec 20 18:05:02.233 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: Group Not Defined.  Defaulting to EGID '108 108'
Dec 20 18:05:02.233 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: User Not Defined.  Defaulting to EUID '65'
Dec 20 18:05:02.233 linux-jfp8.site /usr/sbin/amavisd[5109]: Net::Server: Setting up serialization via flock
Dec 20 18:05:02.233 linux-jfp8.site /usr/sbin/amavisd[5109]: after_chroot_init: EUID: 65 (65);  EGID: 108 108 (108 108)
Dec 20 18:05:02.233 linux-jfp8.site /usr/sbin/amavisd[5109]: config files read: /etc/amavisd.conf

...

Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: Lookup::LDAP code    NOT loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: AM.PDP-in proto code loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: SMTP-in proto code   loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: Courier proto code   NOT loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: SMTP-out proto code  loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: Pipe-out proto code  NOT loaded
Dec 20 18:05:02.246 linux-jfp8.site /usr/sbin/amavisd[5109]: BSMTP-out proto code NOT loaded
Dec 20 18:05:02.247 linux-jfp8.site /usr/sbin/amavisd[5109]: Local-out proto code loaded
Dec 20 18:05:02.247 linux-jfp8.site /usr/sbin/amavisd[5109]: OS_Fingerprint code  NOT loaded

...

Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .F    tried: unfreeze, freeze -d, melt, fcat
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .Z    at /usr/bin/uncompress
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .gz   at /usr/bin/gzip -d
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Internal decoder for .gz   (backup, not used)
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .bz2  at /usr/bin/bzip2 -d
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .lzo  tried: lzop -d
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .rpm  at /usr/bin/rpm2cpio
Dec 20 18:05:02.248 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .cpio at /usr/bin/pax
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .tar  at /usr/bin/pax
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .deb  at /usr/bin/ar
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Internal decoder for .zip 
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .7z   tried: 7zr, 7za, 7z
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .rar  at /usr/bin/unrar
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .arj  at /usr/bin/unarj
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .arc  tried: nomarch, arc
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .zoo  at /usr/bin/zoo
Dec 20 18:05:02.249 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .lha  at /usr/bin/lha
Dec 20 18:05:02.250 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .cab  tried: cabextract
Dec 20 18:05:02.250 linux-jfp8.site /usr/sbin/amavisd[5109]: No decoder for       .tnef tried: tnef
Dec 20 18:05:02.250 linux-jfp8.site /usr/sbin/amavisd[5109]: Internal decoder for .tnef
Dec 20 18:05:02.250 linux-jfp8.site /usr/sbin/amavisd[5109]: Found decoder for    .exe  at /usr/bin/unrar; /usr/bin/lha; /usr/bin/unarj
Dec 20 18:05:02.250 linux-jfp8.site /usr/sbin/amavisd[5109]: Using primary internal av scanner code for ClamAV-clamd

...

Dec 20 18:05:02.253 linux-jfp8.site /usr/sbin/amavisd[5109]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan
Dec 20 18:05:02.253 linux-jfp8.site /usr/sbin/amavisd[5109]: No secondary av scanner: FRISK F-Prot Antivirus
Dec 20 18:05:02.253 linux-jfp8.site /usr/sbin/amavisd[5109]: No secondary av scanner: Trend Micro FileScanner
Dec 20 18:05:02.253 linux-jfp8.site /usr/sbin/amavisd[5109]: No secondary av scanner: drweb - DrWeb Antivirus
Dec 20 18:05:02.253 linux-jfp8.site /usr/sbin/amavisd[5109]: No secondary av scanner: Kaspersky Antivirus v5.5
Dec 20 18:05:02.255 linux-jfp8.site /usr/sbin/amavisd[5109]: Creating db in /var/spool/amavis/db/; BerkeleyDB 0.35, libdb 4.5
Dec 20 18:05:02.559 linux-jfp8.site /usr/sbin/amavisd[5109]: SpamControl: initializing Mail::SpamAssassin
Dec 20 18:05:02.559 linux-jfp8.site /usr/sbin/amavisd[5109]: SpamAssassin debug facilities: info
config: could not find site rules directory
Dec 20 18:05:02.881 linux-jfp8.site /usr/sbin/amavisd[5109]: (!!)TROUBLE in pre_loop_hook: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
Suicide () TROUBLE in pre_loop_hook: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
```


----------



## Paul (20. Dez. 2010)

@Luuk
Hat chown auf den Ordner "mail" bei Dir etwas gebracht?
Kannst Du jetzt wieder Emails empfangen und senden?
Bei mir war das leider nicht erfolgreich.


----------



## Luuk (20. Dez. 2010)

when ich die rechte zuruck setze
# cd /etc
# chown -R root:root mail
# /etc/init.d/amavis restart

dann verscheint im log:

Dec 20 19:04:29 opensuse amavis[26136]: (!!)TROUBLE in pre_loop_hook: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.
Dec 20 19:04:29 opensuse amavis[26136]: (!)_DIE: check: no loaded plugin implements 'check_main': cannot scan! at /usr/lib/perl5/vendor_perl/5.10.0/Mail/SpamAssassin/PerMsgStatus.pm line 164.

aber nach:
# /etc/init.d/amavis stop
# cd /etc
# chown -R root:vscan mail
# /etc/init.d/amavis start

steht das volgende im log:
Dec 20 19:06:46 opensuse amavis[26211]: SpamAssassin debug facilities: info
Dec 20 19:06:47 opensuse amavis[26211]: SpamControl: init_pre_fork on SpamAssassin done
Dec 20 19:06:47 opensuse amavis[26213]: TIMING [total 6 ms] - bdb-open: 6 (100%)100, rundown: 0 (0%)100
Dec 20 19:06:47 opensuse amavis[26213]: SpamControl: init_child on SpamAssassin done
Dec 20 19:06:47 opensuse amavis[26214]: TIMING [total 6 ms] - bdb-open: 6 (100%)100, rundown: 0 (0%)100
Dec 20 19:06:47 opensuse amavis[26214]: SpamControl: init_child on SpamAssassin done
Dec 20 19:07:03 opensuse clamd[24171]: SelfCheck: Database status OK.

und mein mail (postfix) functioniert


----------



## Paul (20. Dez. 2010)

@Luuk
Danke für die Info.
Bei mir hat das leider nicht funktioniert.
Amavis nimmt keine Befehle an. - Nur amavisd, und der lässt sich nicht starten. Wenn Befehle an amavis gesendet werden, dann ist der Prompt weg. Erst <Ctrl-C> bringt den Prompt wieder.
Ich glaube hier ist eine Nachtschicht angesagt. Bis Weihnachten werde ich es dann hoffentlich geschafft haben.  ;-)
Schöne Grüße aus Bremen nach Holland.


----------



## Paul (21. Dez. 2010)

Inzwischen bin ich einen Schritt weiter.
Die Amavis-Fehlermeldungen "...TROUBLE in pre_loop_hook: check: no loaded plugin ..." kommen nicht mehr.
Einige Aktionen auf dem Weg dahin:Wie von Luuk beschrieben:  chown -R root:vscan mail
Massen von Emails aus dem Quarantäne-Ordner gelöscht. (Alle, die älter als 14 Tage sind.)
find /var/lib/amavis/virusmails/ -mtime +14 -exec rm {} \;​Wenn ich amavis jetzt starte kommt folgende Fehlermeldung:/etc/init.d/amavis start
Starting virus-scanner (amavisd-new):Can't send SIG 0 to process [3751]: 1 at /usr/sbin/amavisd line 12831.    failed
​Was mir zwischenzeitlich noch eingefallen ist: Eines der letzten Suse System-Updates enthielt auch ein Perl-Update. Wie ich gesehen habe, gibt es im Zusammenhang mit Amavis viele Perl-Scripte. Z.B. die in den früheren Fehlermeldungen angesprochene "PerMsgStatus.pm".
Die Suche geht weiter.


----------



## Paul (22. Dez. 2010)

Das kann ja wohl nicht wahr sein!!
Heute gibt Suse einen Perl-Spamassassin Patch frei, und siehe da, nach dem Einspielen funktioniert das Mailen wieder. 
Mehrere Tage testen, forschen, ausprobieren waren umsonst. Die Nachtschichten auch. 
Aber was solls: C'est la vie. Und irgendwie ist man natürlich auch erleichtert, dass man wieder Mailen kann.
Und das war der von Suse mitgelieferte Kommentar zum Patch:


```
Patch: perl-spamassassin Kind: recommended Version: 3722 
The previous update caused regressions in spamassassin fails because of a unintentially 
moved directory and a permission change.
```

Na dann nochmal vielen Dank an Luuk und Till. 
Und natürlich auch schöne Grüße an Suse.  ;-)


----------



## Till (23. Dez. 2010)

Und das ist der Grund warum ich schon vor ein paar Jahren alle meine Server von SuSE auf Debian umgestellt habe


----------



## Paul (23. Dez. 2010)

@Till
Nachdem ich den gleichen Ärger schon einmal im Zusammenhang mit einem PHP-Suhosin Patch hatte, werde ich den Wechsel auch ernsthaft in Erwägung ziehen. 
Mir hat bei Suse immer die Unkompliziertheit beim Einspielen der System-Updates gefallen. Yast aufrufen, auf System-Update klicken, fertig.
Wie ist das eigentlich bei Debian?


----------



## Till (23. Dez. 2010)

bei Debian geht das mit den Systemupdates sehr einfach und vor allem zuverlässiger. Ich hatte es bei Debian noch nie das ein Update die bestehende Konfiguration zerschossen hat. Die Befehle sind:

apt-get update
apt-get upgrade

es werden also erst die Paketlisten aktualisiert und dann die Updates eingespielt oder in einem Rutsch:

apt-get update && apt-get upgrade

und ein wechsle auf eine komplette Betriebssystem Version, also z.B. von Debian 4 auf 5 machst Du mit:

apt-get dist-upgrade


----------



## Paul (23. Dez. 2010)

Das hört sich gut an.
Danke, und frohe Weihnachten.


----------



## Laubie (27. Dez. 2010)

noch schöner funktioniert es mit


```
aptitude update
aptitude safe-upgrade
```


----------

