| Zurück zu MySQL backend |
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 \
|
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
\ make depend |
"--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 |