View previous topic :: View next topic |
Author |
Message |
holla die waldfee Tux's lil' helper
Joined: 17 Sep 2003 Posts: 85
|
Posted: Thu Jun 17, 2004 10:20 am Post subject: Postfix + AMaViSd-new incl. DCC, Razor, Pyzor, Bayes |
|
|
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
- 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
|
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
|
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
|
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)
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
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.
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.
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
|
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 |
|
|
onkelfusspilz Tux's lil' helper
Joined: 26 Aug 2002 Posts: 130 Location: Germany
|
Posted: Sun Oct 17, 2004 6:46 pm Post subject: |
|
|
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 |
|
|
ts77 Apprentice
Joined: 23 Mar 2003 Posts: 200 Location: Berlin, Germany
|
Posted: Sun Oct 17, 2004 8:37 pm Post subject: |
|
|
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 |
|
|
onkelfusspilz Tux's lil' helper
Joined: 26 Aug 2002 Posts: 130 Location: Germany
|
Posted: Sun Oct 17, 2004 9:56 pm Post subject: |
|
|
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 |
|
|
ts77 Apprentice
Joined: 23 Mar 2003 Posts: 200 Location: Berlin, Germany
|
Posted: Sun Oct 17, 2004 10:05 pm Post subject: |
|
|
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 |
|
|
Haldir Guru
Joined: 27 Sep 2002 Posts: 546
|
Posted: Mon Oct 18, 2004 12:19 am Post subject: |
|
|
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 |
|
|
holla die waldfee Tux's lil' helper
Joined: 17 Sep 2003 Posts: 85
|
Posted: Mon Oct 18, 2004 12:07 pm Post subject: |
|
|
unsicher, wieso?
sehe keinen unterschied zu deiner fassung, nur das du mehr optionen auf dem 2ten smtpd entfernst.
gruß
holla |
|
Back to top |
|
|
ts77 Apprentice
Joined: 23 Mar 2003 Posts: 200 Location: Berlin, Germany
|
Posted: Mon Oct 18, 2004 12:20 pm Post subject: |
|
|
Haldir, hmm, wie kommst denn auf 127.0.0.1 von einem entfernten Rechner, welcher ja so ein offenes Relay sei? |
|
Back to top |
|
|
Haldir Guru
Joined: 27 Sep 2002 Posts: 546
|
Posted: Mon Oct 18, 2004 2:29 pm Post subject: |
|
|
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 |
|
|
stiwi Apprentice
Joined: 20 Mar 2003 Posts: 266 Location: hamburg - germany
|
Posted: Thu Nov 04, 2004 5:59 pm Post subject: |
|
|
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 |
|
|
toskala Advocate
Joined: 14 Dec 2002 Posts: 2080 Location: hamburg, germany
|
Posted: Fri Jun 10, 2005 1:29 pm Post subject: |
|
|
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 |
|
|
el*Loco Tux's lil' helper
Joined: 29 Jan 2003 Posts: 91 Location: Cologne, Germany
|
Posted: Fri Jun 10, 2005 7:59 pm Post subject: Re: [HOWTO] Postfix + AMaViSd-new incl. DCC, Razor, Pyzor, B |
|
|
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 |
|
|
moped-tobias n00b
Joined: 02 Apr 2005 Posts: 20
|
|
Back to top |
|
|
toskala Advocate
Joined: 14 Dec 2002 Posts: 2080 Location: hamburg, germany
|
Posted: Sun Jun 26, 2005 3:53 pm Post subject: |
|
|
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 |
|
|
|
|
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
|
|