Inhaltsverzeichnis
E-Mail Laborübung
Einleitung
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.
Mailserver einrichten
Domain-Name bekannt machen
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.
Lokalen Test-User einrichten
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.
Pakete installieren
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.
- Netztype → lokaler Server (Option: „nur lokal“)
- Domäne → Rechnername (ansonsten werden die lokalen Nutzer nicht erkannt)
Optionale Pakete: u.a. dovecot als IMAP-Server
apt-get install dovecot-common
Anpassen der postfix-Konfiguration
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.
- mittels des Befehls
postconf
- direkt in der Datei
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
dovecot-Konfiguration (POP3 bzw. IMAP)
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
Manueller E-Mail Versand
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 .
E-Mail-Empfang lokal
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.
E-Mail-Empfang per Client (Thunderbird)
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).
Vertiefende Aufgaben
Mail-Versand über zwei oder mehrere Server hinweg
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
Alias Unterstützung
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
Weiterführende Informationen
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.
Ergänzungen