Zurück zu MySQL backend
Inhalt
Vor zu Postfix

Installation von Cyrus SASL

Benötigt:
- Berkeley DB, eine Open Source Datenbankbibliothek.
- OpenSSL, Open Source Implementierung von SSL.

Beschreibung:
SASL (Simple Authentication and Security Layer) ist eine Methode um Authentifizirung für Verbindungsprotokolle zu ermöglichen.

Cyrus SASL brauchen wir zur Authentifizierung, später wird das Ganze einmal so aussehen:

Benutzer will seine Mail lesen und gibt dem Cyrus IMAP seinen Benutzernamen und Passwort ---> Cyrus IMAP gibt die Daten an
saslauthd weiter, der schaut jetzt in der MySQL Datenbank oder lokal nach den Benutzerdaten und wenn die Daten stimmen
kann der Benutzer seine Mail lesen, wenn nicht, wird er sich wohl vertippt haben :-)

So genug erklärt, jetzt geht es an die Installation:
Als Erstes benötigen wir die richtige Gruppe und den richtigen Benutzer für Cyrus, auf den meisten Systemen gibt es schon eine Gruppe "mail",
das Ganze überprüfen wir mit:

grep mail /etc/group

gibt es sie noch nicht, erstellen wir eine mit:

groupadd mail

nun fehlt uns nur noch der Cyrus Benutzer:

useradd -d /usr/cyrus -g mail cyrus
passwd cyrus

"-g", fügt den Benutzer in eine Gruppe in unserem fall: mail.
mit "passwd cyrus" geben wir dem Benutzer ein Passwort. Gut merken :-)

Nun laden wir uns Cyrus SASL herrunter und entpacken es:

wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.19.tar.gz
tar xfz cyrus-sasl-2.1.19.tar.gz

Cyrus SASL bauen wir so:

cd cyrus-sasl-2.1.19

./configure \
--enable-anon \
--enable-plain \
--enable-login \
--disable-krb4 \
--disable-otp \
--disable-cram \
--disable-digest \
--with-saslauthd=/var/run/saslauthd \
--with-pam=/usr/include/security \
--with-dblib=berkeley \
--with-bdb-libdir=/usr/local/bdb/lib \
--with-bdb-incdir=/usr/local/bdb/include \
--with-openssl=/usr/local/ssl \
--with-plugindir=/usr/local/lib/sasl2


make
make install

Beschreibung:

"--enable-anon", damit können wir später "anonymous login" erlauben.
"--enable-plain", erlaubt eine PLAIN Authentifizierung.
"--enable-login", damit sagen wir, alles was nicht unterstüzt wird, darf sich nicht einloggen.
"--disable-krb4", hier schalten wir Kerberos V4 ab.
"--disable-otp", verbietet OTP (One Time Password) Authentifikation.
"--disable-cram", verbietet CRAM-MD5.
"--disable-digest", verbietet DIGEST-MD5.
"--with-saslauthd", gibt den Ordner für den saslauth daemon an.
"--with-pam", fügt PAM support hinzu und gibt die PAM Module an.
"--with-dblib", gibt an, dass wir BerkeleyDB benutzen wollen.
"--with-bdb-libdir", zeigt auf die BerkeleyDB libs.
"--with-bdb-incdir", zeigt auf die BerkeleyDB includes.
"--with-openssl", fügt SSL support hinzu, und zeigt auf die SSL Installationsordner.
"--with-plugindir", gibt den Ordner an, in dem SASL seine Plugins speichert und sucht.

so weit so gut, nun müssen wir noch das "run" Verzeichnis für saslauthd anlegen:

mkdir -p /var/run/saslauthd

damit wir später auch SASL testen können, bauen wir noch testsaslauthd = ein kleines Hilfsprogramm:

cd saslauthd
make testsaslauthd
cp testsaslauthd /usr/local/bin

jetzt noch schnell die Pfade zu den Libs speichern:

echo /usr/local/lib/sasl2 >> /etc/ld.so.conf
ldconfig

oft suchen Programme die SASL Bibliothek auch in /usr/lib/ und damit es da keine Fehler gibt, erstellen wir eine Verknüpfung:

ln -s /usr/local/lib/sasl2 /usr/lib/sasl2

fertig. SASL ist nun bereit, weiter geht es mit:

 

Installation von Cyrus IMAP

Benötigt:
- Berkeley DB, eine Open Source Datenbankbibliothek.
- OpenSSL, Open Source Iimplementierung von SSL.
- SASL, eine Methode um Authentifizierung für Verbindungsprotokolle zu ermöglichen.

Beschreibung:
Ein leistungsstarker und stabiler IMAP(Internet Message Access Protocol) / POP3(Post Office Protocol v3) Server.


herrunterladen und entpacken des Cyrus IMAPD :

wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.2.8.tar.gz
tar xfz cyrus-imapd-2.2.8.tar.gz

jetzt bauen wir uns einen schönen IMAP/POP3 Server :)

cd cyrus-imapd-2.2.8

export CPPFLAGS="-I/usr/include/et"

./configure \
--with-sasl=/usr/local/lib \
--with-perl \
--with-auth=unix \
--with-dbdir=/usr/local/bdb \
--with-bdb-libdir=/usr/local/bdb/lib \
--with-bdb-incdir=/usr/local/bdb/include \
--with-openssl=/usr/local/ssl \
--without-ucdsnmp \

make depend
make
make install

"--with-sasl", gibt die SASL2 libs an und baut Cyrus IMAPD mit SASL support.
"--with-perl", fügt perl support hinzu.
"--with-auth", sagt Cyrus IMAPD, dass wir die default methode zur Authentifikation unix wählen. (später nehmen wir SASL)
"--with-dblib", gibt an, dass wir BerkeleyDB benutzen wollen.
"--with-bdb-libdir", zeigt auf die BerkeleyDB libs.
"--with-bdb-incdir", zeigt auf die BerkeleyDB includes.
"--with-openssl", fügt SSL support hinzu, und zeigt auf die SSL Installationsordner.
"--without-ucdsnmp", schaltet ucdsnmp ab, da wir kein SNMP support brauchen.

Damit wir unseren Server komfortabel starten und stoppen können, brauchen wir ein Startup-Script:

#!/bin/bash
#
# Cyrus startup script 

case "$1" in
        start)
             # Startet SASL 
             /usr/local/sbin/saslauthd -c -a shadow&
             # Startet Cyrus IMAP Server
             /usr/cyrus/bin/master &
        ;;
        stop)
            #Stoppt SASL
            killall saslauthd
            #Stoppt Cyrus IMAP Server
            killall /usr/cyrus/bin/master
        ;;
        *)
          echo "Usage: $0 {start|stop}"
          exit 1
        ;;
esac

Das speichern wir unter "cyrus" und kopieren es in /etc/init.d/, noch schnell ausführbar machen mit:

chmod +x /etc/init.d/cyrus

damit unser IMAP/POP3 Server auch bei jedem start des Servers startet, erstellen wir noch die nötigen links:

ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/S20cyrus
ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/K10cyrus

nun ist unser IMAP/POP3 Server bereit.


Zurück zu MySQL backend
Inhalt
Vor zu Postfix