Postfix-Cyrus-Procmail-SpamAssassin Howto

von David Lais

+ Konfiguration - Cyrus

Cyrus-SASL

Jetzt geht es darum, SASLAuthD auf PAM-Authentifizierung umzustellen, damit wir unser PAM-MySQL Modul benutzen können.
Bei der Installation haben wir mit dem Suffix: --with-plugindir=/usr/local/lib/sasl2 angegeben, wo wir unsere Plugins hineinstellen und SASL sie suchen soll. Jetzt legen wir die Datei /usr/local/lib/sasl2/smtpd.conf mit folgendem Inhalt an:

pwcheck_method: saslauthd
mech_list: plain login

Zusätzlich ändern wir noch die Datei: /etc/init.d/cyrus

Die Zeile:

/usr/local/sbin/saslauthd -c -a shadow&

ändern wir in:

/usr/local/sbin/saslauthd -c -a pam&

Damit haben wir SASL fertig konfiguriert.

Cyrus-IMAPD

Als erstes legen wir die Datei /etc/imapd.conf an und füllen Sie mit folgendem Inhalt:

postmaster: postmaster
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
sasl_mech_list: PLAIN
servername: servername
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
dracinterval: 0
drachost: localhost
sasl_pwcheck_method: saslauthd
sievedir: /usr/sieve
sendmail: /usr/sbin/sendmail
sieve_maxscriptsize: 32
sieve_maxscripts: 5
#unixhierarchysep: yes
tls_ca_file: /etc/certs/cert.pem
tls_cert_file: /etc/certs/cert.pem
tls_key_file: /etc/certs/key.pem

postmaster, gibt den Postmaster an, also den E-Mail Administrator.
configdirectory, gibt den Ordner an, in dem Cyrus seine Konfiguration speichert. Das ist z.B. die Benutzerdatenbank, nicht zu verwechseln mit unserer MySQL Datenbank.
partition-default, legt den Ordner fest, in dem Cyrus die E-Mails speichert.
admins, legt den Cyrus Administrator fest.
allowanonymouslogin, bedeutet, wie der Name schon sagt, dass sich alle Benutzer authentifizieren müssen.
allowplaintext, bedeutet, dass die Passwörter nicht verschlüsselt sein müssen.
sasl_mech_list, bedeutet, dass Cyrus die Passwörter im Klartext überprüft.
servername, bitte ändern! Hier muss dein FQHN(Fully Qualified Hostname) stehen.
autocreatequota, bedeutet, dass jeder neue Benutzer automatisch 10mb Speicher bekommt.
reject8bit Ist diese Option auf " yes" gesetzt, würde Cyrus keine E-Mails im 8 bit Format annehmen. Ist sie auf "no", so wandelt Cyrus die Zeichen in 7 bit um.
quotawarn, bedeutet, dass der Benutzer eine Warnung erhält, wenn 90% der Mailbox voll sind.
timeout, bedeutet, dass der Server automatisch die Verbindung zum Client trennt, wenn der Benutzer 30 Minuten inaktiv ist, .
poptimeout, bedeutet, dass nach 10 Minuten Inaktivität der Server die POP3 Verbindung trennt.
dracinterval, mit DRAC ist in Cyrus "pop-before-smtp, imap-before-smtp" implementiert. "dracinterval" damit setze ich die Zeit fest, in welcher ein Benutzer POP/IMAPgemacht haben muss, um SMTP benutzen zu können.
drachost, ist der Host.
sasl_pwcheck_method, legt die Authentifiziermethode mit SASL fest.
sievedir, legt den Ordner fest, in dem die Sieve Skripte gespeichert werden.
sendmail, zeigt Cyrus das "sendmail" Binary.
sieve_maxscriptsize, legt die maximale Größe der Sieve Skripte fest.
sieve_maxscripts, legt die maximale Anzahl der Sieve Scripts fest.
unixhierarchysep Normalerweise trennt Cyrus IMAP Ordern mit einem ".". Mit der Option: "unixhierarchysep", kann man die Ordner mit einem "/" trennen lassen. Wichtig wird diese Option sobald Benutzernamen Punkte enthalten.
tls_ca_file: Pfad zur CA Datei von unserem Zertifikat.
tls_cert_file: Pfad zu unserem Zertifikat.
tls_key_file: Pfad zu unserem Key.

Nachdem wir nun die grundlegene Konfiguration unseres IMAP Servers abgeschlossen haben, werden wir nun die Dienste festlegen.

Dazu erstellen wir die Datei: /etc/cyrus.conf mit dem Inhalt:

START {
  recover   cmd="ctl_cyrusdb -r"
}

SERVICES {
  imap    cmd="imapd" listen="imap" prefork=0
  imaps   cmd="imapd -s" listen="imaps" prefork=0
  pop3    cmd="pop3d" listen="pop3" prefork=0
  pop3s   cmd="pop3d -s" listen="pop3s" prefork=0
  sieve   cmd="timsieved" listen="sieve" prefork=0

  # lmtp    cmd="lmtpd" listen="lmtp" prefork=0
  lmtpunix  cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
}

EVENTS {
  checkpoint cmd="ctl_cyrusdb -c" period=30
  delprune   cmd="ctl_deliver -E 3" period=1440
  tlsprune   cmd="tls_prune" period=1440
  squatter   cmd="squatter -r user" period=1440
}

Wer einen sehr gut besuchten Server hat, setzt prefork=0 auf 1.

Als nächstes müssen wir einige Verzeichnisse für Cyrus anlegen.

/var/imap

mkdir /var/imap
chown cyrus:mail /var/imap
chmod 750 /var/imap

/var/spool/imap

mkdir /var/spool/imap
chown cyrus:mail /var/spool/imap
chmod 750 /var/spool/imap

/usr/sieve

mkdir /usr/sieve
chown cyrus:mail /usr/sieve
chmod 750 /usr/sieve

Sollten die Ordner schon existieren, ist darauf zu achten, dass die Rechte stimmen.

Jetzt müssen wir noch die IMAP-Verzeichnisse anlegen. Dazu gibt es in der Cyrus-Distribution ein kleines Skript, welches uns die Arbeit abnimmt.

Dazu wechseln wir in die Cyrus-Userumgebung

su - cyrus
/tmp/cyrus-imapd/tools/mkimap

Bitte beachten: /tmp/cyrus-imapd/ MUSS das Verzeichniss sein, wo ihr die Cyrus-Sourcen abgelegt habt.

Nur für EXT2 benutzer

chattr +S user quota /var/imap/user/* /var/imap/quota/*
chattr +S /var/spool/imap /var/spool/imap/*

Damit sollte nun unser Cyrus-IMAPD laufen.


« Zurük zu MySQL | Weiter mit Postfix »