Der perfekte Mailserver

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
malberti
Posts: 2
Joined: 2013-09-12 22:17
 

Der perfekte Mailserver

Post by malberti »

Moin Moin,

natürlich ist mir klar das es den perfekten Mailserver nicht gibt. Trotzdem würde mich mal interessieren wie ihr eure Mailserver so konfiguriert, und vor allem was ihr für Techniken im Bezug auf Spam- und Virenabwehr sowie Mail Speicherung einsetzt.

Aus gegeben Anlass beschäftige ich mich momentan mehr mit dem Thema Mail-Server. Nach mehreren Tagen Einarbeitung habe ich nun viele Techniken und Stichpunkte notiert, die für mich in Frage kommen könnten. Leider findet man so gut wie keine Hinweise darauf welche Technik oder Techniken denn nun am effektivsten sind. Deswegen einfach mal die Frage in die Runde was ihr so von folgenden Stichpunkten haltet.

Grundlagen

- Da der Mail Server ca 100-200 User verwalten soll, wollte ich hier schon mal auf Postfix mit MySql setzen.
- Für die Mail Speicherung hatte ich eigentlich das Maildir Format nehmen wollen. Habe aber noch etwas über Speicherung in einer Datenbank gelesen ( Stichwort: dbmail). Angeblich soll das ja sehr effektiv sein, mache mir da aber trotzdem ein wenig Gedanken um die enstehende DB Last.

SPAM und Viren

Bisher hatte ich auf meinem kleinen privaten Mail Server immer clamav und spamassassin am laufen (Mit wenig Erfolg mangels Know-How)
Jetzt habe ich mehrere Techniken zu diesem Thema gefunden, und mich würde mal interessieren welche Technik oder Kombination ihr benutzt.

- ClamAV
- Spamassassin
- RBL
- Policyd-weight
- amavisd-d oder doch per procmail

Wichtig wäre mir vor allem das es möglich ist den Spamfilter User spezifisch zu konfigurieren (An-Abschalten, Score Level). Zu dem Thema habe ich eine Möglichkeit mit Spamassassin und MySQL gefunden.


Das sind jetzt mal so all Techniken die mir ins Augen gefallen sind. Gibt es sonst noch was auf das ich achten sollte? SPF etc?

Würde mich sehr über Tipps, Tricks, Meinungen etc freuen.

Gruß

malberti
ddm3ve
Moderator
Moderator
Posts: 1235
Joined: 2011-07-04 10:56
 

Re: Der perfekte Mailserver

Post by ddm3ve »

- RBL
- Policyd-weight
- ClamAV

Das filtert den meisten Spam raus, mehr habe ich bisher nicht gebraucht.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
User avatar
daemotron
Administrator
Administrator
Posts: 2641
Joined: 2004-01-21 17:44
 

Re: Der perfekte Mailserver

Post by daemotron »

Was die Speicherung von Mails angeht, halte ich Maildir immer noch für eines der sinnvollsten Ablageformate:
  1. Maildir ist ein definierter Standard, der von (fast) allen MTAs, MDAs, und MRAs unterstützt wird - so bleibt einem offen, irgendwann mal eine Komponente des Mail-Systems auszutauschen, ohne die Bestandsdaten migrieren zu müssen
  2. Maildir ist relativ unempfindlich gegen Datenverlust; wird eine Datei beschädigt, ist schlimmstenfalls nur die jeweils betroffene Mail futsch und nicht gleich der Inhalt eines ganzen Postfachs
  3. Maildir ist sehr backup-freundlich; insbesondere wenn man vorzugsweise inkrementelle oder differenzielle Backupverfahren einsetzt
Bei einer großen Anzahl an Postfächern lohnt sich die Nutzer-Virtualisierung in einer Datenbank oder einem LDAP-Verzeichnis. Werden die Nutzerdaten exklusiv für den Maildienst benötigt, dann reicht es, die Nutzerdaten in einer relationalen Datenbank (MySQL, MariaDB, PostgreSQL oder ggf. sogar SQLite) abzulegen - das ist unkomplizierter zu konfigurieren als LDAP; letzteres bietet sich eher an, wenn die Credentials noch für andere Anwendungen oder Dienste genutzt werden sollen. LDAP ist aber i. d. R. deutlich performanter als ein RDBMS, insbesondere wenn es um die Überprüfung von Credentials geht. Gerade beim Einsatz von MySQL oder MariaDB wäre auf jeden Fall zu beachten, dass man ein vernünftiges Datenbankdesign nutzt - z. B. sollte man darauf achten, möglichst auf nicht indizierbare und v. a. nicht Cache-fähige Datentypen wie TEXT oder BLOB zu verzichten, da ein gut beschäftigter Mailserver schon eine gewaltige Menge an Abfragen produziert.

Auch mit der Konfiguration des MTAs kann man dazu beitragen, den DB-Server etwas zu entlasten - nämlich indem man ihn so spät wie möglich bei der Datenbank anfragen lässt und andere Prüfungen vorzieht. Wenn sich z. B. die Domains nicht sehr häufig ändern, könnte man diese auch in eine Hash-Datei schreiben lassen.

Was Spambekämpfung angeht, haben sich bei mir vor allem selbst geführte White- und Blacklists in Verbindung mit RBLs bewährt (Policyd-Weight fragt im Prinzip auch nur mehrere RBLs ab und gewichtet die Abfrageergebnisse; das gibt weniger false positives). SpamAssassin und ClamAV (in Verbindung mit Freshclam) können sehr wirksam sein, wenn sie bereits im Annahmeprozess eingesetzt werden (ob Postfix das kann, weiß ich nicht; mit Exim geht es auf jeden Fall), also bevor der Mailserver dem einliefernden MTA mitteilt, ob er die Mail annimmt oder nicht. Ganz dickes ABER:
  1. Sowohl ClamAV als auch SpamAssassin sind hochgradig ressourcenintensive Dienste. Wenn ein Mailsystem sie einsetzt, ist es anfällig gegen DoS-Angriffe (ClamAV, indem man das System mit vielen Mails mit komprimierten Anhängen füttert; für SpamAssassin reichen da schon viele Mails mit längeren Texten)
  2. Beide Dienste "lesen" den Inhalt einer Mail; daher sollten sie nicht "werkseitig" aktiviert sein, sondern jeder User der Aktivierung explizit zustimmen (z. B. indem er sie selbst aktiviert, mit entsprechendem Disclaimer)
Für hochgradig interessant halte ich noch OpenBSD's spamd-Implementierung; ich habe jedoch keinen Überblick, ob es eine Linux-Implementierung gibt bzw. einen vergleichbaren Daemon für Linux-Systeme.

Die Strategie bei jedem Mailsystem sollte also sein, möglichst früh im Annahmeprozess mit möglichst "billigen" Prüfungen eine Entscheidung herbeizuführen, ob die Mail überhaupt angenommen werden soll oder nicht. Hat man ein definitiv spammendes Netzsegment identifiziert, kann man es sogar zeitweise per Paketfilter vom eigenen Port 25 fernhalten; das ist eine der billigsten Prüfungen (in Bezug auf Rechnerleistung) und kann einen volllaufenden MTA ungemein entlasten, bedeutet aber in der Regel für den Admin einen ziemlichen Zusatzaufwand (da sollte man von Automatismen Abstand nehmen, um nicht versehentlich einen legitimen Sender auszusperren). Im Idealfall verbleiben nach dieser Selektion nur noch wenige "legitime" Mails, für die dann die Datenbank (und ggf. ein Content-Scanner) bemüht werden.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time