Es soll ein Mailserver eingerichtet werden auf den ein Testuser (testuser
) lokal und remote über Thunderbird (per IMAP) zugreifen kann.
Der Mail-Server ist auf einer virtuellen Maschinen einzurichten.
HINWEIS: Wenn mit virtuellen Maschinen gearbeitet wird, dann sind die notwendigen Anpassungen auf jeden Fall zu berücksichtigen. Ansonsten wird die Anwendung u.U. nicht funktionieren.
Das Ubuntu Postfix Howto dient als Vorlage und erklärt die einzelnen Schritte, um einen postfix
-basierten Mailserver zu konfigurieren. Im Folgenden werden diese in deutsch in leichter Abwandlung erklärt.
Im folgenden wird davon ausgegangen, dass KEIN DNS genutzt wird. Damit das System ohne DNS auskommt werden in der /etc/hosts
die benötigten FQDN1) auf dem Mailserver und den eingesetzten Mailclients eingerichtet.
Damit eine E-Mail versendet werden kann, wird ein Empfänger benötigt. Dieser wird lokal auf dem Mailserver als normaler Benutzer angelegt. Hierdurch kann dieser Nutzer bereits prinzipiell E-Mails empfangen.
Mit dem folgenden Befehl kann ein Testuser testuser
eingerichtet werden. Für diesen wird ein neuer Home-Ordner erzeugt -m
und die Shell vorgegeben. Im Anschluss muss diesem User noch ein Passwort zugewiesen werden.
useradd -m -s /bin/bash testuser passwd testuser
Damit kann der User testuser@MAILSERVER
mit dem vergebenen Passwort auf sein Postfach zugreifen.
Benötigte Pakete:
apt-get install postfix mailutils
Während der Installation von postfix
wird der Netztype abgefragt und in welcher Domäne der postfix
-Server betrieben werden soll. Hier sind folgende Optionen auszuwählen.
Optionale Pakete: u.a. dovecot als IMAP-Server
apt-get install dovecot-common
Die postfix
-Konfiguration befindet sich in /etc/postfix/main.cf
. Diese Datei ist an die Gegebenheiten anzupassen. Es gibt zwei Möglichkeiten dies zu tun.
postconf
Wenn die zweite Variante gewählt wird, sollte zunächst eine Sicherung der main.cf
gemacht werden, damit die Änderungen rückgängig gemacht werden können.
Die folgenden Parameter sind an das eigene System anzupassen:
# Deaktivieren von procmail, falls dies versehentlich während der Installation passiert ist; Optional mailbox_command = # FQDN des Mailservers einstellen; hier kann zu Testzwecken der Rechnername verwendet werden, wenn keine Verbindung zum Internet besteht; hier: MAILSERVERNAME mydestination = MAILSERVERNAME, localhost.localdomain, localhost # Das Netz, in dem der Mailserver arbeitet; hier: 192.168.0.0/24 mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128 # Aktivieren der Schnittstellen, auf denen der Mailserver lauschen soll; hier: alle inet_interfaces = all # Aktivieren der Protokolle auf denen der Mailserver reagieren soll; hier: alle inet_protocols = all
Mit dem folgenden Befehl kann der postfix
-Daemon neu gestartet werden bzw. der Status abgefragt werden.
postfix status postfix -c /PFADZURCONFIG service postfix start service postfix restart service dovecot restart
Für die Kommunikation mit dem Server über die POP3 bzw. IMAP-Schnittstellen wird das Programm dovecot
verwendet.
Das folgende Beispiel zeigt die zu ändernden Einträge. Alle anderen Parameter können zunächst unverändert bleiben:
## /etc/dovecot/dovecot.conf # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s # mbox mail_location = mbox:~/mail:INBOX=/var/mail/%u #oder # maildir mail_location = maildir:~/Maildir
Man kann „zu Fuß“ eine E-Mail per telnet oder wie hier gezeigt mittels netcat
versenden. Hierbei werden die einzelnen Bestandteile Schritt für Schritt durchlaufen. Der Server antwortet auf jede Eingabe.
netcat MailServerName 25 ehlo yourdomain.com mail from: root@yourdomain.com rcpt to: testuser@MAILSERVERNAME data subject: BETREFF BODY-TEXT .
Die E-Mail wurde bereits an den Testuser versendet (vgl. neuer lokaler Nutzer). Um die E-Mail zu lesen können kann der Befehl mail
verwendet werden. Hinweis: Dies muss selbstverständlich als User testuser
ausgeführt werden, da er der Empfänger der E-Mail war. Diese Nutzer befindet sich ja als lokaler User direkt auf dem Mailserver.
Zunächst ist ein neues Konto im Thunderbird ein zu richten. Hierbei muss die Domain mit dem Computername übereinstimmen, da im vorliegenden Szenario OHNE DNS gearbeitet wird.
testuser@MAILSERVERNAME
Der Mailclient Thunderbird akzeptiert diese Vorgehensweise nur widerwillig. Über eine manuelle Konfiguration kann er allerdings dennoch „überredet“ werden. Um den Einrichtungsassistenten überspringen zu können, müssen manuell alle Parameter eingerichtet werden (s. nächste Abbildung).
2-3 Schüler könnten sich gegenseitig E-Mails senden über die jeweils selbst eingerichteten MTAs, hierzu sind entsprechende Einträge in die /etc/hosts
der jeweiligen Mail-Server vorzunehmen.
192.168.0.<Platznummer> email-server-a.de 192.168.0.<Platznummer> email-server-b.de 192.168.0.<Platznummer> email-server-c.de
Mit dem Konstrukt eines Alias
2), können weitere E-Mail-Adresse für ein Postfach eingerichtet werden.
Unter Linux werden diese Alias zentral in der Datei /etc/aliases
verwaltet.
Wichtig: Nach jeder Bearbeitung von /etc/aliases
muss der folgende Befehl ausgeführt werden, damit die Änderungen wirksam werden:
sudo newaliases
Hier ein Beispiel für die Anlage neuer Aliases:
# /etc/aliases # Mails an root werden sowohl an die lokalen Benutzer user1 und user2 # als auch an root zugestellt. root: user1,user2, \root # lokaler Benutzer "user1" an eine andere E-Mail Adresse "user1@test.de" user1: user1@test.de
Mit dem folgenden Befehl lassen sich die Mail-Informationen zu einer Domain ermitteln (vgl. auch nslookup):
Hinweis: Der DOMAINNAME ist als FQDN
anzugeben.
dig mx DOMAINNAME
Mehr Informationen zum dig
-Befehl finden sich hier.