Seite 20-1 20 Mailserver 20Mailserver... 1 20.1 Einführung... 1 20.1.1 Feste IP... 1 20.1.2 Einwahlverbindung... 2 20.2 Protokolle... 2 20.3 Der Weg einer E-Mail... 3 20.4 Einrichtung eines lokalen Mailservers... 3 20.5 Benutzer anlegen... 4 20.6 Programme installieren... 4 20.7 Programme konfigurieren...4 20.7.1 Qpopper... 4 20.7.2 Fetchmail... 4 20.7.3 Postfix...5 20.7.3.1 Relayhost...6 20.7.3.2 Mails direkt an externe Adressen umleiten...7 20.8 Testen und Benutzen... 8 20.9 Firewall-Einstellungen... 8 20.10 Ergänzungen zur Benutzung eines relay-hosts... 9 20.11 Aufgaben... 9 20.12 Fax und Mail...10 Das Einrichten eines E-Mailservers zählt im Gegensatz zum Einrichten eines Webservers oder eines PDCs zu den größeren Herausforderungen. Seit der Einführung von Postfix als Nachfolger von Sendmail ist diese Aufgabe jedoch deutlich vereinfacht worden. 20.1 Einführung Bevor ein Mailserver eingerichtet wird, muss geklärt sein, auf welchem Weg die Mails zu unserer Domäne gelangen sollen. 20.1.1 Feste IP Wer über eine feste IP verfügt kann (muss aber nicht!) einen Mailserver einrichten, der immer erreichbar ist, also jederzeit Mails entgegennehmen kann. Hierzu muss im DNS-Server der Domäne ein sogenannter MX-record definiert sein. Es muss also ein
Seite 20-2 Computer festgelegt werden, der die Mails entgegennimmt. In der Zonendatei fügt man dazu folgende Zeilen ein: bbst.clp. IN MX 10 mail.bbst.clp. bbst.clp. IN MX 20 mail2.bbst.de In weiteren Konfigurationszeilen muss für diese beiden Computer noch ein A-record gesetzt werden, damit der Name auch tatsächlich aufgelöst werden kann. Interessant ist, dass in unserem Beispiel zwei Nameserver angegeben wurden. Tatsächlich können beliebig viele Nameserver benannt werden, die Priorisierung erfolgt über die nachfolgende Zahl. 20.1.2 Einwahlverbindung Es ist sicherlich möglich, über DynDNS einen eigenen Mailserver mit dem Internet zu verbinden. Falls dieser aber nicht erreichbar sein sollte, so wartet der Sender eine wachsende Zeitperiode bis zum jeweils nächsten Sendeversuch. Wichtig ist, dass dabei in der Regel keine neue Namensauflösung erfolgt. Die Mail kann also auch beim falschen Empfänger landen, falls sich die eigene IP inzwischen geändert hat! Von dieser Variante ist daher abzuraten. Wer über einen Provider eine Domäne reserviert hat, bekommt mitunter einen Relayhost angeboten 1. Ein Relayhost ist ein Zwischenspeicher sowohl für ausgehende als auch für eingehende Mails. Die Mails werden in sinnvollen Zeitabständen vom Server abgeholt und zugestellt. Wichtig ist dabei, dass ein Multidrop eingerichtet werden kann. Dabei werden alle eingehenden Mails auf dem Relayhost in einem Postfach abgelegt. Das Postfach wird dann vom lokalen Mailserver geleert und die Mails den lokalen Empfängern zugestellt. Es ist somit möglich, beliebig viele Mail-Accounts anzulegen. 20.2 Protokolle smtp einfaches Protokoll zum Verschicken von Mails pop Protokoll zum Empfangen von Mails. Die Mails werden dabei in der Regel vom Server heruntergeladen und erst dann zum Lesen angeboten. 1 Zum Beispiel www.domaingo.de (ab 2,99 Euro pro Monat) oder auch manche FreeMailer.
Seite 20-3 imap Protokoll zum Empfangen von Mails. Die Mails bleiben auf dem Server! Das Protokoll erfordert also eine permanente Verbindung zum Internet. Ein Vorteil ist die Verfügbarkeit der Mails auf verschiedenen Computern. weitere Da sowohl bei pop als auch bei imap die Passworte unverschlüsselt verschickt werden (und diese oftmals mit den Account-Passwörtern übereinstimmen) ist die Verwendung von sicheren Protokollen wie zum Beispiel imaps oder pops zu empfehlen. 20.3 Der Weg einer E-Mail 20.4 Einrichtung eines lokalen Mailservers Zu einem Mailserver gehören drei Komponenten: Programm zum Abholen der E-Mails von entfernten Servern: Fetchmail, Programm zum Verteilen der Mails aus den Postfächern an die einzelnen User: Qpopper, Programm, das E-Mails versenden kann oder auch lokal verteilt: Postfix. Fetchmail holt E-Mails von entfernten POP3-Servern ab und legt die Mails in den Standard-Mailordnern der Benutzer ab (also ein POP3-Client ). Qpopper ist ein POP3-Server, der es den Clients erlaubt, die E-Mails von unserem Mail-Server abzuholen. Postfix ist der SMTP-Server, der es den Clients erlaubt, E-Mails entweder lokal oder übers Internet zu versenden. Die Hauptaufgabe liegt in der Verknüpfung dieser drei Komponenten zu einem funktionierenden System.
Seite 20-4 20.5 Benutzer anlegen Zuerst müssen alle Benutzer entweder mit YaST oder mit dem Konsolen-Befehl useradd angelegt werden. 20.6 Programme installieren Bei einer Standardinstallation von SuSE sind normalerweise die Programme Fetchmail und Postfix schon installiert. Lediglich Qpopper fehlt. Mit Hilfe von YaST kann man schnell fehlende Komponenten nachinstallieren. 20.7 Programme konfigurieren Hier gehen wir nicht nach Schema vor, sondern beginnen mit dem leichtesten Programm. 20.7.1 Qpopper (Wird im Unterricht nicht benötigt!) Qpopper muss nicht konfiguriert werden. Bedingung zur reibungslosen Funktion ist nur der Standard-Pfad zu den Mail-Ordnern: /var/spool/mail. Nach der Installation muss der Server /etc/xinetd.d/qpopper aktiviert werden. Das geht entweder manuell über direktes Editieren der Datei oder über YaST/Netzwerkdienste/Netzwerkdienste (inetd). Hier muss der Dienst popper (/usr/sbin/popper) aktiviert werden. Eine weitere Konfiguration ist nicht erforderlich. 20.7.2 Fetchmail Da wir bei unseren Übungen in der Schule keine externen POP-Konten abfragen, muss Fetchmail hier auch nicht konfiguriert werden. Die Konfiguration von Fetchmail ist auch nicht besonders aufregend: Im Verzeichnis /root muss eine Datei mit Namen.fetchmailrc erstellt werden, die folgenden Inhalt hat:
Seite 20-5 poll pop.gmx.de with proto POP3 user 'horst@gmx.de' there with password 'xxxxxx' is 'benutzer1' here user 'kurt@gmx.de' there with password 'xxxxxx' is 'benutzer2' here poll pop.onlinehome.de with proto POP3 user 'hans.wurst@xxxx.de' there with password 'xxxxxx' is 'benutzer3' here user 'trude@zzzz.de' there with password 'xxxxxx' is 'benutzer4' here Die Einträge sollten selbsterklärend sein. (Als Beispiel GMX und 1&1) Baut der Mail-Server die Verbindung zum Internet selbst auf, ist der Aufruf von Fetchmail als Benutzer Root aus Sicherheitsgründen nicht empfehlenswert. In unserem Beispiel steht der Server hinter einem Router mit Firewall. Zum Test kann man Fetchmail mit der Option k starten, um E-Mails nach dem Download auf dem Server zu belassen. Um Fetchmail als Dienst zu starten, der alle 30 Minuten (1800 s) die E-Mails abholt, gibt man folgendes ein: fetchmail d 1800 Fetchmail als Dienst beenden: fetchmail -q Ebenso ist es möglich, Fetchmail in die crontab einzutragen. (/etc/crontab) 20.7.3 Postfix Um Postfix zu nutzen, müssen folgende Dateien konfiguriert werden: main.cfg (Haupt-Konfigurationsdatei) smtp_auth* (SMTP-Authentifizierung, muss noch erstellt werden) sender_canonical* (lokaler Benutzer zu E-Mail-Adresse) * nicht im Unterricht! Postfix greift auf so genannte Lookup-Tables zu. Das sind Datenbanken, die nicht direkt editiert werden können. Allerdings liegen die Informationen in einer Textdatei vor. Diese wird bearbeitet und dann automatisch von Postfix in die Lookup-Table übersetzt. Folgende Parameter in der main.cf sind wichtig:
Seite 20-6 command_directory = /usr/sbin daemon_directory = /usr/lib/postfix myhostname = rechnername.local sendmail_path = /usr/sbin/sendmail mailq_path = /usr/bin/mailq inet_interfaces = 127.0.0.1 192.168.0.x (localhost / IP des Rechners) Bei der Bearbeitung der main.cf ist zu beachten, dass einige Variablen eventuell mehrfach in der Konfigurationsdatei gesetzt werden. Es wird aber immer nur der letzte Eintrag verwendet! Der Parameter mydomain muss nicht gesetzt werden, sofern myhostname gesetzt ist. Der Domänenname wird dann aus dem Hostname ermittelt. 20.7.3.1 Relayhost (wird im Unterricht nicht benötigt!) Zusätzlich muss in der main.cf folgendes noch eingetragen werden: #SMTP Auth #SMTP mit SASL-Authentifikation verwenden smtp_sasl_auth_enable = yes #Die Paßwörter stehen in der Datei /etc/postfix/smtp_auth smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth #Zusatz-Optionen: Keine anonyme-anmeldung verwenden smtp_sasl_security_options = noanonymous #Den Relayhost (der Server der unsere Emails annehmen soll) relayhost = auth.mail.onlinehome.de Damit Postfix die Mails an einen Relayhost übergeben kann, muss die Zugangskennung zu diesem Server in einer Konfigurationsdatei abgespeichert werden. Die Datei smtp_auth legt man mit einem Editor an und sollte ungefähr so aussehen: # Syntax: # SMTP-Server Benutzer:Passwort auth.mail.onlinehome.de ccxxxxxxxx:xxxxxx In unserem Fall wird bei 1&1 nicht der Benutzername, sondern die Benutzernummer eingetragen. Damit Postfix die Datei auch versteht, muss diese noch ins hash- Format gewandelt werden: [root]/etc/postfix# postmap smtp_auth Diese Einstellungen erlauben eine Authentifizierung an einem SMTP-Server.
Seite 20-7 Fast alle Anbieter haben von SMTP after POP auf dieses Verfahren umgestellt, damit man den Server nicht als Spam-Verteiler nutzen kann. Es werden dabei also zuerst die Mails versandt, bevor nach neuen Mails gesehen wird. Der SMTP-Relay von GMX scheint bei manchen Providern nicht sehr beliebt zu sein. Deshalb kann es vorkommen, dass gesendete E-Mails in den Ordner <Spam> gespeichert werden. T-Online akzeptiert diese Mails gar nicht. Deshalb ist es notwendig, als RELAY_HOST den GMX-Server zu vermeiden. Ergänzungen hierzu in Kapitel 20.10 20.7.3.2 Mails direkt an externe Adressen umleiten Diese Datei übernimmt die Zuordnung lokaler Benutzer zu externen Mail-Adressen. In der Lookup-Table sender_canonical sollte folgendes eingetragen sein. (Da wir bei unseren Übungen in der Schule nicht auf externe Mailadressen zugreifen, entfällt auch hier die Konfiguration!) # The sender_canonical_maps parameter specifies optional address # mapping lookup tables for envelope and header SENDER addresses. # # For example, you want to rewrite the SENDER address user@ugly.domain # to user@pretty.domain, while still being able to send mail to the # RECIPIENT address user@ugly.domain. # See man 5 canonical, /etc/postfix/canonical or # /etc/postfix/sample-canonical.cf for more details # benutzer1 horst@gmx.de benutzer2 kurt@gmx.de benutzer3 hans.wurst@xxxx.de benutzer4 trude@zzzz.de Auch diese Datei muss ins Hash-Format gewandelt werden: [root]/etc/postfix# postmap sender_canonical Wenn alle Eintragungen überprüft wurden, muss Postfix neu gestartet werden.
Seite 20-8 rcpostfix restart 20.8 Testen und Benutzen Soll eine Mail an einen lokalen User verschickt werden, so muss dieser natürlich auch als Benutzer eingerichtet worden sein (zum Beispiel mit YaST oder über den Konsolenbefehl useradd). Das Verschicken einer Mail an eine interne oder externe Adresse geht schnell und einfach über Konsole mit dem mail-befehl. Zum Beispiel wird eine lokale Mail mit mail uschi verschickt. Dabei wird ein interaktiver Dialog gestartet wobei den Mailtext eingeben kann. Ein Punkt (in einer neuen Zeile) beendet die Eingabe und sorgt für den Versand der Mail. Eine externe Mail wird entsprechend mit mail mail@berndt-ol.de verschickt. Eine Mail, die an einen lokalen Benutzer gerichtet ist, wird zunächst im Verzeichnis /var/spool/mail abgespeichert. Die Dateirechte sind dabei bereits auf den Benutzer bezogen, so dass jeder nur auf seine eigenen Mails in diesem Verzeichnis zugreifen kann. Dann kann zum Beispiel mit KMail auf diese Mails zugegriffen werden. Dazu muss bei der Einrichtung von KMail eingestellt werden, dass das lokale Postfach regelmäßig auf neue Mails überprüft werden muss. 20.9 Firewall-Einstellungen Die in früheren Distributionen mitgelieferte SuSE Personal Firewall muss unbedingt deaktiviert werden. Baut der Server die Verbindung ins Internet auf, sollte die SuSE Firewall2 aktiviert werden. Dabei ist zu beachten, dass die Ports 25 und 110 nur am lokalen Netzwerk-Interface freigeschaltet werden, um zu verhindern, dass der SMTP-Server vom Internet aus erreichbar ist. Steht der Server hinter einem Router mit Firewall, benötigt man am Server keine Firewall. Wenn ja, unbedingt die entsprechenden Ports für Mail freischalten. Gemeint sind natürlich auch hier die Ports 25 und 110.
Seite 20-9 Sollten noch andere Dienste verwendet werden, muss man die entsprechenden Ports ebenfalls freischalten. Diese Einstellungen werden mit YaST vorgenommen: Sicherheit und Benutzer/Firewall. Einstellungen noch einmal überprüfen und den Mail-Server in Betrieb nehmen. 20.10 Ergänzungen zur Benutzung eines relay-hosts Sollte als Relay-Host der SMTP-Server von GMX oder eines anderen Freemail- Anbieters benutzt werden, kann man das mit einem kleinen Trick realisieren. Man registriert eine E-Mail-Adresse z.b. uschi@gmx.de. Mit der zugehörigen Kundennummer wird der Relay-Host in der Datei smtp_auth und main.cf konfiguriert. Soweit nichts neues (siehe Postfix-Konfiguration). Alle Clients im Netzwerk benutzen dann in ihrem Mailprogramm die Adresse uschi@gmx.de als E- Mail-Adresse und geben ihre eigene Adresse als Antwort-Adresse an. Somit verlassen alle Mails das lokale Netzwerk über einen gültigen Account, können aber anhand der verschiedenen Antwort-Adressen unterschieden werden. Klickt der Empfänger der Mail auf Antworten, wird automatisch die zuvor am Client eingestellte Antwort-Adresse benutzt. 20.11 Aufgaben 1) Richte den Mailserver wie oben beschrieben ein, so dass Dein Nachbar eine Mail einen einen User auf Deinem Rechner schicken kann. Probiere beide Programme zum Mailversenden aus (auf der Konsole: mail und unter KDE KMail) 2) Was ist AMAVIS? 3) Richte AMAVIS auf Deinem Mailserver ein und teste den Dienst mit einem Testvirus. 4) Was ist Groupware (zum Beispiel egroupware)?
Seite 20-10 5) Untersuche den Header einer Email. Welche Informationen sind hier enthalten? Leite eine Mail an eine andere Adresse weiter. Untersuche den Header erneut. 20.12 Fax und Mail Da wohl auch in absehbarer Zeit Email das gute alte Fax nicht ablösen wird, wäre eine Verknüpfung von Fax und Email wünschenswert. Sicherlich kann man auch über ein Modem ein Fax verschicken, wer aber nur eine DSL-Verbindung hat, wird sich wohl kaum ein Modem an den PC anzuschließen, um sich dann täglich vor Dialern zu fürchten. Das Versenden und Empfangen von Faxen via Email ist möglich. http://www.efax.com bietet eine Umleitung von Fax auf Email und umgekehrt, verlangt dafür aber auch über 11 /Monat, http://www.schottenparadies.de/kostenlos/freefax.htm kostenlos faxen und Faxe empfangen, aber der Sender zahlt eine Gebühr (das kann auch gut sein, wenn man von Werbefaxen verschont bleiben will), das versendete Fax wird aber wohl mit Werbung verziert http://www.directbox.com/ nicht kostenlos, wohl aber günstig www.faxen-online.de kostenlos versenden aber mit Werbung http://www.schottenparadies.de/kostenlos/gratis-fax.htm kostenlos versenden aber mit Werbung Einfacher und wohl auch sicherer ist die Benutzung des Unified Messaging, das in der Regel vom Provider angeboten (z.b. Bei 1und1 im Tarif enthalten) wird.