Spam direkt auf dem vServer filtern

  • Huhu,
    darf ich hier gerade nochmal ne Frage anhängen?


    In meinem "mail.log" finde ich immer öfter das hier:

    Code
    Apr 10 13:28:12 root postfix/qmgr[847]: warning: connect to transport amavis: Connection refused


    dabei hatte ich amavis gleich wieder "deinstalliert" und in der main.cf und master.cf von postfix die "verweise" darauf gelöscht. Gibt es noch configs die ich vllt anpassen muss? Was mach ich falsch.


    Hatte mir jetzt doch Spamassassin (nachdem ich bei amavis immer so ne blöde fehlermeldung bekomme) isntalliert - konnte es aber noch net so recht testen, muss erstmal ne Spammail durch policyweight kommen *ggg*

  • Tach,
    dein Postfix verbindet sich mit dem Amavis-Daemon, damit dieser die Mail überprüfen kann. Nun scheint bei dir der Amavis-Daemon die Verbindung vom Postfix (manchmal) abzulehnen.
    Hast du denn mittlerweile eine IP-Adresse aus dem 10er-Subnetz für deine lokalen Dienste? Vielleicht mag es der Amavis-Daemon nicht, wenn die Verbindung über eine öffentliche IP-Adresse aufgebaut wird.
    Wenn dieser Fehler nun aber auch bei Verwendung einer 10er-IP auftritt, bin ich überfragt. Vielleicht lässt sich dem Amavis-Daemon durch einen Debug-Schalter entlocken, warum er die Verbindung ablehnt.

  • Hmpf. Das ist mir klar David!


    Ich hatte es installiert, aber wieder deinistalliert (bis ich eben eine private IP habe) und auch die einträge in main.cf und master.cf korrigiert, _aber_ er versucht trotzdem es einzubinden?


    :(


    es ist immer nur der qmgr... aber keine ahnung wie ich das verhindern kann?!

  • Hallo David,


    ich habe jetzt eine private IP (10.0.1.1) und habe also amavisd-new installiert.
    Bei der Installation kam am Ende gleich diese Meldung:

    Code
    Starting amavisd: head: »/etc/mailname« kann nicht zum Lesen geöffnet werden: Datei oder Verzeichnis nicht gefunden
    amavisd-new.


    Es gbt bei mir wirklich kein Verzeichnis /etc/mailname, sollte ich das anlegen?


    Starte ich amavisd-new bekomme ich dieselbe Meldung wie oben (mit dem Verzeichnis) und zusätzlich folgendes im Maillog:


    Und um ehrlich zu sein werde ich nicht schlau daraus. Den Fehler mit der policy_bank gibts schon wieder *grml* und warum versucht er nach 10.0.1.1[10.0.1.1] zu connecten? Ich hätte erwartet dass er 10.0.1.1:10024 oder 10025 versucht?!?


    Hast du ne Idee? Wäre echt super!


    Liebe Grüße,
    Benny

  • n'Abend,

    Zitat

    Es gbt bei mir wirklich kein Verzeichnis /etc/mailname, sollte ich das anlegen?

    Seltsam, bei meinem Debian-System wurde diese Datei automatisch erstellt. Das ist übrigens kein Verzeichnis, sondern eine Datei, in der einfach nur der Hostname deines Mail-Servers drinsteht.
    Erzeugen kannst du die Datei einfach durch "echo meinedomain.de >/etc/mailname"



    Zitat

    DENIED ACCESS from IP ...

    Hm, hier sollte nun eigentlich nicht mehr deine öffentliche IP sondern nur noch die private 10er-IP stehen. Bist du dir sicher, dass du überall die korrekten IP-Adressen eingestellt hast?


    Füge mal folgende Zeilen in die Datei /etc/amavis/conf.d/50-user ein (über die Zeile "do not modify"):

    Code
    $forward_method = 'smtp:[B]10.0.0.1[/B]:10025'; 
    $notify_method = $forward_method; 
    $inet_socket_port = 10024;
    $inet_socket_bind = '[B]10.0.0.1[/B]';

    Anschließend den Amavis-Daemon neu starten. Damit sollte er nun explizit auf der 10er-IP lauschen.


    Zur Kontrolle sollte dann in der Postfix master.cf folgendes stehen:

    Und in der Postfix main.cf folgendes:

    Code
    content_filter = amavis:[[B]10.0.0.1[/B]]:10024

    Gehe mal diese Punkte nochmal Schritt für Schritt durch. Irgendwo muss da noch irgendein Dienst auf eine falsche IP-Adresse eingestellt sein. Ist halt bisschen tricky, weil die Dienste standardmäßig auf das Loopback-Device 127.0.0.1 binden wollen, dieses es bei den netcup vServern aber nicht gibt. Von daher muss sichergestellt sein, dass auch wirklich jeder Dienst weiß, dass er die IP-Adresse 10.0.0.1 verwenden soll. Wenn deine private IP anders lauten sollte sind die Zeilen natürlich dementsprechend anzupassen.

  • Huhu,
    ich bin jetzt todmüde, habe das aber gerade mal alles so durchgeführt, die meisten Fehler blieben weg, aber ich bekomme immer noch ein

    Code
    Apr 13 00:46:33 root amavis[30722]: (!) DENIED ACCESS from IP 10.0.1.1, policy bank ''


    :( Werde morgen nochmal schauen, ob ich irgendwas rausfinden kann. Es ist alles so wie in deinem Post beschrieben.


    Gut Nacht!

  • Hallo,
    frisch ausgeschlafen hab ich hier mal noch zwei Kleinigkeiten gefunden, vielleicht bringt davon eine den Durchbruch:


    postfix/main.cf um folgende Zeile ergänzen, bzw. wenn die Zeile schon vorhanden ist dementsprechend abändern:

    Code
    mynetworks = 127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16



    In der amavis/conf.d/50-user unter deine hinzugefügten Zeilen aber über der "do not modify" Zeile folgendes ergänzen:

    Code
    @inet_acl = qw( [B]10.0.0.1[/B] );


    (Oder eben bei dir konkret die 10.0.1.1)


    Ich habe so das Gefühl, als ob diese Änderung der inet_acl Variable das Zündlein an der Waage sein könnte. Diese Variable gibt nämlich an, welche Hosts auf den Amavis-Daemon zugreifen dürfen. Und in der Standardeinstellung ist dies wieder 127.0.0.1, so dass dies wahrscheinlich auch explizit an die 10er-IP angepasst werden muss.

  • Moin ;)


    Gut dass ich dich hab :))


    Es scheint zu gehen (zumindest hab ich den Fehler jetzt nicht mehr gesehen). Es gibt jetzt nur noch das aus beim Start:

    aber ich denke das ist okay.


    So wie amavisd-new jetzt konfiguriert ist macht es was mit Spam? ***SPAM*** hinschreiben? Sorry für die blöde Frage schon wieder!

  • Zu früh gefreut:

    Code
    Apr 13 12:57:52 root postfix/qmgr[17068]: 796313894FA: to=<b@chmann.info>, orig_to=<b@chmann.de>, relay=none, delay=1.   3, delays=1.3/0.01/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 10.0.1.1[10.0.1.1]: Connection refused


    Ich frage mich warum die Verbindung immer zurückgewiesen wird *hmpf*


    //EDIT
    da ich ja keine Ahnung habe habe ich jetzt einfach mal getestet ob ein SSH auf 10.0.1.1 geht (geht vom root aus). Ich schließe daraus, dass die IP funzt, aber... Ob das hilft?!?

  • Hm, solangsam gehen mir auch die Ideen aus. Immerhin wissen wir jetzt aber, dass der Amavis korrekt funktioniert und es nun wieder am Postfix hängt.


    Überprüfe mal, ob es in deiner postfix/main.cf folgende Zeile gibt:

    Code
    inet_interfaces = all

    Damit lauscht der Postfix-Daemon auf allen Schnittstellen und somit auch der 10er-IP.
    Ansonsten, in der mynetworks-Variable ist dein 10er-Subnetz drin. Und die master.cf hatten wir ja auch schon durch, dass da eben auch einmal die 10er-IP und bei mynetworks das 10er-Subnetz angegeben sein muss.


    Schlussendlich könntest du vielleicht mal noch die komplette Ausgabe von "postconf -n" hier posten. Vielleicht lässt sich da ja irgendwas auffälliges finden.

  • Moin David,


    das scheint in der Tat der Fehler gewesen zu sein! jetzt bekomm ich das Connection Refused net mehr und wie es aussieht werden auch wieder Mails zugestellt.


    Jetzt muss ich nur nochmal nachlesen was Amavis eigentlich macht dann bin ich glücklich :)


    Abi ist gut gelaufen? :)


    Gruß,
    Benny

  • Tach Benny,
    na dann war das mit deinem Mail-Server nun fast so eine schwere Geburt wie mein Abitur; es ist ein langer Weg bis zum Ziel, aber am Schluss zählt nur das Ergebnis: Es funktioniert, bzw. (zu 99%) bestanden. ;)


    Wie dem auch sei, Amavis-Tutorials dürftest du im Internet reichlich finden. Ansonsten kann ich dir hier mal noch kurz und knapp die Zeilen nennen, die bei mir sehr gute Ergebnisse liefern (auch wieder in der 50-user ergänzen):


    Code
    $sa_spam_subject_tag = '***SPAM*** ';
    $sa_tag_level_deflt  = -9.9;
    $sa_tag2_level_deflt = 5.00;
    $sa_kill_level_deflt = 99.0;
    $sa_dsn_cutoff_level = 10;

    Damit werden alle Mails mit einer SpamAssassin-Score von mindestens 5.0 als Spam behandelt und mit dem Subject-Tag ***SPAM*** versehen.


    Du kannst noch Virenscanner wie z.B. ClamAV einbinden. In meinen zwei Jahren in denen ich Amavis bisher einsetze wurde aber noch nie eine Mail wegen eines Virusfundes abgelehnt; außer Test-Mails mit absichtlichen Viren. :)


    Ich glaube schlussendlich haben wir mit diesem Thread jetzt hier eine ganz nette "Anleitung" aufgestellt, wie man Postfix mit PolicyD-Weight, Amavis und SpamAssassin auf den netcup-Servern ohne Loopback-Device einrichtet. :cool:


    Das werde ich dann auch gleich nachahmen können wenn mein vServer zum Monatswechsels auch zu netcup umzieht; im Moment habe ich hier nämlich nur meinen Secondary (Backup) vServer liegen. Auf diesem habe ich aber nur einen einfachen Mail-Daemon laufen; der muss auch nur Mails handhaben wenn mal der Primary vServer ausfallen sollte.

  • Hey!
    Dann mal Gratulation zum (fast) bestandenen Abi!


    Vllt sollte man nochmal deine ganzen schlauen Beiträge in einen einzigen Post übernehmen und hier irgendwo in ein "Tutorial"-Unterforum - was noch nicht da ist glaube ich - posten ;)


    Eine Frage hab ich allerdings noch bzw. die Sache hat mich verwirrt.


    Ganz am Anfang hast du mir statt SA zu amavisd-new geraten, jetzt schreibst du, dass wir SA miteingerichtet hätten. Hab ich da was verpasst, oder ist das automatisch bei Amavis dabei?!?


    Schönen Abend wünsch ich!
    Benny

  • Tach,
    ja, das mit der Zusammenfassung ist sicherlich keine schlechte Idee. Werd mal schauen, ob sich da was machen lässt.


    Und um dich ein wenig zu entwirren: Wir haben AmavisD-New eingerichtet, korrekt. Nur was war ist denn nun eigentlich AmavisD-New? ;)


    AmavisD-New ist ein sog. Content-Filter, der z.B. in Postfix eingebunden werden kann. Jede Mail wird nun also nach deren Annahme an den Amavis geschickt, dieser macht "irgendwas" mit ihr, und schickt sie wieder an den Postfix zurück.


    Der Amavis selber kann nun vorallem zwei Dinge ganz gut: Die Mail durch einen Virenscanner durchschleußen und - was mehr Sinn macht - den SpamAssassin drüber laufen lassen. Dabei wird nun kein eigener SpamAssassin-Daemon benötigt, denn der Amavis lädt beim Starten die SA-Libraries (Perl-Module) mit in den RAM und wendet diese dann auf die Mails an. Dieses Mitladen der SA-Module ist auch der Grund dafür, warum der Amavis-Daemon relativ viel RAM verbraucht.


    Unterm Strich sollte eigentlich der SpamAssassin nun bereits deine Mails durchleuchten. Zur Kontrolle kannst du dir einfach mal den Quelltext einer eingehenden Mail anschauen, und da dann ganz genau die Kopfzeilen:


    Code
    X-Virus-Scanned: amavisd-new


    Das heißt, die Mail ist auf jeden Fall schonmal durch den Amavis durchgelaufen.


    Code
    X-Spam-Status: No, score=-2.599 [...]


    Hier siehst du den Status des SpamAssassin und dessen Score für diese Mail.


    Sollte das nicht wie gewünscht funktionieren einfach mal mit "apt-get install spamassassin" überprüfen, ob die SpamAssassin-Module tatsächlich installiert sind. Kann nämlich sein, dass der Amavis diese nicht gleich durch eine Abhängigkeit mit installiert. Den SA-Daemon brauchst du aber jedenfalls nicht starten, kannst also in der Datei /etc/default/spamassassin ENABLED=0 setzen.

  • Servus!


    Spamassasin hab ich installiert (spamd läuft aber nicht).
    Aber... Ich bekomme die Header nicht *wein*


    Irgendwie ist wohl wirklich der Wolf drin?


    Hier mal ne "Testmail" inkl. vollständigem Header:



    da steht zwar ganz oben was von amavisd-new drinnen, aber... die beiden "X"-Header die du erwhnt hattest eben nicht :(


    Gruß,
    Benny

  • So, dann schaun wir mal.
    Die Mail wird auf jeden Fall schonmal durch den Amavis durchgeschleust, d.h. der Postfix leitet sie an den Amavis weiter und dieser schickt die abgearbeitete Mail anschließend wieder an den Postfix zurück. Das sagen uns die beiden Received-Zeilen.


    Soweit, sogut. Amavis bekommt die Mail also, möchte sie aber aus irgendeinem Grund nicht verarbeiten. Könnte gut sein, dass der Amavis meint, für das Scannen dieser Mail nicht verantwortlich zu sein. Damit hatte ich anfangs bei meiner Installation auch ein paar Schwierigkeiten.


    Mal schauen, was ich dazu so an Amavis-Einstellungen bei mir finden kann.

    Code
    $mydomain = '';
    @local_domains_acl = ( ".$mydomain" );
    chomp($myhostname = `hostname --fqdn`);
    $X_HEADER_LINE = "Debian $myproduct_name at $myhostname";


    Zur Einbindung des SpamAssassin habe ich noch folgende Zeilen bei mir gefunden:

    Code
    @bypass_spam_checks_maps = (
       \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
    $final_virus_destiny = D_DISCARD;
    $final_banned_destiny = D_REJECT;
    $final_spam_destiny = D_PASS;
    $final_bad_header_destiny = D_PASS;


    Vielleicht bringt dir das noch was, ansonsten müsstest du mal schauen, ob sich dem Amavis-Daemon während des Scan-Vorgangs irgendwie eine Meldung entlocken lässt, warum er diese Mail ungescannt passieren lässt.


    Aber eins steht fest, wir stehen kurz vor dem Ziel: Postfix und Amavis bekommen alle die Mail so zu sehen wie es sein soll, nur lässt sie der Amavis ohne zu scannen passieren. Das kann nur noch eine Kleinigkeit sein. :)

  • Moin Moin,
    ich habe jetzt mal deine "Zeilen" in die 50-user eingefügt, ist das richtig?


    Das sieht bei mir jetzt so aus:


    Bringt aber immer noch nicht den gewünschten Effekt (sprich es gibt keinen X-Spam-Header und den anderen auch net :( ).



    //EDIT


    hab eben mal ne Mail mit nem für mich eigenartigen Betreff gefunden "[Werbemail] ..."


    da stand immerhin das im Header:

    Code
    X-Quarantine-ID: <iKlHFFwwrG6F>
    X-Amavis-Alert: BAD HEADER MIME error: error: part did not end with expected
         boundary