Beiträge von dfroe

    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.

    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.

    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.

    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.

    Hallo Benny,

    Zitat

    Das ist ein anderer Ansatz als bei dir, richtig? Mit "Home"-Verzeichnis meintest du auch das jeweilige Homeverzeichnis des Unix-Users dem ein Mailkonto zugeordnet war? (ich frage wegen der .forward- und .procmailrc-Files)


    Das hast du korrekt erkannt. Ich habe keine virtuellen Mail-Konten, sondern für jedes Mail-Konto einen eigenen Unix-User inkl. Home-Dir. Und darin liegt dann meine procmailrc.

    In sofern muss ich an dieser Stelle nun endgültig passen, mit virtuellen Mailkonten habe ich mich noch nicht beschäftigt. Diese Abschnitte habe ich in den jeweiligen Howtos einfach übersprungen.

    Aber es sollte sicherlich auch die Möglichkeit geben, Procmail in virtuelle Mailkonten einzubetten. Was das "Wie" angeht, bin ich nun aber überfragt.

    Dann dir auch noch viel Spass mit dieser neuen Woche, vielleicht findest du ja irgendwo im Netz noch eine passende Howto.
    BTW: Nur noch eine Abiturs-Klausur in Sicht, juhu. :D

    Hallo,
    ein letzter Nachschlag für heute noch.

    Also ich verwende bei mir Maildir-Verzeichnisse für meine Mails. Abrufen tue ich die dann mit dem Courier POP3 bzw. IMAP4 Daemon.

    Wenn du bei dir gar keinen Maildir-Eintrag hast, werden deine Mails wahrscheinlich im MBox-Format abgespeichert. Ob sich damit Procmail auch benutzen lässt weiß ich nicht.

    Ansonsten ist die normale Prozedur bei mir so:
    Neuen (Mail-)Benutzer anlegen, mit "maildirmake" das Maildir-Verzeichnis im Home-Directory des neuen Users anlegen, und mit "chown" den Eigentümer zuweisen.
    Anschließend eben Procmail einrichten.

    So hat dann jeder User sein eigenes Maildir-Verzeichnis, seine eigenen Unterordner und auch seine eigenen Procmail-Filter.

    Natürlich gibt es hierfür auch etliche andere Ansätze, z.B. virtuelle Mailkonten, so dass du nicht für jeden Mail-User einen eigenen Unix-User anlegen musst, uvm.. Ich hab mich eben einfach für diesen Weg entschieden.

    Ansonsten einfach bisschen Googeln nach Postfix Howtos.

    n'Abend,
    achja, die guten alten RegExps (reguläre Ausdrücke). :)
    Dazu gibt's aber per Google&Co. gaanz viel Info-Material. Und ansonsten lässt sich das auch quasi per Reverse Engineering aufbröseln, wenn man sich den Text von mir anschaut, was diese Regeln machen. Und zu guter letzt gibt's auch jede Menge Procmail-Howtos im Netz zu finden.

    Ansonsten hat jeder Benutzer, der ein Mail-Konto hat, braucht seine eigene procmailrc-Datei. Filtern kannst du aber sowohl nach An (To), Von (From), und auch nach jedem beliebigen anderen Feld im Mail-Header.

    In meinem Fall habe ich einen (Mail-)Benutzer pro "real existierender Person". Soll heißen ich habe nur ein einziges Mail-Konto, aber mit verschiedenen Unterordnern. Mails an mich mit verschiedenen (To-)Adressen lasse ich über die Procmail-Regeln in die entsprechenden Ordner schieben.

    Aber wie gesagt, dazu (Procmail) solltest du auch reichlich Infos und Howtos im Internet finden.

    Dann melde ich mich hiermit für heute auch mal ab, damit das mit dem "schönen Abend" auch tatsächlich noch was wird. :)

    n'Abend,
    was die Weiterleitung z.B. von GMX-Mails angeht, so wirst du mit PolicyD-Weight keinerlei Erfolg haben. Denn die Kennzeichen einer Spam-Mail würden sich in diesem Fall ja ausschließlich im Inhalt der Mail befinden, und den sieht PolicyD-Weight nicht. Dieser beurteilt nur die SMTP-Kommunikation mit dem Mail-Clienten, hier also mit dem SMTP-Server von GMX. Und dieser verhält sich natürlich absolut standardkonform und ist auch in keiner RBL geblacklistet, daher werden alle GMX-Mails durchgehen.

    Du müsstest in dem Fall also die Mails bei GMX bereits nach Spam-Filtern. Aber selbst der Filter in der Freemail-Variante funktioniert bei mir recht gut, kann mich nicht beschweren.

    SpamAssassin könnte übrigens dann auch bei den GMX-Mails noch etwas herausholen, da dieser eben den Inhalt der Mail auf Spam-Auffälligkeiten hin untersucht.

    Ansonsten: Wer braucht GMX&Co: eigene Domain, eigener Mail-Server, eigene Spam-Filter und gut ist. :)
    Und wenn nachname.tld noch frei ist, vorname@nachname.tld kommt immer gut. ;)

    Zitat

    Die Mails müssen ja auch irgendwo lokal auf dem Server liegen, richtig? Wo liegen die denn? Da köntne man sie ja immer schön "wegsichern" (wenn man eh nur sinnvolle aufhebt).


    Kannst du tun. Wo du Mails aber liegen, lässt sich pauschal nicht sagen. Ich lasse meine in einem Maildir innerhalb meines Home-Directorys ablegen.

    main.cf:

    Code
    home_mailbox = Maildir/
    Zitat

    Und kann man so ne Art "Filterung" der Mails, wie in eMailprogrammen üblich, auch schon serverseitig machen? So dass z.B. alle Mails die "Benny" in Betreff haben in einen Ordner "privat" abgelegt würden?


    Geht selbstverständlich auch. Für Maildir fällt mir spontan einfach procmail ein.

    Dazu im Home-Directory eine Datei ".forward" mit folgendem Inhalt anlegen:

    Code
    | /usr/bin/procmail

    Interessant ist nun die Datei ".procmailrc" in deinem Home-Directory. Hier mal ein Beispiel, wie diese bei mir aussieht:

    Was macht das Ganze? Mails, die von SpamAssassin als Spam eingestuft werden, in den Junk-Ordner verschieben, GMX-Werbung in den Papierkorb, und eBay bzw. Firmenmails in die entsprechenden Unterordner. Lässt sich individuell anpassen und läuft wie geschmiert. ;)

    Tach,

    Zitat

    Theoretisch sollte sich noch mehr Spam dadurch blocken lassen, dass man Spamassassin parallel laufen lässt, richtig? Wobei... Kann man dann sicherstellen, dass Spamassassin nach policyd-weight läuft?

    SpamAssassin macht nur dann Sinn, wenn in den Mails Spam zu finden ist, die durch den PolicyD-Weight durchlaufen, und anschließend in deinem Postfach landen.

    Ich verwende hierfür nicht direkt den SpamAssassin, sondern AmavisD-new. Amavis ist ein Daemon wie PolicyD-Weight auch, der den Mail-Inhalt (PolicyD-Weight sieht den Inhalt noch nicht) durch diverse Filter jagt, nachdem die Mail bereits lokal angenommen wurde. So kann Amavis die Mail z.B. durch den SpamAssassin laufen lassen und mit ClamAV nach Viren checken, wobei letzteres bei mir nicht wirklich was gebracht hat. Der Amavis-Daemon bringt hierbei seine eigenen SpamAssassin-Routinen mit, d.h. es muss kein weiter SpamD o.ä. installiert/gestartet werden.
    Wenn nun der PolicyD-Weight eine Mail ablehnt, dann kommt diese erst gar nicht in die lokale Mail-Queue, d.h. Amavis/SpamAssassin bekommt diese auch gar nicht zu sehen.

    Wenn der AmavisD-new korrekt läuft, braucht's folgende Zeile in der main.cf:

    Code
    content_filter = amavis:[10.0.0.1]:10024


    Und dann noch in der master.cf folgendes anhängen:

    Spätestens hierfür würde ich aber unbedingt eine nicht-öffentliche IP-Adresse verwenden. Nicht das noch jemand auf die Idee kommt, seine Mails über deinen Amavis zu checken. :)

    Zitat

    Weisst du zufällig, ob der "Versender" einer abgewiesenen Mail eine Nachricht darüber bekommt?


    Das ganze läuft so ab: Irgendein SMTP-Client will die Mail bei dir abliefern. Dies wird aber idR. nie eine natürliche Person mit dem Thunderbird sein, sondern der SMTP-Server eines ISPs (z.B. GMX). Eine SMTP-Verbindung sieht so aus:

    1.) Begrüßung mittels EHLO
    2.) MAIL FROM:Absender
    3.) RCPT TO:Empfänger
    4.) DATA
    5.) Übermittlung der eigentlichen Mail.

    Der PolicyD-Weight ist nun bei Punkt 3 dazwischen geschaltet, d.h. wenn dieser die Mail ablehnt, dann geschieht dies, bevor der Mail-Inhalt überhaupt übertragen wird. Der Rechner, der die Mail einliefert, weiß also, dass die Mail nicht zugestellt wurde und wird dies dem ursprünglichen Empfänger mitteilen.

    Anders sieht es nun bei SpamAssassin aus. Dieser Content-Filter wertet die E-Mail erst aus, nachdem diese vollständig übertragen wurde. Für den einliefernden Mail-Client ist die Mail-Übertragung mit dem Übersenden des Mail-Inhalts erledigt. Was danach mit der Mail passiert, also ob diese z.B. von einem SpamAssassin als Spam markiert wird, davon weiß der Mail-Client nichts.

    Daher niemals den Amavis/SpamAssassin Mails direkt löschen lassen.

    Der PolicyD-Weight meldet das Ablehnen der Mail aber an den einliefernden Mail-Client, d.h. der Absender wird darüber auch informiert.

    PS:

    Zitat

    Mal schauen, aber ich glaube das filtert schon fast alles (bis auf Newsletter) raus.


    Newsletter sind auch kein Spam im klassischen Sinne. ;)

    PPS: Meine aktuelle Statistik von heute:
    RBL rejected: 168
    Spam rejected: 52
    Ham accepted: 16
    Von 236 Mails sind also nur 16 erwünscht, macht einen Spam-Anteil von über 93 Prozent. :(

    Hallo,
    kurz zur IP: Du kannst diese einfach durch die öffentliche IP deines vServer ersetzen, ja (in der policyd-weight.conf und main.cf). Aber dann ist der Policy-Daemon aus dem Internet erreichbar, was ich für keine gute Idee halte. Normalerweise würde man den Daemon an das Loopback-Device (127.0.0.1) binden. Da es bei den Netcup-vServern technisch bedingt aber kein lo-Dev gibt, habe ich mir vom Netcup-Support ein Ethernet-Alias mit einer privaten IP (10.0.0.1) erstellen lassen. Hierauf kann ich nun ohne schlechtes Gewissen meine lokalen Dienste binden lassen, da das 10er-Subnetz nicht ins Internet geroutet wird.

    Ansonsten kannst du in den Logs relativ einfach kontrollieren, ob der PolicyD-Weight korrekt arbeitet.

    grep policyd-weight /var/log/mail.log

    Da sollten dann Zeilen wie
    "decided action=550 Your MTA is listed in too many DNSBLs"
    oder
    "decided action=550 Mail appeared to be SPAM or forged."
    oder auch
    "decided action=PREPEND X-policyd-weight: ... rate: -7"
    zu sehen sein.

    Eine kleine Statistik deines PolicyD-Weight kannst du dir mit folgenden drei Befehlen basteln:

    Code
    grep -c 'Your MTA is listed in too many DNSBLs' /var/log/mail.log
    grep -c 'Mail appeared to be SPAM or forged' /var/log/mail.log
    grep -c 'decided action=PREPEND X-policyd-weight' /var/log/mail.log


    Die erste Zahl gibt dir an, wie viele Mails auf Grund von RBL-DNS geblockt wurden.
    Die zweite Zahl sind die Mails, die wegen einer zu hohen Spam-Score abgelehnt wurden.
    Und die dritte Zahl sind alle akzeptierten Mails.
    Achja, und nicht wundern, wenn die Summe der ersten beiden Zahlen deutlich größer sein sollte als die dritte; bei mir liegt das Verhältnis Spam:Ham bei 9:1.

    Hallo Benny,
    SpamAssassin ist ziemlich mächtig, braucht aber auch so einiges an Ressourcen.

    Ich habe meinen Postfix um policyd-weight erweitert, und bin soweit ganz zufrieden damit.
    PolicyD-Weight schaltet sich direkt in die SMTP-Kommunikation von Postfix ein, d.h. die Mail wird bereits überprüft und gegebenenfalls abgelehnt bevor diese angenommen und in die lokale Queue gestellt wird. Des Weiteren ist PolicyD-Weight äußerst schlank im Vergleich zu Tools wie SpamAssassin.

    Ich verwende hier folgende Konfiguration:

    /etc/policyd-weight.conf:

    /etc/postfix/main.cf:

    Zitat

    Ein einfaches tzconfig sollte doch ausreichen?

    Ich würde sagen, ein einfaches Zurücklehnen und Zuschauen sollte doch ausreichen. ;)

    Wenn du als Zeitzone Europe/Berlin verwendest, dann befindest du dich automatisch immer in der richtigen Zeitzone. Entweder GMT+1 oder GMT+2. Und die Hardware-Uhren laufen sowieso alle auf UTC, d.h. da wird einfach gar nichts verstellt. Ist ja hier schließlich kein Windows. :)

    Hallo Hermann,
    ich spiele die Updates immer von Hand ein, lasse cron-apt also nur die Updates herunterladen und mich benachrichtigen.

    Cron-Apt lässt sich aber beliebig anpassen. Gehe so z.B. einfach in das Verzeichnis /etc/cron-apt/action.d
    Dort sind alle Aktionen, die cron-apt ausführt, aufgelistet.

    0-update:
    update -o quiet=2

    3-download:
    autoclean -y
    dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

    Du kannst nun z.B. eine Datei 5-install anlegen, die alle apt-get Parameter enthält, mit denen du die Pakete automatisch installieren willst. Denkbar wäre z.B. folgendes:

    5-install:
    upgrade -y

    Somit führt er als letzte Aktion ein "apt-get upgrade -y" aus, was alle Updates automatisch installieren sollte.

    n'Abend,
    da gebe ich euch beiden voll und ganz Recht. Und genauso handhabe ich das auf meinen Servern auch.

    Die Standard-Einstellung von cron-apt ist auch so, dass nur auf Updates überprüft wird, diese heruntergeladen werden und der Admin per Mail benachricht wird.
    Cron-Apt kann zwar auch bei Bedarf die Updates vollautomatisch einspielen, dass muss man in der Config aber explizit einstellen.

    Nur der Vollständigkeit halber, dies sind die Aktionen, die Cron-Apt per Default über apt-get durchführt:

    Zitat

    update -o quiet=2
    autoclean -y
    dist-upgrade -d -y -o APT::Get::Show-Upgraded=true