Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Postfix + AMaViSd-new incl. DCC, Razor, Pyzor, Bayes
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
holla die waldfee
Tux's lil' helper
Tux's lil' helper


Joined: 17 Sep 2003
Posts: 85

PostPosted: Thu Jun 17, 2004 10:20 am    Post subject: Postfix + AMaViSd-new incl. DCC, Razor, Pyzor, Bayes Reply with quote

Hallo zusammen,

hiermit würde ich gerne meine Erfahrungen im Bereich Mailserver, Spam- und Virenfilter mit euch teilen und evt. Fragen zu diesem Thema beantworten.
Dieser Thread wird mit der Zeit nach und nach ausgebaut.

Step by Step


  1. Postfix
    Code:
    emerge postfix

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild   R   ] mail-mta/postfix-2.0.19

    main.cf (gekürzt)
    Code:
    myhostname = myhost.domain.com
    mydomain = domain.com
    myorigin = $myhostname
    # Alle Netze die über diesen Server versenden dürfen
    mynetworks =  127.0.0.0/8

    swap_bangpath = no
    allow_percent_hack = no

    # Nur wers braucht
    #transport_maps = hash:/etc/postfix/transport

    # Nur wers braucht
    #relay_domains = domain.com

    # Alle Mails werden an AMaViSd-new übergeben
    content_filter = amavis:[127.0.0.1]:10024

    # Um Spammer schon an der Haustür abzuweisen
    smtpd_recipient_restrictions =
        permit_mynetworks,
        reject_unknown_sender_domain,
        reject_unauth_destination,
        reject_rbl_client relays.ordb.org,
        reject_rbl_client list.dsbl.org,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client dynablock.njabl.org,
        check_client_access hash:/etc/postfix/access,
        permit


    master.cf(gekürzt)
    Code:
    smtp      inet  n       -       n       -       50      smtpd
    localhost:10025 inet    n       -       n       -       20      smtpd -o content_filter=
    pickup    fifo  n       -       y       60      1       pickup
    cleanup   unix  n       -       y       -       0       cleanup
    qmgr      fifo  n       -       y       300     1       qmgr
    rewrite   unix  -       -       n       -       -       trivial-rewrite
    bounce    unix  -       -       n       -       0       bounce
    defer     unix  -       -       n       -       0       bounce
    flush     unix  n       -       n       1000?   0       flush
    proxymap  unix  -       -       n       -       -       proxymap
    smtp      unix  -       -       n       -       -       smtp
    relay     unix  -       -       n       -       -       smtp
    showq     unix  n       -       n       -       -       showq
    error     unix  -       -       n       -       -       error
    local     unix  -       n       n       -       -       local
    virtual   unix  -       n       n       -       -       virtual
    lmtp      unix  -       -       n       -       -       lmtp

    amavis    unix  -       -       n       -       5       smtp

  2. Virenscanner
    Ich persönlich halte nicht sehr viel von ClamAV, der beim emergen von AMaViSd-new installiert wird, da die Erkennungsraten noch nicht die gewünschte Qualität haben. Ich empfehle daher VLNX zu emergen. Dies ist der McAfee Virenscanner für Linux. Er liegt in einer Trail Version im Portage Tree.
    Code:
    emerge -p vlnx

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild   R   ] app-antivirus/vlnx-416e


  3. AMaViSd-new
    Bei Installation wird auch SpamAssassin durch die Abhängigkeiten installiert.
    Code:
    emerge amavisd-new

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild   R   ] mail-filter/amavisd-new-20030616_p8

  4. SpamAssassin

    Systemweite Konfigurationsdatei
    Code:
    cat /etc/mail/spamassassin/local.cf
    skip_rbl_checks         0

    bayes_auto_learn        1
    use_bayes               1
    bayes_path              /var/lib/amavis/.spamassassin/bayes

    use_razor2              1
    razor_config            /var/lib/amavis/.razor/razor-agent.conf

    use_pyzor               1
    pyzor_path              /usr/bin/pyzor

    use_dcc                 1
    dcc_path                /usr/bin/dccproc

    dns_available           yes

    Wichtig für eine Systemweite Nutzung von Razor und Bayes (z.b. auf einem Relay-Server in einer DMZ) sind die Parameter:
    Code:
    razor_config            /var/lib/amavis/.razor/razor-agent.conf
    bayes_path              /var/lib/amavis/.spamassassin/bayes

    Da dies das Homeverzeichnis des Users Amavis ist, welcher später SpamAssassin ausführt. Ansonsten werden die verwendeten Daten unter /var/run/amavis/ angelegt. Da findet sie SpamAssassin natürlich später nicht. (thx to Rootshell. Ich hab mir das einfach mal aus einem Thread von dir geklaut)

  5. Razor
    Code:
    emerge razor

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild     R] mail-filter/razor-2.36-r1

    Um Razor zu benutzen muss man sich registrieren lassen und auf diese Konfigurationsdaten muss SpamAssassin später zugreifen können.
    Um uns einiges an arbeit zu ersparen ändern wir kurz die Datei /etc/passwd.
    Code:
    amavis:x:1001:408:added by portage for amavisd-new:/var/lib/amavis:/bin/false
    in
    amavis:x:1001:408:added by portage for amavisd-new:/var/lib/amavis:/bin/sh

    Danach wechseln wir den User zu Amavis
    Code:
    su - amavis


    Durch den Befehl
    Code:
    razor-admin -create

    wird im Homeverzeichnis von Amavis ein Ordner .razor angelegt, indem sich die nötigen Konfigurationsdateien befinden. Nun können auch die Änderungen an der Datei: /etc/passwd rückgängig gemacht werden.
    Eine Verbindung zum Razor Server wird über TCP Port 7 und TCP Port 2703 hergestellt. Gegebenenfalls muss die Firewall auf diesen Ports für ausgehenden Verkehr geöffnet werden.


  6. DCC
    DCC muss man zuerst freischalten, da es im Portage Tree "masked" ist.
    Code:
    echo "mail-filter/dcc ~x86" >> /etc/portage/package.keywords

    löst dieses Problem jedoch sehr einfach.
    Da DCC aus irgendwelchen Gründen in Abhängigkeit mit Procmail steht, was ich nicht ganz verstehe, emergen wir es ohne Dependencies.
    Code:
    emerge -O dcc

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild   R   ] mail-filter/dcc-1.2.28

    Die SpamAssassin Konfig ist anzupassen. (s.o.)
    Eine Verbindung zu den DCC Servern wird über UDP Port 6277 hergestellt. Gegebenenfalls muss die Firewall auf dieser Ports für ausgehenden Verkehr geöffnet werden.

  7. Pyzor
    Von allen Sachen war Pyzor wirklich am einfachsten zu integrieren. Einfach emergen und die SpamAssassin Konfiguration anpassen (s.o.)
    Eine Verbindung zu den Pyzor Servern wird über UDP Port 24441 hergestellt. Gegebenenfalls muss die Firewall auf dieser Ports für ausgehenden Verkehr geöffnet werden.
    Code:
    emerge pyzor

    These are the packages that I would merge, in order:

    Calculating dependencies ...done!
    [ebuild   R   ] dev-python/pyzor-0.4.0-r1


  8. Bayes
    Ja Bayes also.
    Das wichtigste ist hierbei die SpamAssassin Konfig wie oben anzupassen und zu schauen ob der User Amavis Schreibrechte auf dem Ordner /var/lib/amavis/.spamassassin und dessen Inhalt hat.
    Wer Bayes auf autolearn 1 stehen hat wird sich vielleicht wundern, warum der Filter nicht arbeitet. Es liegt daran, dass Bayes erst ab 200 Ham und 200 Spam Mails in seiner Datenbank anfängt zu arbeiten.
    Das Problem lässt sich ändern, indem man sich als User Amavis anmeldet und manuel Spam und Ham hinzufügt.
    Code:
    sa-learn --spam Mail/Mailbox/File/Whatever
    sa-learn --ham Mail/Mailbox/File/Whatever
    Man kann auch auch die mindestzahl von Mails in der Datenbank herabsetzen. (siehe man Mail::SpamAssassin::Conf)
    Mit dem Befehl
    Code:
    sa-learn --dump magic
    könnt ihr unter jedem User sehen, wieviele Mails in euerer Datenbank sind.


Hinweise, Fehler bitte per PM
Fragen in den Thread
Den Rest gibts morgen!
Gruß Holla
Back to top
View user's profile Send private message
onkelfusspilz
Tux's lil' helper
Tux's lil' helper


Joined: 26 Aug 2002
Posts: 128
Location: Germany

PostPosted: Sun Oct 17, 2004 6:46 pm    Post subject: Reply with quote

Hi holla die waldfee,

danke erstmal für Dein Howto. Ich habe kein anderes Howto gefunden, welches die Konfig von amavisd-new für einen lokalen Mailserver beschreibt, ein anderer sehr ausführlicher Beitrag hier im Forum beschreibt die Konfig nur für einen Filter der an einen Exchange-Mailer weiterleitet.

Ich habe mich daher an Deine Anleitung gehalten, habe aber nun ein Problem. Ich weiss Dein Howto ist noch nicht fertig, aber vielleicht kannst Du mir dennoch helfen. Ausserdem vielleicht motiviert Dich eine Nachfrage Dein bisher wirklich übersichtliches Howto fertigzustellen:

Ich habe Postfix laufen und kann Mails empfangen + senden.
Ich habe den Eintrag in der master.cf vorgenommen und in der main.cf "content_filter = amavis:[127.0.0.1]:10024" angegeben. Seitdem bekomme ich folgende Meldung von postfix:
Quote:
Oct 17 20:39:30 donnervogel64 amavis[12136]: (12136-01) mail_via_smtp: 450 4.4.1 Can't connect to 127.0.0.1 port10025, Verbindungsaufbau abgelehnt at /usr/sbin/amavisd line 3635, <GEN3> line 23., id=12136-01
Oct 17 20:39:30 donnervogel64 amavis[12136]: (12136-01) Blocked CLEAN, <root@donnervogel64.local> -> <root@localhost.local>, Message-ID: <0_12300_1098038369_1@donnervogel64>, Hits: -
Oct 17 20:39:30 donnervogel64 postfix/smtp[12356]: 8B8BC237BBB: to=<root@localhost.local>, orig_to=<root@localhost>, relay=127.0.0.1[127.0.0.1], delay=1, status=deferred (host 127.0.0.1[127.0.0.1] said: 450 4.4.1 Can't connect to 127.0.0.1 port 10025, Verbindungsaufbau abgelehnt at /usr/sbin/amavisd line 3635, <GEN3> line 23., id=12136-01 (in reply to end of DATA command))

"nmap localhost" zeigt mir, daß auf dem Port 10024 garnichts läuft. Ich habe das doch richtig verstanden, daß Postfix die Mails über TCP 10024 an amavisd-new weiterleiten soll, oder?
Von amavis laufen bei mir 5 Prozesse, 1*master, 1*ch1-avail und 3* virgin child, aber wie gesagt kein Port offen, ich habe bereits in der /etc/amavisd.conf geschaut, aber nichts gefunden wsa mich hier weiter bringt.

Über einen Tip würde ich mich freuen, danke!

onkelfusspilz
Back to top
View user's profile Send private message
ts77
Apprentice
Apprentice


Joined: 23 Mar 2003
Posts: 200
Location: Berlin, Germany

PostPosted: Sun Oct 17, 2004 8:37 pm    Post subject: Reply with quote

du musst schon alles durchgehen.
dir fehlt der folgende eintrag (aus obigem Howto) in der master.cf
Code:

localhost:10025 inet    n       -       n       -       20      smtpd -o content_filter=


postfix muss die mails auf 10025 wieder von amavisd-new entgegen nehmen, nachdem die mails dort gecheckt wurden.
Back to top
View user's profile Send private message
onkelfusspilz
Tux's lil' helper
Tux's lil' helper


Joined: 26 Aug 2002
Posts: 128
Location: Germany

PostPosted: Sun Oct 17, 2004 9:56 pm    Post subject: Reply with quote

Hi ts77,

Du hast natürlich Recht. Ich habe das übersehen, weil die unterste Zeile mit einem Absatz versehen war und die anderen Zeilen (bis eben die die ich vergessen habe) bereits in meiner master.cf standen. *schäm*

Auf jeden Fall klappt es nun. Meine Mails werden nun mit einem "X-Virus-Scanned: by amavisd-new at myhostname" im Header zugestellt.

Angenommen amavisd findet nun einen Virus in einem Dateianhang einer Mail, wie verfährt amavisd nun? Wird die Mail einfach gelöscht? Oder wird der Anhang entfernt? Oder wird garnicht unternommen und lediglich der X-Virus-Scanned Eintrag im Header modifiziert, so dass ich mit procmail die mail dann weiter bearbeiten muss?
Kann man amavisd auch beibringen eine mail zu "säubern"? Damit meine ich z.B. einen Viruskopf aus einer ausfürhbaren Datei zu entfernen, sodass die Mail dann "gesäubert" zugestellt werden kann?
Was ist an dieser Stelle das übliche bzw. sinnvolle Vorgehen? Gibt es irgendwo "Test-Viren", mit denen ich die Funktionalität überprüfen kann? Ich hoffe das sind nicht zu viele Fragen, mit dem Verweis auf eine Doku kann ich auch leben.

Vielen Dank!

onkelfusspilz
Back to top
View user's profile Send private message
ts77
Apprentice
Apprentice


Joined: 23 Mar 2003
Posts: 200
Location: Berlin, Germany

PostPosted: Sun Oct 17, 2004 10:05 pm    Post subject: Reply with quote

Quote:

Ich hoffe das sind nicht zu viele Fragen, mit dem Verweis auf eine Doku kann ich auch leben.


Dann verweise ich einfach mal darauf ;-).

Nein mal im Ernst. Ich weiß nicht wie es bei gentoo aussieht (mein Server mit dem Mailsystem läuft nicht unter gentoo) aber die Konfigurationsdatei von amavisd-new ist recht gut dokumentiert. Liegt normalerweise unter /etc/amavis... irgendwas.

Dort kann man auch einstellen, was er mit Virenmails machen kann.
Eines kann ich Dir schon sagen: Viren entfernen kann er nicht. Entweder löschen mit Benachrichtigung an Admin/User (einstellbar) oder durchlassen.

Testviren (Eicar z.B.) ist im Download-Archiv von amavisd-new vorhanden, weiß wiederum nicht ob die bei der Gentoo-Installation irgendwo abgelegt werden. Ansonsten Download von der Webseite http://www.ijs.si/software/amavisd/ .

gruß,

thomas
Back to top
View user's profile Send private message
Haldir
Guru
Guru


Joined: 27 Sep 2002
Posts: 546

PostPosted: Mon Oct 18, 2004 12:19 am    Post subject: Reply with quote

hmm ersetz mal in der master.conf
die line mit localhost:10025 mit:
bzw lösch einfach die Zeile und pack die letzte zeile dazu,
Seine config scheint theoretisch ziemlich unsicher zu sein,
postfix auf port 10025 müßte da mehr oder weniger als offenes mail relay wirken, zwar nicht 100% sicher aber trotzdem.

127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
Back to top
View user's profile Send private message
holla die waldfee
Tux's lil' helper
Tux's lil' helper


Joined: 17 Sep 2003
Posts: 85

PostPosted: Mon Oct 18, 2004 12:07 pm    Post subject: Reply with quote

unsicher, wieso?

sehe keinen unterschied zu deiner fassung, nur das du mehr optionen auf dem 2ten smtpd entfernst.

gruß
holla
Back to top
View user's profile Send private message
ts77
Apprentice
Apprentice


Joined: 23 Mar 2003
Posts: 200
Location: Berlin, Germany

PostPosted: Mon Oct 18, 2004 12:20 pm    Post subject: Reply with quote

Haldir, hmm, wie kommst denn auf 127.0.0.1 von einem entfernten Rechner, welcher ja so ein offenes Relay sei? ;)
Back to top
View user's profile Send private message
Haldir
Guru
Guru


Joined: 27 Sep 2002
Posts: 546

PostPosted: Mon Oct 18, 2004 2:29 pm    Post subject: Reply with quote

Wie gesagt, theoretisch und mehr oder weniger, hier gehts nur um die Vollständigkeit und da sollten die entsprechenden Zugangsberechtigungen sitzen.
Es gibt auch paranoide die tunneln das ganze sogar aufm localhost (alles scho gesehen inner config ;))
Back to top
View user's profile Send private message
stiwi
Apprentice
Apprentice


Joined: 20 Mar 2003
Posts: 266
Location: hamburg - germany

PostPosted: Thu Nov 04, 2004 5:59 pm    Post subject: Reply with quote

Hi,

ich habe amavisd-new nun am Laufen, aber nun macht mein procmail nicht mehr mit :-(

Wenn die Option "content_filter = amavis:[127.0.0.1]:10024" in der main.cf von Postfix gesetzt ist wird die Umgebungsvariable ${HOME} für den mailbox_command (in diesem Falle procmail) nicht mehr gesetzt. Das hat zur Folge, daß diese leer ist und alle mails bei mir nach //.maildir/new geschrieben werden sollen was natürlich scheitert.

Jemand eine Idee woran das liegen kann? Oder muss ich procmail von amavis aus aufrufen und es geht nicht mehr wie gewohnt über "mailbox_command"?
Back to top
View user's profile Send private message
toskala
Advocate
Advocate


Joined: 14 Dec 2002
Posts: 2080
Location: hamburg, germany

PostPosted: Fri Jun 10, 2005 1:29 pm    Post subject: Reply with quote

ein paar ergänzungen dazu:

der amavis wird nicht mehr nach /var/lib/amavis installiert sondern nach /var/amavis.
den amavisd sollte man starten und in den default runlevel stecken, sonst wirds nix mit dem filtern.

die spannende frage die ich mir nun grade stelle ist, wie bekomme ich aber amavisd dazu die mails nicht zu löschen die spam darstellen, sondern sie nur zu markieren und trotzdem zuzustellen?

cheerios,
toskala
_________________
adopt an unanswered post
erst denken, dann posten
Back to top
View user's profile Send private message
el*Loco
Tux's lil' helper
Tux's lil' helper


Joined: 29 Jan 2003
Posts: 91
Location: Cologne, Germany

PostPosted: Fri Jun 10, 2005 7:59 pm    Post subject: Re: [HOWTO] Postfix + AMaViSd-new incl. DCC, Razor, Pyzor, B Reply with quote

holla die waldfee wrote:


Code:
# Um Spammer schon an der Haustür abzuweisen
smtpd_recipient_restrictions =
    permit_mynetworks,
    reject_unknown_sender_domain,
    reject_unauth_destination,
    reject_rbl_client relays.ordb.org,
    reject_rbl_client list.dsbl.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client dynablock.njabl.org,
    check_client_access hash:/etc/postfix/access,
    permit


Spamcop.net hat eine sehr seltsame Politik was Sperrungen und Entsperrungen angeht, damit sperrst du dir auch regelmäßig gmx, web.de etc. aus - würde ich weglassen.

Quote:
[*] Virenscanner
Ich persönlich halte nicht sehr viel von ClamAV, der beim emergen von AMaViSd-new installiert wird, da die Erkennungsraten noch nicht die gewünschte Qualität haben. Ich empfehle daher VLNX zu emergen. Dies ist der McAfee Virenscanner für Linux. Er liegt in einer Trail Version im Portage Tree.


Halte ich für Quatsch. Clamav hat seit der 0.80 ganz erhebliche Schritte gemacht - die Scanqualität, -geschwindigkeit und vor allem die Updaterate sind für den Einsatzzweck Mailviren hervorragend. Dass der ein oder andere DOS Bootsektor Diskettenvirus nicht erkannt wird kann ich verschmerzen. Von mir die Empfehlung: Clamav!
_________________
WARNING: Do not let Dr. Mario touch your genitals. He is not a real doctor!
Back to top
View user's profile Send private message
moped-tobias
n00b
n00b


Joined: 02 Apr 2005
Posts: 20

PostPosted: Fri Jun 10, 2005 11:08 pm    Post subject: Reply with quote

Hallo,

eventuell wäre AntiVir auch eine weitere Alternative. Für den Privatgebrauch ist dieser frei erhältlich.
https://bugs.gentoo.org/show_bug.cgi?id=24240
Dazu ist allerdings eine Registrieung nötig um den Demo Modus zu deaktivieren:
http://free-av.de/unixreg_form_de.htm
Back to top
View user's profile Send private message
toskala
Advocate
Advocate


Joined: 14 Dec 2002
Posts: 2080
Location: hamburg, germany

PostPosted: Sun Jun 26, 2005 3:53 pm    Post subject: Reply with quote

so, nun hab ich das tool endlich so wie es soll. es markiert spam und viren mails als eben solche, stellt sie aber dennoch zu.

zuerst hatte ich das problem, dass bei einem
Code:
tail -f /var/log/messages


stets ein
Code:

ANTI-SPAM code NOT loaded


zu finden war.
das erledigt sich allerdings erst wenn man in der amavisd.conf die zeile "@bypass_spam_checks_maps" auskommentiert.

Code:

/etc/amavisd.conf
#@bypass_spam_checks_maps = (1);


sonst wird die spam engine nicht geladen.

soderle. da ich nur wollte, dass der spam markiert wird, muss noch die final_spam_destination geändert werden, ebenfalls in der amavisd.conf

Code:
/etc/amavisd.conf
$final_spam_destiny       = D_PASS;


das hat zur folge, dass spam zugestellt wird, jedoch mit zusätzlichen header informationen ausgestattet wird. die header lauten dann:

Code:
X-Spam-Status
X-Spam-Level
X-Spam-Flag


darauf kann man dann ja fein filtern und sie nur verschieben.

so, was den antiviren kram angeht wollte ich das selbe haben, ich wollte, dass die mails gescanned werden aber markiert werden falls sie einen virus beinhalten, diese mail jedoch trotzdem zugestellt wird.

zuerst muss man dafür in der amavisd.conf folgendes einstellen:

Code:
/etc/amavisd.conf
$final_virus_destiny      = D_PASS;


damit das allerdings funktioniert, muss noch ein valider virusalert empfänger eingetragen werden, ebenfalls in der amavisd.conf

Code:
/etc/amavisd.conf
$virus_admin = 'beliebige@mailadresse.com';


und finally, damit das alles auch mit mehr als 1 domain funktioniert noch in der amavisd.conf

Code:
/etc/amavisd.conf
 @local_domains_maps = ( [".$mydomain", "domain.org", "domain.com"]);


so. dann amavisd-new restarten und alles sollte gehen.
beim restart ruhig das messages logfile beobachten.

cheerios,
toskala[/code]
_________________
adopt an unanswered post
erst denken, dann posten
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum