# Hilfe SpamAssassin verursacht 100% Last

## LL0rd

Hallo Leute,

seit gestern baut mein SA total mist. Aus irgendeinem Grund verursacht er 100% Last auf dem Server. Knapp ein Jahr lief das Ding ohne Probleme. Nur die letzten beiden Tage, ist nur Stress mit dem Ding. Ein Mal war ich dabei, als das Ding abgeraucht ist. Der Server hatte ca. eine Minute einen Load von 2, dann ca. eine Minute einen Load von 3 und dann ging es exponentiell hoch, bis der Server garnicht mehr reagiert hat. Und das ist wie gesagt seit den letzten Tagen so. Auf dem Server ist auch die aktuelle Version von SA drauf.

Hat von euch jemand eine Idee, was man da machen kann? Die Kiste schmiert mir sonnst gleich wieder unter den Fingern weg.

----------

## think4urs11

*glaskugel putz*

- DNS

- Probleme mit dem Raidarray

- neue zu aggressive/workload-intensive Regelsätze

- sprunghaft angestiegenes Spamaufkommen

- (d)DoS-Attack am laufen

- Thermothrottling wodurch die heruntergetaktete CPU plötzlich 'nicht mehr hinterherkommt'

- ...

----------

## LL0rd

 *Think4UrS11 wrote:*   

> 
> 
> - sprunghaft angestiegenes Spamaufkommen
> 
> - (d)DoS-Attack am laufen
> ...

 

Ja, genau das ist das Problem, ich weiß auch nicht, woran es liegen kann und muss im Dunklen rumstochern.

An dem Server wurde nichts gemacht, es wurden keine neuen Regeln definiert, etc. Meine "Hoffnung" war eigentlich, dass es vll. ein Bug ist und ich nicht der einzige damit bin.

Aber jetzt mal allgemein gefragt: Gibt es irgendwas, was ich machen kann, damit ein Dienst nicht den ganzen Server blokieren / auslasten kann? So dass man sich immer noch per SSH einloggen kann um das sinkende Schiff noch zu retten.

----------

## m.b.j.

Du könntest den Spamasassin Prozess erstmal mit einer höheren nice austatten. Zwar keine Behandlung der Ursache, aber des Symtoms.

----------

## LL0rd

Ich habe das Problem nun gelöst:

Der Grund für den Absturz war z.T. eine Kombination aus einer fehlerhaften Exim Konfiguration (ich bin jedoch der Meinung, dass die richtig ist), einem 0815 Büro Mitarbeiter, M$ Outlook und Exchange. Letzteres ist eh der Supergau schlechthin.

Was ist passiert? Der Kunde eines Domaininhabers hatte eine E-Mail geschickt. 28MB per SMTP zu übertragen ist eigentlich schon pervers. Aber was erwartet man denn von diesen Nutzern, die einfach irgendwas in Outlook reinschieben, auf Senden klicken und Schwups ist die Mail auf dem Exchange Server. Dass es irgendwie zu viel ist, merkt man ja nicht.

Outlook hat aber die Daten irgendwie nicht als Binärdaten kodiert, sondern als Text. Somit hatte ich rund 28MB Text (4328930) Zeilen, die SA parsen wollte. Und genau das hat SA den Rest gegeben. Er hat den ganzen Arbeitsspeicher genutzt, den er hatte und auch die ganzen CPUs, die in dem Server verbaut waren.

Eine andere sache, die ich nicht verstehen kann, ist wieso Exim nicht auf mich hört. Ich hatte bei mir eine Regel definiert:

acl_check_data:

accept condition = ${if >{$message_size}{1024k}{yes}{no}}

Exim soll die Mail nur dann scannen, wenn die unter einem MB ist. Mails über einem MB soll exim einfach durchlassen.

Etwas weiter unten hatte ich noch eine weitere Regel stehen:

deny message = This message scored $spam_score spam points

spam = exim:true

condition = ${if >{$spam_score_int}{120}{1}{0}}

Ich bin eigentlich davon ausgegangen, dass nach dem ersten accept die Mail einfach angenommen und alles andere übersprungen wird. Aber Exim scheint die ganze Liste durchzugehen und scannt dementsprechend die Mail trotzdem durch. Ob das auch so richtig ist, weiß ich nicht wirklich.

----------

## m.b.j.

Freut mich das es gelößt wurde. Nur eine Anmerkung, Binärdaten werden imho immer base64 codiert, da das SMTP Protokoll nur bytes aus dem ASCII-Code zulässt. SMTP ist halt schon was älter  :Wink: 

Alternativen wie QMTP oder QMQP sind leider nicht weit verbreitet.

----------

## LL0rd

Naja, die Dateien im Anhang der Datei hatten folgenden Header:

```
--------------030707090105030204060405

Content-Type: text/plain;

 name="F36900055269400311005_001_spst_rahmen_x_BLATT_005_WST18,.dxf"

Content-Transfer-Encoding: 7bit

Content-Disposition: inline;

 filename*0="F36900055269400311005_001_spst_rahmen_x_BLATT_005_WST18,.dxf"

```

Da ist es auch kein Wunder, dass SA die Dateien anfasst und durchscannt. Ich sags mal so:

SMTP an sich funktioniert wunderbar. Es hat auch die letzten Jahre wunderbar funktioniert. Bis dann irgendwelche Knallköpfe angefangen haben, Spam zu verschicken. Oder auch Viren, die sich per Mail selbst verbreiten. Ich vergleiche es immer mit etwas aus der realen Welt. Es gibt mehr Leute, die Wände beschmieren, Fenster einschlagen oder zerkratzen oder Sitze in öffentlichen Verkehrsmitteln aufschneiden, als die sozialeren, die z.B. der Oma über die Straße helfen oder freiwillig Blumen pflanzen gehen, damit die Stadt schöner ausschaut.

----------

## m.b.j.

 *LL0rd wrote:*   

> Naja, die Dateien im Anhang der Datei hatten folgenden Header:
> 
> Content-Type: text/plain;
> 
> 

 

dxf ist ein ASCII-Format, dann war meine Vermutung mit base64 auch Murks  :Wink: 

Jetzt sollte ich vor lauter Frust eine Scheibe einschlagen *G*.

----------

