Postfix und Cyrus

Installation und Konfiguration eines Mailservers


1 Einleitung

Dieses Dokument beschreibt eine Schritt für Schritt Anleitung zur Installation und Konfiguration eines Mailservers auf Grundlage von Postfix und Cyrus. Für den Betrieb des Mailservers wurde als Betriebssystem SuSE Linux Enterprise Server gewählt. Dieses Betriebssystem ist schlank, kostenlos und sehr gut als Serverbetriebssystem geeignet.


1.1 Scripte und Konfigurationsdateien

Zum einfacheren Verständnis der Scripte und Konfigurationsdateien, die in dieser Dokumentation aufgeführt werden, wird nun einiges allgemeine erläutert.
1. (Textstellen, die deutlich rot hervorgehoben und Fett dargestellt sind müssen durch ihre Daten ersetzt werden. Sämtlicher andere Text und Zeichen müssen genau so übernommen werden, wie diese hier dargestellt werden. Sollte schwarzer Text nicht exakt übernommen werden, können Fehler auftreten die ggf. den Fehlerfreien Betrieb stören bzw. verhindern.)
2. Zeilen die mit einer Raute eingeleitet, oder mit einer Raute fortgesetzt werden sind Kommentare, und müssen nicht übernommen werden. Sieh haben einerlei Funktion und dienen lediglich der Information.
3. Werden Konfigurationsdateien geändert oder editiert, wird generell ein Backup erstellt und dieses bearbeitet. Es wird niemals die Originaldatei editiert! Das Backup sollte nicht von der korrekten und Fehlerfreien Eingabe der Konfigurationen abhalten, da dies die aktive Konfiguration darstellt. Sollten schwerwiegende Fehler beim abtippen, kopieren oder ausführen dieser Dokumentation gemacht werden, kann dies die Stabilität und/oder die Fehlerfreie Ausführung des Systems beeinträchtigen. Generell sollte beim editieren jeglicher Konfigurationsdateien im System Vorsicht geboten sein.
4. Generell wird davon ausgegangen das alle Befehle, Scripte und Bearbeitungen als „root“-Benutzer getätigt werden. Nutzen sie einen anderen Nutzer, kann es ggf. Fehler bei dem Ausführen der Arbeit geben bzw. kann es zu Einschränkungen kommen. Achten Sie darauf, das root alles darf, auch das System zerstören!


2 Installation

Im folgenden wird dir Installation aller Pakete beschrieben, die für den Fehlerfreien Betrieb notwendig sind.

2.1 Postfix

Da auf jedem SLES Betriebssystem Postfix bereits vorinstalliert ist muss dieses Paket nicht separat installiert werden. Es kann die Version die bereits vorhanden ist genutzt werden.

2.2 Cyrus

Die Cyrus-Pakete sind zum Teil bereits enthalten, müssen teilweise aber noch nachinstalliert werden. Im Folgenden wird die Installation ALLER Pakete erläutert. Hierbei können bei bereits installierten Paketen Fehler auftreten, da diese bereits existieren. Diese Fehler sind zu ignorieren. Die Installation wird mit YAsT vorgenommen, allerdings ohne CLI-Interface.

Hier der Befehl, der die Installation aller vier Cyrus-Pakete auslöst:

yast –i cyrus-imapd cyrus-sasl cyrus-sasl-saslauthd perl-Cyrus-IMAP perl-Cyrus-SIEVE-managesieve


3 Konfiguration

Im Folgenden wird beschrieben, wir die Dienste und das System für einen reibungslosen Betrieb zu konfigurieren sind.

3.1 Postfix

Für die Konfiguration von Postfix muss lediglich die main.cf angepasst warden die sich in /etc/postfix befindet. Für eine Standard-Konfiguration kann folgendes Listing der Variablen übernommen werden. Es sind lediglich die rot markierten Eintragungen auf die eigene Umgebung anzupassen.

#
# -----------------------------------------------------------------------
# Global Postfix configuration file. This file lists only a subset
# of all parameters. For the syntax, and for a complete parameter
# list, see the postconf(5) manual page (command: "man 5 postconf").
# http://www.postfix.org/.
# -----------------------------------------------------------------------
#
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
#myhostname = HOSTNAME.DOMAIN.TLD
myhostname = Stef-SLES10.stefnet.de
#mydomain = DOMAIN.TLD
mydomain = stefnet.de
#myorigin = $myhostname                                                            
myorigin = $mydomain
#Netz muss angepasst werden
mynetworks = 10.6.7.0/28, 127.0.0./8
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES
inet_protocols = all
biff = no


Bevor diese Datei nun editiert wird, wird ein Backup erstellt.

cp /etc/postfix/main.cf /etc/postfix/main.cf.org


Die Konfigurationsdatei kann über folgenden Befehl editiert warden

vi /etc/postfix/main.cf


3.2 Cyrus

Für die Konfiguration des Cyrus Dienstes müssen mehrere Konfigurationsdateien editiert werden. Auch hier wird von jeder Datei die editiert wird vorher ein Backup erstellt


3.2.1 sasl_passwd

In diese Datei müssen alle Nutzer eingetragen werden, die später die Maildienste nutzen können sollen. Da die Einträge nur an die Datei unten angehängt werden müssen, wird dies über einen Pipe-Befehl ausgeführt. Hierbei muss mydomain.tld durch den Inhalt der Variable mydomain aus /etc/postfix/main.cf ersetzt werden. Nach einem Leerzeichen kommt der Nutzername, ein Doppelpunkt, gefolgt von dem Passwort als Plain-text. Dieser Befehl muss für jeden Benutzer, der später zugriff haben soll einzeln ausgeführt werden.


echo “mydomain.tld user:passwort” >> sasl_passwd


3.2.2 imapd.conf

Diese Konfigurationsdatei ist dem IMAP-Dienst zugeteilt und konfiguriert diesen entsprechend. In der Standard Konfiguration kann das Folgende Listing übernommen werden. Der servername entspricht hier dem Inhalt der Variable myhostname aus der Datei /etc/postfix/main.cf.


Backup ersterstellen

cp /etc/imapd.conf /etc/imapd.conf.org


imapd.conf

postmaster: postmaster
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
sasl_mech_list: PLAIN
# folgende Zeile entsprechend anpassen
servername: Stef-SLES10.stefnet.de
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
dracinterval: 0
drachost: localhost
sasl_pwcheck_method: saslauthd
sievedir: /usr/sieve
sendmail: /usr/sbin/sendmail
sieve_maxscriptsize: 32
sieve_maxscripts: 5
#unixhierarchysep: yes
#tls_ca_file: /etc/certs/cert.pem
#tls_cert_file: /etc/certs/cert.pem
#tls_key_file: /etc/certs/key.pem

\\ 

3.2.3 Ordner erstellen

Um Fehler von vornherein auszuschließen, müssen ggf. noch einige Ordner in /var angelegt werden. Die Berechtigung muss anschließend für den Nutzer cyrus und der Gruppe mail angepasst werden.

cd /var
mkdir imap
cd imap
mkdir db/ log/ msg/ proc/ ptclient/ quota/ socket/ sync/ user/
chown –R cyrus:mail /var/imap


=== 3.3 Betriebssystem 3.3.1 Gruppen bearbeiten Damit alle Dienste fehlerfrei starten und die Nutzer Zugriff bekommen können, müssen neue Benutzer noch in Gruppen hinzugefügt werden.

usermod root –A maildrop,[neue_User]    # Hier werden weitere user gelistet
usermod cyrus –A mail
usermod postfix –A mail


3.3.2 Dienste Starten

Nun werden die Dienste gestartet.

rccyrus restart && rcpostfix restart && rcsaslauthd restart


4 Fehlersuche

Sollte der Dienst nicht in vollem Funktionsumfang starten, werden hier drei Möglichkeiten beschrieben, wie Fehler gefunden werden können.


4.1 Logdateien

Generell werden alle relevanten Aktionen und Ereignisse in der Logdatei in /var/log/messages protokolliert. Über den folgenden Befehl kann in einem zweiten Terminal eine Logdatei ausgegeben und automatisch aktualisiert werden, sobald sich dieses ändert.

tail –f /var/log/messages


4.2 Integrierte Mailfunktion

Über die integrierte mail-Funktion von SuSE können E-Mails versendet und empfangen bzw. abgerufen werden. Diese Funktion kann auch genutzt werden um den eben aufgesetzten Mailserver zu testen.


4.2.1 E-Mails versenden

Im Folgenden wird aufgelistet, wie diese Funktion genutzt werden kann.

mail nutzer@mydomail.tld     # Mail-Adresse des Empfängers
subject: BETREFF             # Betreff der Mail einfügen
IHR TEXT                     # Text der Mail einfügen
.                  # [Punkt] + Enter beendet die Eingabe und versendet die Mail
EOT                          # Ausgabe zur Bestätigung


4.2.2 E-Mails abrufen

Hier wird beschrieben, wie die elektronische Post abgerufen werden kann

Mail                      # Hierüber wird der Mailclient aufgerufen


4.2.3 Script

Sollte der Test mehrfach ausgeführt werden müssen, besteht die Möglichkeit den Versand der Testmail auch zu automatisieren. Im Folgenden wird ein Beispiel gezeigt, wie ein Script nach dem Aufruf eine Mail automatisiert versendet. In mailscript.sh wird in Zeile 1 die E-Mail-Adresse des Empfängers angegeben. In der 2. Zeile wird zuerst der Betreff und dann der Inhalt der Mail angegeben. Bitte ändern sie jeweils nur die rot markierten stellen. Die schwarzen Zeichen müssen vollständig erhalten bleiben.
mailscript.sh

MAILADDR=myemail@test.de
echo "Test" | mail -s "Another Test" ${MAILADDR}


Danach muss das Script ausführbar gemacht werden.

chmod +x mailscript.sh


Nun ist das Script verfasst und ausführbar. Jetzt kann es, um eine Testmail zu versenden, wie folgt aufgerufen werden.

./mailscript.sh

4.3 Mailversand über Telnet

Es ist auch möglich eine Mail via Telnet zu versenden und somit die Konfiguration zu testen. Hierbei müssen allerdings einige kryptische Befehle eingegeben werden. Im folgenden Listing sind die Befehle aufgelistet und kurz beschrieben. Es ist normal, dass nach manchen Befehlen ggf. einige Ausgaben des Systems aufgeführt werden. Diese dienen zur Rückmeldung und über diese Keywords können Fehler identifiziert werden.

telnet localhost 25        # Baut eine lokale Telnet-Verbindung auf Port 25 auf
ehlo IHRE DOMAIN                         # Ihre Domain hier eintragen
mail from:NAME@IHREDOMAIN.TLD            # Ihre E-Mail-Adresse
rcpt to:EMPFÄNGERNAME@DOMAIN.TLD         # E-Mail-Adresse des Empfängers
data                                     # Aktiviert das Schreiben des Inhaltes
IHT TEXT                                 # Inhalt der Mail
.                                        # beendet das Schreiben und versendet
Quite                                    # Beendet die Telnet Verbdingung

linux/postfix.txt · Zuletzt geändert: 2015/07/06 22:32 (Externe Bearbeitung)