+ 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:
Gibt es sie noch nicht, erstellen wir eine mit:
Nun fehlt uns nur noch der Cyrus Benutzer:
passwd cyrus
"-g", fügt den Benutzer in eine Gruppe, in unserem Fall: mail.
Jetzt braucht unser Cyrus nur noch ein Passwort:
Nun laden wir uns Cyrus SASL herrunter und entpacken es:
tar xfz cyrus-sasl-2.1.19.tar.gz
Weiter geht es mit dem Kompilieren:
./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:
Damit wir später auch SASL testen können, bauen wir noch testsaslauthd:
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:
Fertig. SASL ist nun bereit. Weiter geht es mit:
Cyrus-IMAPD
Als erstes laden wir uns wieder den Source herrunter und entpacken ihn:
Jetzt bauen wir uns einen schönen IMAP/POP3 Server :)
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:
#
# 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:
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/K10cyrus
Nun ist unser IMAP/POP3 Server bereit.