Postfix-Cyrus-Procmail-SpamAssassin Howto

von David Lais

+ Installation - Cyrus

Cyrus-SASL

Als erstes fangen wir mit Cyrus SASL an. Das brauchen wir zur Authentifizierung. Später wird das Ganze einmal so aussehen:

Der 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 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.

Jetzt braucht unser Cyrus nur noch ein Passwort:

passwd cyrus

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

Weiter geht es mit dem Kompilieren:

cd cyrus-sasl-2.1.19

./configure \
--enable-anon \
--enable-plain \
--enable-login \
--enable-sql \
--disable-krb4 \
--disable-otp \
--disable-cram \
--disable-digest \
--with-saslauthd=/var/run/saslauthd \
--with-mysql=/usr/local/mysql \
--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

--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.
--enable-sql, hiermit erstellen wir das SQL-Plugin, was wir später für die Authentifizierung an der MySQL Datenbank brauchen.
--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-mysql, 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:

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

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:


Cyrus-IMAPD

Als erstes laden wir uns wieder den Source herrunter und entpacken ihn:

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-dbdir, 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 keinen 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ük zu MySQL | Weiter mit Postfix »