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
main.cf (gekürzt)
Code: Select all
emerge postfix These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] mail-mta/postfix-2.0.19master.cf(gekürzt)Code: Select all
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, permitCode: Select all
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: Select all
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: Select all
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 KonfigurationsdateiWichtig für eine Systemweite Nutzung von Razor und Bayes (z.b. auf einem Relay-Server in einer DMZ) sind die Parameter:Code: Select all
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 yesDa 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)Code: Select all
razor_config /var/lib/amavis/.razor/razor-agent.conf bayes_path /var/lib/amavis/.spamassassin/bayes
- Razor
Um Razor zu benutzen muss man sich registrieren lassen und auf diese Konfigurationsdaten muss SpamAssassin später zugreifen können.
Code: Select all
emerge razor These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R] mail-filter/razor-2.36-r1
Um uns einiges an arbeit zu ersparen ändern wir kurz die Datei /etc/passwd.Danach wechseln wir den User zu AmavisCode: Select all
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/shDurch den BefehlCode: Select all
su - amaviswird 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.Code: Select all
razor-admin -create
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.löst dieses Problem jedoch sehr einfach.Code: Select all
echo "mail-filter/dcc ~x86" >> /etc/portage/package.keywords
Da DCC aus irgendwelchen Gründen in Abhängigkeit mit Procmail steht, was ich nicht ganz verstehe, emergen wir es ohne Dependencies.Die SpamAssassin Konfig ist anzupassen. (s.o.)Code: Select all
emerge -O dcc These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] mail-filter/dcc-1.2.28
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: Select all
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.Man kann auch auch die mindestzahl von Mails in der Datenbank herabsetzen. (siehe man Mail::SpamAssassin::Conf)Code: Select all
sa-learn --spam Mail/Mailbox/File/Whatever sa-learn --ham Mail/Mailbox/File/Whatever
Mit dem Befehlkönnt ihr unter jedem User sehen, wieviele Mails in euerer Datenbank sind.Code: Select all
sa-learn --dump magic
Fragen in den Thread
Den Rest gibts morgen!
Gruß Holla




