Mailserver mit Spamfilter

Seite 2: Einspielen

Inhaltsverzeichnis

Nun geht es ans Nachinstallieren der für den Mail-Server benötigten Software. Da einige Programme nicht auf der Heft-DVD enthalten sind, muss man sie sich von einem der OpenSuse-Mirrorserver besorgen [2]. Als Installationsquelle wählt man einen räumlich möglichst nahe gelegenen. Im Zweifel funktioniert der FTP-Server ftp.gwdg.de/pub/opensuse/distribution/SL-10.1/inst-source/, den man in Yast unter "Software/Installationsquelle wechseln" als primäre Quelle einstellt. Eine Warnung über das Fehlschlagen einer Signaturprüfung darf man ignorieren und die Nachfrage, ob man die Datei tatsächlich verwenden möchte, getrost bejahen.

Via "Software/Software installieren oder löschen" sind folgende Pakete einzuspielen: amavisd-new, clamav, cyrus-imapd, fetchmail, screen, spamassassin, sudo und razor-agents. Abhängigkeiten von anderen Programmen und Bibliotheken löst Yast automatisch auf.

Nach der Installation geht es an die Konfiguration des Mail-Servers unter "Netzwerkdienste/Mail Transfer Agent". Bei OpenSuse wird als Mail Transfer Agent (MTA) standardmäßig Postfix installiert. Da unser Beispiel den Zugang über ein dauerhaft mit dem Internet verbundenes Gateway voraussetzt, ist als Verbindungsart "Permanent" zu wählen. Um alle über den Mail-Server ein- und ausgehenden Mails auf Viren zu prüfen, aktiviert man die Virusüberprüfung durch Setzen des entsprechend beschrifteten Häkchens. Nach Betätigen von "Weiter" braucht Postfix den Namen des Mail-Relay beim Provider. T-Online-Kunden wählen hier smtprelay.t-online.de, Arcor-Kunden mail.arcor.de. Andere Kunden müssen die Server-Adressen bei ihrem Provider erfragen. Falls der Mail-Server des Providers nach Authentifizierung verlangt, gibt man den Benutzernamen für diesen Zugang und das dazugehörige Passwort unter dem Menüpunkt "Authentifikation" ein. In unserem Beispiel mit Arcor als Provider bleiben die Felder leer.

Über den Menüpunkt "Masquerading" lässt sich einstellen, wie Postfix unvollständige E-Mail-Adressen erweitern soll. Lautet der Absender einer Mail beispielsweise nur "ola", wird er zu "ola@example.com", wenn man im Feld "Domain für den Header 'Von'" die Zeichenfolge "example.com" eingibt. Wie das Umschreiben von Adressen bei Postfix im Detail funktioniert, erläutert [4]. Typischerweise senden E-Mail-Clients – auch als Mail User Agents (MUA) bezeichnet – aber eine komplette E-Mail-Adresse in der From-Zeile mit, sodass dieses Feld leer bleiben kann. Auch im Feld darunter ("Domain-Namen für die lokale Mail-Zustellung") braucht man nichts einzutragen – Yast füllt dieses Feld später automatisch, sodass keine an lokale Benutzer gerichteten Mails ins Internet geroutet werden.

Der nächste Bildschirm verlangt nach den Einstellungen für den Mail-Empfang. Als erste Option findet sich hier die Einstellung "Entfernte SMTP-Verbindungen akzeptieren", deren Aktivieren bewirkt, dass Postfix nicht nur auf lokal eingehende Verbindungsversuche reagiert, sondern auch auf von entfernten Rechnern eingehende. Das ist wichtig, damit die auf den Arbeitsplatzrechnern im LAN laufenden Mail-Clients per SMTP mit dem MTA sprechen können.

Damit derlei Kommunikation nicht gleich an der Homeserver-Firewall abprallt, muss man durch Setzen des zweiten Häkchens den SMTP-Port öffnen. Der Schutz gegenüber dem Internet bleibt durch die Router-Firewall erhalten.

Auch beim Versand prüft der in den lokalen Mail-Server eingeschleifte Virenscanner Mails auf Schädlingsbefall. Auf diesem Weg gelangen nur saubere Mails zum Empfänger.

Im Kasten "Herunterladen" befinden sich die Einstellungen für den Mail-Einsammler fetchmail. Bei fetchmail handelt es sich um ein im Hintergrund laufendes Programm, das in benutzerdefinierten Intervallen von einem oder mehreren Mail-Servern die neu eingegangene Post abholt und einem lokalen Benutzer zustellt. Im Feld "Server" trägt man den Namen des Rechners ein, von dem fetchmail die Mails abholen soll; GMX-Nutzer schreiben hier beispielsweise "pop.gmx.net".

Im Feld "Protokoll" wählt man das Protokoll das dieser Server spricht, bei Freemailer wie GMX ist das meistens POP3. Die Felder "Entfernter Benutzer" und "Passwort" nehmen die Zugangsdaten zum Zugriff auf den POP3-Server auf, "Lokaler Benutzer" die Kennung des Nutzers, an den fetchmail die abgeholten Mails zustellen soll. Weitere Postfächer, die fetchmail abfragen soll, lassen sich über den Punkt "Details" eintragen. An welchen Benutzer Mails an root weitergeleitet werden sollen, bestimmt der Eintrag im Feld darunter.

Das Feld "Auslieferungsmodus" legt fest, wie der MTA Mails an lokale Benutzer ausliefern soll. "Direkt" bedeutet, dass die Mails im persönlichen Postfach unter /var/spool/mail/ unter Umgehung aller Filtermöglichkeiten gleich im Dateisystem landen – was unserem Anliegen zur bequemen Mail-Verwaltung mit beliebigen IMAP-tauglichen Clients eher abträglich ist –, "procmail" stellt die Mail über den gleichnamigen Mail-Filter zu. Die richtige Wahl für unser Beispielszenario ist die selbst erklärende Option "An Cyrus IMAP-Server". "Beenden" schließt die Mail-Server-Konfiguration ab. Yast schlägt danach eine Einstellung vor, anhand derer Postfix entscheidet, welche Ziel-Domains in E-Mail-Adressen der MTA als lokale interpretieren soll, damit Mails an diese Adresse nicht fälschlicherweise ins Internet geroutet werden. Die Vorgabe bestätigt man einfach mit "Ja".

Beim Abholen von Mails via POP3 gehen die Zugangsdaten im Klartext über die Leitung. Viele POP3-Server, so auch die von Google Mail oder GMX, bieten jedoch die Möglichkeit, Mails über eine SSL-verschlüsselte Verbindung abzurufen, bei der die Zugangsdaten für Dritte nicht mehr ohne weiteres einsehbar sind. Leider lässt sich diese Einstellung nicht im Yast vornehmen, sondern nur direkt in der fetchmail-Konfigurationsdatei /etc/fetchmailrc. Hat man eben beispielsweise als POP3-Server "pop3.gmx.net" mit der Benutzerkennung "xyz@gmx.net" und dem Passwort "geheim" sowie als lokalen Nutzer "ola" eingetragen, hat Yast folgende Zeile in die Konfigurationsdatei geschrieben:

poll "pop3.gmx.net" protocol POP3 : user "xyz@gmx.net" there with password "geheim" is "ola" here;

Weitere Postfächer lassen sich nach dem gleichen Schema hinzufügen. Möchte man eine Verbindung mit SSL schützen, genügt es, in die betreffende Zeile vor dem abschließenden Semikolon "ssl" einzutragen. Doch damit nicht genug der Konfiguration: Der optionale Parameter "fetchall" bewirkt, dass fetchmail sämtliche Mails abholt, auch die, die der Mail-Server wegen eines vorherigen Zugriffs (etwa von einem anderen Client aus) als gelesen markiert hat. Den sollte man allerdings nicht zusammen mit "keep" einsetzen, weil fetchmail sonst bei jedem Abruf alle bisher eingesammelten E-Mails dupliziert. Weitere Konfigurationsmöglichkeiten verrät man fetchmail.

Wie oft fetchmail im Hintergrund die Mail-Server abfragen soll, lässt sich in /etc/sysconfig/fetchmail festlegen; voreingestellt sind 10 Minuten (FETCHMAIL_POLLING_INTERVAL=600).

Der Mail-Server steht durch die Router-Firewall geschützt im lokalen Netzwerk.