|
maandag 10 augustus 2009 00:00 |
|
Het installeren van Cyrus 2.2 op Debian Lenny gaat niet helemaal vanzelf goed. Met name het authentiseren van gebruikers is iets waar je even goed voor moet gaan zitten. Standaard zal cyrus namelijk zijn eigen gebruikers database gebruiken en dat is iets wat ik persoonlijk niet zo handig vind. Zelf zou ik het prettiger vinden als standaard tegen PAM aan geauthentiseerd werd. Maar goed, hierbij dus een handleiding. Stap 1: Installeer de volgende paketten:
- sasl2-bin
- cyrus-admin-2.2
- cyrus-imapd-2.2
- exim4
Theorie
Eerst een klein beetje theorie. Niet echt noodzakelijk, maar ik wil het toch ergens kwijt, dus dan maar hier. Om met het begin te beginnen: Op het moment dat je inlogt op de imap server worden er in een aantal stappen doorlopen om te kijken of je echt bent wie je bent.
- Als eerste vul je je wachtwoord in, of beter gezegd, je wachtwoord wordt door jouw e-mail programma doorgegeven aan de server.
- De imap daemon zal aan de sasl bibliotheek vragen of deze combinatie wel klopt.
- De sasl bibliotheek zal aan elk van zijn geconfigureerde plugins vragen of deze combinatie wel klopt. Zo ja, dan prima.
Indien ingesteld zal ook aan de saslauthd daemon gevraagd worden of de combinatie wel juist is. Ook deze zal aan alle ingestelde plugins vragen of het wachtwoord wel bij de gebruikersnaam past
- Indien ingesteld zal saslauthd aan de PAM bibliotheek vragen of de combinatie correct is
- Uiteindelijk zal de pam bibliotheek in een van de geconfigureerde databases controleren of de juiste gegevens zijn ingevoerd.
Een hele omweg om te kijken of het wachtwoord wel bij de gebruiker hoort. Maar dat geeft wel een boel flexabiliteit. Cyrus zal bijvoorbeeld altijd sasl gebruiken en daar kun je bijvoorbeeld instellen om tegen een LDAP database te authentiseren. Hierdoor is het mogelijk om e-mail accounts aan te maken terwijl er geen gebruikers op het systeem aangemaakt hoeven te worden. Daarnaast gebruiken veel tools juist PAM zodat je zelf kan kiezen in welke database (passwd / shadow / ldap / mysql / nis / etc.) je je gebruikers wilt beheren.
Handleiding
Zoals gewoonlijk, hieronder de stap-voor-stap handleiding om e.e.a. aan de praat te krijgen.
Exim4 configureren
Hierbij ga ik er wel van uit dat je exim zodanig geinstalleerd hebt dat de configuratie over diverse bestanden gesplitst is. Tevens maak ik gebruik van een 'echte' lmtp connectie omdat daarbij direct door Exim gecontroleerd wordt of de gebruiker al bestaat en als dat niet zo is deze meteen geweigerd wordt. De hoeveelheid rotzooi op je server word dan iets minder.
- Maak een nieuw bestand aan in /etc/exim4/conf.d/transport/ met de naam 30_exim4-config_cyrus en open dit in je favoriete editor. Voeg de volgende regels in
- cyrus_delivery:
driver = smtp protocol = lmtp hosts = 127.0.0.1 allow_localhost = yes port = 2003
- Open het bestand /etc/exim4/conf.d/router/900_exim4-config_local_user in je favoriete editor en zet een hekje (#) voor:
check_local_user
- Open het bestand /etc/exim4/conf.d/main/02_exim4-config_options en pas de volgende regel aan:
MAIN_TRUSTED_USERS = uucp wordt: MAIN_TRUSTED_USERS = uucp:cyrus
- Open het bestand /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt in je favoriete editor en ga op zoek naar:
!verify = recipient/callout daaronder kun je het volgende stuk toevoegen: # Special ACL to check with the Cyrus server # Reject "faked" envelope sender addresses in cyrus domains deny sender_domains = +local_domains message = Sender unknown/invalid !verify = sender/callout=defer_ok,5s
# Accept valid (and reject invalid) envelope recipient adresses in cyrus domains accept domains = +local_domains endpass message = ${if match{$acl_verify_message}\ {\N(?m)^\d{3} (\d\.\d\.\d .{0,120})\Z\N} \ {IMAP said: $1}{Recipient unknown/invalid}} verify = recipient/callout=random,5s
- Open het bestand /etc/exim4/update-exim4.conf.conf in je favoriete editor en voeg de volgende regel toe:
dc_localdelivery='cyrus_delivery' controleer meteen even op dc_use_split_config='true'
- Start het programma:
/usr/sbin/update-exim4.conf
- En test of het werkt met het volgende commando:
/usr/sbin/exim4 -bt cyrus
Het resultaat moet er ongeveer zo uit zien
R: system_aliases for cyrus@localhost
R: userforward for cyrus@localhost
R: procmail for cyrus@localhost
R: maildrop for cyrus@localhost
R: local_user for cyrus@localhost
cyrus@localhost
router = local_user, transport = cyrus_delivery
Tips en Truuks
Je moet met de hand de mailboxen aanmaken voor de gebruikers. Er zijn diverse manieren om dit te doen
- Je gebruikt cyradm:
cyradm --user cyrus localhost cm user.micha ^D
- Je gebruikt telnet. Let op de punt (.) hoort bij iedere opdracht:
telnet localhost 143 . login cyrus <password> . CREATE user.micha . logout
- Een grafisch programma om Cyrus te beheren is o.a. gyrus
- Klik op "Go to server..."
- Klik op "New" om een nieuwe sessie te maken
- Geef bij Host: localhost op en bij Username: cyrus en bij Save as: localhost
- Klik op localhost en dan op "Open"
- Klik op de knop "Connect" en geef je wachtwoord op
- Klik op "Add mailbox" en geef daar de gebruiker op, zonder user. ervoor
Succes.
|
|
Laatst aangepast op maandag 10 augustus 2009 15:24 |