+ 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:
mech_list: plain login
Zusätzlich ändern wir noch die Datei: /etc/init.d/cyrus
Die Zeile:
ändern wir in:
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:
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:
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
chown cyrus:mail /var/imap
chmod 750 /var/imap
/var/spool/imap
chown cyrus:mail /var/spool/imap
chmod 750 /var/spool/imap
/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
/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 /var/spool/imap /var/spool/imap/*
Damit sollte nun unser Cyrus-IMAPD laufen.