Debian Postfix und Cyrus Imapd: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Zeile 426: Zeile 426:
Es empfielt sich auf dem neuen Server einen Restore Ordner anzulegen (mit dem Mailclient), indem die alten Mails wieder hergestellt werden. Man kann die Mails natürlich auch an den ursprünglichen Ort kopieren, dann werden aber alle Mails, die im Moment auf dem laufenden neuen Server liegen überschrieben.  
Es empfielt sich auf dem neuen Server einen Restore Ordner anzulegen (mit dem Mailclient), indem die alten Mails wieder hergestellt werden. Man kann die Mails natürlich auch an den ursprünglichen Ort kopieren, dann werden aber alle Mails, die im Moment auf dem laufenden neuen Server liegen überschrieben.  
:
:
Nun kopiert man alle Mails vom "alten" Server in diesen Unterordener (/var/spool/cyrus/mail/t/user/tobias/restore/  (incl. aller Unterordner).
Nun kopiert man alle Mails vom "alten" Server in diesen Unterordener (/var/spool/cyrus/mail/t/user/tobias/restore/  (incl. aller Unterordner). Dabei ist zu beachten, dass beim Kopieren das E-Mailformat erhalten bleibt. Es besteht aus einer fortlaufenden Zahl und einem Punkt. Z.B.
:::1.
:::2.
:::3.
:::* Die Dateien cyrus.squat, cyrus.index, cyrus.header, cyrus.cache müssen erhalten bleiben.


Nachdem man alle Mails in .../restore/ kopiert hat, sollte man die Zugriffsrechte anpassen:
Nachdem man alle Mails in .../restore/ kopiert hat, sollte man die Zugriffsrechte anpassen:
Zeile 440: Zeile 444:
  su cyrus -c "cyrreconstruct -r user.tobias"
  su cyrus -c "cyrreconstruct -r user.tobias"


alternativ kann auch der Befehl
su cyrus -c cyrreconstruct -m user.tobias
ausprobiert werden.
:
Cyrus neu starten:
Cyrus neu starten:
  /etc/init.d/cyrus2.2 start
  /etc/init.d/cyrus2.2 start

Version vom 17. Juni 2009, 07:00 Uhr

Mailserver

Für den Mailserver kommt die gängige Kombination Postfix + Cyrus Imapd zum Einsatz. Postfix ist der sog. MTA (Mail Transport Agent), der sich um die Annahme und den Versand von Mails kümmert. Cyrus Imapd ist, wie der Name schon sagt, ein IAMP Server. Er beherrscht aber auch das weit verbreitete POP3 - Protokoll.

Postfix reicht die erhaltenen Mails an Cyrus weiter, der sie schließlich an die MUA's(Mail User Agents wie Outlook, Thunderbird, Kmail, ...) ausliefert.

Postfix kann mails direkt aus dem Internet annehmen, wenn eine Dynamic DNS-Adresse zur verfügung steht, und der Port 25 im Router an den Server weitergeleitet wird.

Alternativ können mails mittels Fetchmail von einem Provider wie z.B. GMX abgerufen werden. Tetchmail übergibt die Mails an Postfix zur weiteren Verarbeitung.

Zur Spamabwehr kann Spamassassin zwischen die Kette Postfix und Cyrus eingeschleust werden. Dieser kann die evtl. Spammails als solche kennzeichnen, die schließlich ein Mailfilter wie Sieve (Teil von Cyrus) in spezielle Unterverzeichnisse einordnen kann.

Installation von Postfix und Cyrus

apt-get install cyrus-common-2.2 cyrus-imapd-2.2 cyrus-admin-2.2 libsasl2-2 sasl2-bin libsasl2-modules postfix procmail

Nach dem Download der Pakete läuft ein automatisches Konfigurationsscript ab, das bereits einige Einstellungen für postfix vornimmt:

  • Erstes Menü mit Enter-Taste (OK) bestätigen
  • Mit Cursor-Tasten die Option Internet mit Smarthost auswählen und mit Enter bestätigen
  • System-Email-Name mit Enter-Taste bestätigen bzw. bei Bedarf abändern
  • SMTP-Relay-Server eintragen: z.B. smtp.provider.de und mit Enter bestätigen


Konfiguration von SASLAuthD

Für die AUthorisierung von Nutzern wird sowohl für Postfix, als auch für Cyrus der SASLAuthD - Daemon verwendet.

vi /etc/default/saslauthd

Folgende Änderungen durchführen:

START=yes
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Anlegen der Verzeichnisse und setzen der Rechte:

rm -Rf /var/run/saslauthd/
mkdir -p /var/spool/postfix/var/run/saslauthd
chown root:sasl /var/spool/postfix/var/run/saslauthd

Neustarten von SASLAuthD:

/etc/init.d/saslauthd restart

Anlegen eines symbolischen Links nach /var/run/saslauthd, in dem Cyrus sucht:

ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd


Konfiguration von Postfix

Zentrales Konfigurationsfile von Postfix ist /etc/postfix/main.cf.

vi /etc/postfix/main.cf

Generelle Optionen

Die Maildomain muß zum Eintrag mydestination hinzugefügt werden. Der Hostname wurde bereits vom Konfig-Script (siehe oben) eingetragen. Z.B.

mydestination = debian.domain.org, localhost.domain.org, localhost

muß erweitert werden zu:

mydestination = debian.domain.org, domain.org, localhost.domain.org, localhost

dies ist erforderlich, damit Postfix mails annimmt, die an z.B. root@domain.org adressiert sind. Ansonsten würde er nur solche annehmen, die an root@debian.domain.org adressiert sind.

Folgende Optionen einfügen:

smtp_always_send_ehlo = yes
mailbox_transport = cyrus

mynetworks: Damit ein Mailversand von Clients, die im selben Netzwerk wie der Server hängen, muss noch der Eintrag mynetworks erweitert werden. Die ersten 3 Stellen der IP-Adresse des Servers verwenden. Die Letzte Stelle auf 0 setzten und um /24 ergänzen. Diese Angabe entspricht einem kompletten Subnet. Falls die IP-Adresse des Servers 192.168.1.77 => mynetworks um den Eintrag 192.168.1.0/24 ergänzen. D.h. alle PC's im Bereich 192.168.1.1 bis 192.168.1.255 haben Zugriff auf den Mailserver und dürfen mails versenden. im obeigen Beispiel den Eintrag

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

erweitern um das Subnet:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24

SASL-Optionen

Folgende Optionen einfügen:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_authenticated_header = yes

Spamabwehr

Viele Spam-Mails können bereits vor der Annahme der Mail durch Postfix aussortiert werden. Spammer verwenden oft Host- und Domainnamen, die nicht einem FQDN (Fully Qualified Domain Name) entsprechen. Postfix kann relativ einfach angewiesen werden, solche mails erst gar nicht anzunehmen. Hier wird nicht beschrieben, wie Spammails aufgrund ihres Inhalts gefiltert werden können. Dies ist Teil der → AmavisD/Spamassassin-Anleitung.

Mail können mit den Parametern:

  1. smtpd_client_restrictions
  2. smtpd_helo_restrictions
  3. smtpd_sender_restrictions
  4. smtpd_recipient_restrictions
  5. smtpd_data_restrictions

gefiltert werden.

  1. smtpd_client_restrictions
    reject_unknown_client
    Verwirft die Anfrage, wenn der Hostname des SMTP-Clients unbekannt ist (die IP-Adresse oder der Hostname des TCP/IP-Clients).
    reject_rbl_client domain.tld
    Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.
    reject_rhsbl_client domain.tld
    Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.
    warn_if_reject
    Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
    check_client_access maptype
    mapname
    Löst die Client-Namen, Client-Adressen und Parent-Domains auf anhand der in maptype:mapname angegebenen Map.
    permit_mynetworks
    Gewährt Zugriff, wenn der Client in $mynetworks zu finden ist.
  2. smtpd_helo_restrictions
    reject_invalid_hostname
    Verwirft den im HELO/EHLO angegebenen Hostnamen, falls dieser eine falsche Syntax hat. Wenn man in einem Netzwerk ist und man will, dass die Maschinen, die auch im Netzwerk sind, Emails über unseren MTA verschicken wollen, dann ist es sinnvoll, diese Beschränkung erst nach permit_mynetworks anzugeben (wie ich schon gesagt habe, die Reihenfolge ist sehr wichtig), sonst wird er vom MTA verworfen oder zurückgewiesen.
    reject_unknown_hostname
    Verwirft den im HELO/EHLO angegebenen Hostnamen, welcher keinen DNS Rekord vom Typ A oder MX hat. Hier ist es auch sinnvoll permit_mynetworks zuerst anzugeben, wenn man ein Relay-MTA für das innere Netzwerk ist.
    reject_non_fqdn_hostname
    Verwirft den im HELO/EHLO angegebenen Hostnamen, wenn dieser nicht in FQDN-Form ist. Was bedeutet FQDN? Full Qualified Domain Name. Dafür ein Beispiel: www.chains.ch ist ein FQDN.
    warn_if_reject
    Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
    check_helo_access
    Löst den im HELO/EHLO angegebenen Hostnamen oder die Parent-Domain auf.
    permit_mynetworks
    Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.
  3. smtpd_sender_restrictions
    reject_unknown_sender_domain
    Verwirft die Sender-Domain, wenn diese keinen DNS-Record vom Typ A oder MX hat.
    reject_non_fqdn_sender
    Verwirft die Sender-Domain, wenn diese nicht in FQDN-Form ist.
    reject_rhsbl_sender domain.tld
    Verwirft die Anfrage, wenn der Sender einen DNS-Record vom Typ A unter domain.tld hat.
    reject_sender_login_mismatch
    Verwirft, wenn $smtpd_sender_login_maps für eine MAIL FROM- Adresse einen Besitzer spezifiziert, aber der sich nicht mit SASL authentifiziert hat; verwirft, wenn der Sender sich authentifiziert hat, aber die MAIL FROM-Adresse nicht mit dem Sender übereinstimmt.
    warn_if_reject
    Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
    check_sender_access maptype
    mapname
    Löst die Sender-Adresse, Parent-Domain oder localpart@ auf.
    check_sender_mx_access maptype
    mapname
    Löst den DNS-Record vom Typ MX des Senders auf.
    permit_mynetworks
    Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.
  4. smtpd_recipient_restrictions
    reject_unknown_recipient_domain
    Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers keinen DNS-Record vom Typ A oder MX hat.
    reject_non_fqdn_recipient
    Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers nicht in FQDN-Form ist.
    reject_rhsbl_recipient domain.tld
    Verwirft die Anfrage, wenn der Empfänger einen DNS-Record vom Typ A unter domain.tld hat.
    reject_unauth_pipelining
    Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.
    reject_unauth_destination
    Verwirft das Absenden von Emails:
    • zu Zielmaschinen, die nicht unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
    • zu Zielmaschinen, die nicht unter $relay_domains oder in deren Subdomains zu finden sind (ausser Sender-spezifisches Routing).
    warn_if_reject
    Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
    check_recipient_access maptype
    mapname
    Löst die Empfänger-Adresse, Parent-Domain oder localpart@ auf.
    check_recipient_mx_access maptype
    mapname
    Löst den DNS-Record vom Typ MX des Empfängers auf.
    permit_auth_destination
    Erlaubt das Absenden von Emails:
    • zu Zielmaschinen, die unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
    • zu Zielmaschinen, die unter $relay_domains oder in deren Subdomains zu finden sind (außer Sender-spezifisches Routing).
    permit_mx_backup
    Erlaubt das Empfangen von Emails für Seiten, die mich als MX Host auflisten.
    permit_mynetworks
    Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.
  5. smtpd_data_restrictions
    reject_unauth_pipelining
    Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.


Gute Erfahrungen wurden mit folgenden Einstellungen gesammelt (Diese evtl am Ende von main.cf anhängen):

smtpd_client_restrictions = permit_mynetworks permit_inet_interfaces reject_unknown_reverse_client_hostname
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sender_restrictions = permit_mynetworks
smtpd_data_restrictions = reject_unauth_pipelining

Cyrus Mailtransport

Postfix muss mitgeteilt werden, wie die mails an Cyrus zu übergeben sind:

vi /etc/postfix/master.cf

Ans Ende folgende Zeilen einfügen:

cyrus   unix    -       n       n       -       -       pipe
  flags=R user=cyrus      argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}
Achtung:
Die zweite Zeile muß mindestens um ein Leerzeichen eingerückt werden, damit Postfix/Cyrus richtig funktionieren.


Aliases

Aliases ermöglichen es, dass ein Mail-Empfänger unter mehreren mailadressen erreichbar ist, die mails aber alle in einem Postfach landen. Typischerweise werden Aliase für Systemaccounts - wie root, postmaster, webmaster usw. - verwendet.

vi /etc/aliases

Bitte unbedingt den root-Eintrag auf einen tatsächlich vorhandenen (User-) Account verweisen lassen:

root: user
Hinweis:
Nachdem eine Änderung am Aliases-File durchgeführt wurde, muß dies Postfix mittels folgendem Befehl mitgeteilt werden:
/usr/bin/newaliases

Relay-Optionen

Nachdem bereits beim Konfigurationsscript der Relay-Host abgefragt wurde, muß nun noch der Username und Passwort zum Zugriff auf diesen Relay-Server festgelegt werden:

vi /etc/postfix/sasl/sasl_passwd

Zeile mit folgendem Aufbau einfügen:

Relay-Server Benutzername:Passwort
z.B.
smtp.1und1.de tux.mustermann@online.de:tux_mustermann_pwd

Das File in ein für Postfix verwertbares Format wandeln:

postmap /etc/postfix/sasl/sasl_passwd


SASL-AUTH

Nachdem der → SASLAuthD eingerichtet wurde und in der main.cf bereits einige Einstellungen bzgl. SASL-Auth gemacht wurden (siehe oben), ist es nun noch erforderlich das File smtpd.conf anzulegen:

vi /etc/postfix/sasl/smtpd.conf

Folgende Zeilen einfügen:

pwcheck_method: saslauthd
mech_list: plain login
saslauthd_path: /var/run/saslauthd/mux
autotransition:true

Schließlich noch den User postfix zur Gruppe sasl hinzufügen:

adduser postfix sasl 


Neustart von Postfix

/etc/init.d/postfix restart

Konfiguration von Cyrus

Generelle Einstellungen

vi /etc/imapd.conf

Folgende Einstellungen vornehmen, damit nur Klartext-Passwörter akzeptiert werden (evtl. Kommentarzeichen # entfernen):

idlemethod: idled
admins: cyrus
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN LOGIN

Cyrus-Dienste und Server

vi /etc/cyrus.conf

Folgende Einstellungen vornehmen (evtl. Kommentarzeichen # entfernen)

idled           cmd="idled"

IMAP- und IMAPS-Server aktivieren:

imap            cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100
imaps           cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100

Da Imap wesentlich Leistungsfähiger als POP3 ist, kann der POP3-Server deaktiviert werden:

#pop3           cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50
#pop3s          cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=50 

Der Newsgroup-Server kann ebenfalls deaktiviert werden:

#nntp           cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100
#nntps          cmd="nntpd -s -U 30" listen="nntps" prefork=0 maxchild=100

Der Squat bildet einen Index aller gespeicherten Mails. Den regelmäßigen Update dieses Indexes stellen folgende Optionen sicher:

squatter_1      cmd="/usr/bin/nice -n 19 /usr/sbin/squatter -s" period=120
squatter_a      cmd="/usr/sbin/squatter" at=0517


Neustarten von Cyrus:

/etc/init.d/cyrus2.2 restart

Cyrus-Admin User

Damit der User cyrus Zugang zur Admin-Oberfläche erhält, muß dessen Passwort gesetzt werden:

passwd cyrus

Zweimal das gewünschte CYRUS_PWD eingeben


Mailuser anlegen

Die Mail-User werden alle in der Gruppe mailuser zusammengefasst.

addgroup mailuser
  • Bereits bestehende Linux-User z.B. tux_old sollten lediglich zur Gruppe mailuser hinzugefügt werden.
adduser tux_old mailuser
  • Komplett neuen Benutzer anlegen:

Folgender Befehl legt schließlich den Benutzer tux an und fügt ihn der Gruppe mailuser hinzu:

adduser --ingroup mailuser tux

Zweimal das gewünschte Passwort für den User eingeben und die anschließenden Fragen beantworten. Den Befehl für alle anzulegenden Mailuser wiederholen.


Postfächer anlegen:

cyradm --user cyrus localhost

Passwort CYRUS_PWD eingeben

Folgende cm Befehle (create Mailbox) eingeben (Tux durch realen Mailuser, wie unter Vorbereitungen angelegt, ersetzen)

cm user.tux
cm user.tux.Drafts
cm user.tux.Outbox
cm user.tux.Sent
cm user.tux.Trash

cm-Befehle für alle anzulegenden Mailboxen widerholen. Mit dem Befehl lm können alle definierten Mailboxen angezeigt werden.

lm

Die Adminoberfläche mit folgenden Befehlen verlassen:

quit


Löschen von IMAP-User Mailboxen

Nur der Vollständigkeit halber soll hier auch das Löschen von Mailboxen bzw. Unterordnern erläutert werden. Dies ist leider nicht ganz so einfach wie das Anlegen von Usern und Unterverzeichnissen.

cyradm --user cyrus localhost

Passwort des Users cyrus (CYRUS_PWD) eingeben. Nach erfolgreichem Login befindet man sich in der Cyrus Adminoberfläche.

Zunächst muss dem User 'cyrus' das Recht eingeräumt werden, die zu löschende Mailboxen bzw. Unterverzeichnis zu löschen. Dies ist aus Sicherheitsgründen standardmäßig deaktiviert. Hier soll exemplarisch das Löschen einer Usermailbox "Mailbox" und eines Unterordners "Test" in der Mailbox "Mailbox2" demonstriert werden. (Achtung: auf Groß/Kleinschreibung achten).

sam user.Mailbox cyrus all

Damit bekommt der User "cyrus" sämtliche Rechte (incl. löschen) an der Mailbox "Mailbox" zugewiesen. Der folgende Befehl löscht die Usermailbox schließlich:

dm user.Mailbox

Nun das Löschen des Unterordners "Mailbox2/Test"

sam user.Mailbox2.Test cyrus all
dm user.Mailbox2.Test

Die Adminoberfläche mit folgenden Befehlen verlassen:

quit


Test von Postfix und Cyrus Imapd

Hinweis: Es ist ratsam für die folgenden Tests ein weiteres Putty-Fenster mit Verbindung zum Server zu öffnen und permanent die Logging-Ausgaben zu beobachten, um im Falle eines Fehlers entsprechende Fehler einzukreisen:
tail -f /var/log/mail.log 


Postfix und Cyrus neu starten, um sämtliche durchgeführte Änderungen zu übernehmen:

/etc/init.d/postfix restart
/etc/init.d/cyrus2.2 restart

Zunächst wird mittels Telnet geprüft, ob Postfix in der Lage ist, mails intern zu versenden. Anschließend wird Cyrus mit einem Mailprogramm überprüft.

Am PC eine Telnet-Verbindung zum Mailserver aufbauen

telnet IP_des_Servers 25

oder alternativ mit Putty:

Protokoll=Telnet
Port=25
Hostname=IP_des_Servers

Hinweis:

  • Im folgenden Abschnitt sind sowohl Ausgaben von Postfix, als auch notwendige Eingaben im Telnet hintereinander dargestellt. Eingaben sind mit einem ">" zu Beginn versehen.
  • domain.org durch die Domäne wie in der main.cf definiert ersetzen.
  • tux durch tatsächlich angelegten Benutzer ersetzen
220 debian.domain.org ESMTP Postfix (Debian/GNU)
>ehlo domain.org        (falls Fehlermeldung auftritt, Befehl nochmals eingeben)
250-debian.domain.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH NTLM CRAM-MD5 LOGIN DIGEST-MD5 PLAIN
250-AUTH=NTLM CRAM-MD5 LOGIN DIGEST-MD5 PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
>mail from: root
250 2.1.0 Ok
>rcpt to: tux
250 2.1.5 Ok
>data
354 End data with <CR><LF>.<CR><LF>
>SUBJECT: Test 1
>Testmail
>.
>
250 2.0.0 Ok: queued as 346EA3E103
>quit
221 Bye
Connection to host lost.
Hinweis: Wenn beim Versand einer Mail etwas schief geht, z.B. Fehler in der Konfiguration, Email-Adresse falsch eingetippt, kann eine Mail in der Postfix Mail-Queue zurückbleiben. Eine solche Mail kann folgendermassen aus der Queue entfernt werden:
mailq

Die Ausgabe könnte folgendermassen aussehen:

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
7C4A34281B      842 Sat May 27 15:10:52  test@tster.cob
(host smtp.1und1.de[212.227.15.183] said: 421 dns lookup failed for sender domain (in reply to MAIL FROM command))
                                         tux@gmx.de

Die Ausgabe enthält neben der wichtigen ID (Queue-ID) evtl. auch einen Hinweis darauf, warum der Versand der Mail mislang. Die Mail kann schliesslich mittels:

superuser -d Queue-ID

gelöscht werden. Im obigen Beispiel also mittels:

postsuper -d 7C4A34281B

Die Mail sollte aus der Queue entfernt worden sein (evtl. nochmals mittels mailq überprüfen).


Konfiguration Mailclient

Mailclient (z.B. MS Outlook oder Thunderbird) starten und ein neues Konto anlegen mit folgenden Daten:

email-adresse: tux@domain.org
Protokoll: Imap
Posteingangsserver: IP_des_Servers
Postausgangsserver: IP_des_Servers
Benutzername (Posteingang): Tux
Benutzername (Postausgang): Tux

Nach Eingabe des Passwortes darf keine Fehlermeldung erscheinen. Wenn alles geklappt hat, sollte sich im Posteingang die Mail aus obigem Postfix Test befinden.


Postfix erreichbar aus dem Internet

Damit der Mailserver mails aus dem Internet empfangen kann, muß der SMTP-Port (25) vom Router an den Server weitergeleitet werden.

Die Weboberfläche des Routers öffnen und anhand der Bedienungsanleitung eine Portweiterleitung mit folgenden Daten einrichten:

Bezeichnung: Z.B. SMTP
Protokoll: TCP
von Port: 25
an IP-Adresse: IP_des_Servers
an port: 25


Erweiterungen der Funktionalität des Mailservers


Übertragen von Mails von einem alten oder defekten Server auf den Neuen

Diese Methode empfielt sich wenn beim alten Server der Netzwerkzugang defekt ist, und somit kein Zugriff auf das Mailkonto mehr besteht.

Als erstes muss man die Mail vom alten Server sichern. Die Mails liegen unter /var/spool/cyrus/mail/

Darin sind Unterverzeichnisse a ... z
Der user Martin taucht dann im Unterordner m/user/martin auf.
Der user Tobias im Unterordner t/user/tobias.

Da es nicht mehr möglich ist die Daten über das Netzwerk zu übertragen empfielt es sich die Daten mit Hilfe einer Life DVD (z.B. Ubuntu) zu kopieren. Vorher müssen aber noch die Rechte des Mail Ordners geändert werden damit auch ein Fremder User zugriff auf die Daten hat.

 chmod -R 777 cyrus:mail /var/spool/cyrus/mail

Nun kann man alle Daten über Ubuntu auf CD, USB-Stick .... sichern.

Bevor man die Mail auf den neuen Server kopiert, muss Cyrus auf dem neuen Server angehalten werden

 /etc/init.d/cyrus2.2 stop 

Es empfielt sich auf dem neuen Server einen Restore Ordner anzulegen (mit dem Mailclient), indem die alten Mails wieder hergestellt werden. Man kann die Mails natürlich auch an den ursprünglichen Ort kopieren, dann werden aber alle Mails, die im Moment auf dem laufenden neuen Server liegen überschrieben.

Nun kopiert man alle Mails vom "alten" Server in diesen Unterordener (/var/spool/cyrus/mail/t/user/tobias/restore/ (incl. aller Unterordner). Dabei ist zu beachten, dass beim Kopieren das E-Mailformat erhalten bleibt. Es besteht aus einer fortlaufenden Zahl und einem Punkt. Z.B.

1.
2.
3.
  • Die Dateien cyrus.squat, cyrus.index, cyrus.header, cyrus.cache müssen erhalten bleiben.

Nachdem man alle Mails in .../restore/ kopiert hat, sollte man die Zugriffsrechte anpassen:

  • Den Owner fest legen
 chown -R cyrus:mail /var/spool/cyrus/mail 

  • Die Zugriffsrechte setzen
 chmod -R 700 /var/spool/cyrus/mail

Anschließend muss die Mail-Index-Datenbanken für den user (Tobias) wieder hergestellt werden.

su cyrus -c "cyrreconstruct -r user.tobias"

alternativ kann auch der Befehl

su cyrus -c cyrreconstruct -m user.tobias

ausprobiert werden.

Cyrus neu starten:

/etc/init.d/cyrus2.2 start

Mailclient starten und die wiederhergestellten mails im Unterordner restore an die gewünschte Stelle kopieren bzw. verschieben. Wenn alle mails an der gewünschten Stelle sind, kann der Ordner restore wieder gelöscht werden.