OK.
Hier der Download Link:
Cyrus Control 0.2
Wenn Ihr das File runtergeladen habt, dann entpackt das File entweder unter /opt/programs (/cyrus-control) oder entpackt es irgendwohin, wo ihr wollt und editiert den Pfad in der test.pl und in der config.pl.
Eigentlich wollte ich euch ja nur meine Scripte geben und eine Anleitung, wie diese Scripte als Schnittstelle zu confixx einzusetzen sind... Und nun ist doch eine fettere Anleitung drauss geworden. Naja. Schaun wir mal, was Ihr davon gebrauchen könnt.
Los gehts...
----
Wenn ihr den Cyrus-Imap Server bereits installiert habt und er läuft, dann könnt Ihr gleich mit Punkt 2 weitermachen.
1. Installation des Cyrus-Imap Servers.
Wenn Ihr den Cyrus-Imapd-Server installieren wollt, dann nehmt entweder das RPM oder besser die Sourcen. Wichtig ist, dass die Perl-Module auch installiert sind. Ansonsten bekommt Ihr beim Aufrufen meiner Scripte einen entsprechenden Fehler. Ebenso wichtig ist, dass Ihr vorher Cyrus-Sasl 2.2.x installiert, den ohne sasl2 läuft die neue Version des cyrus-imapd nicht.
So sehen meine Configure-Parameter aus:
SASL:
Code: Select all
./configure
--with-pam=/lib/security
--with-saslauthd
--enable-plain
--enable-login
--disable-cram
--disable-digest
--disable-krb4
--disable-gssapi
--disable-anon
IMAPD:
Code: Select all
./configure
--with-prefix=/usr/local/imapd
--with-cyrus-prefix=/usr/local/imapd
--with-openssl=/usr/include
--without-ucdsnmpd
--enable-sieve
Ich persönlich installier den Cyrus-Imapd immer ganz gerne unter /usr/local/imapd, dann weiss ich wenigstens genau, wo alles ist, aber das könnt Ihr auch anders machen (dann --with-prefix und --with-cyrus weglassen oder ändern).
Danach immer ein make und make install.
Um die Perl-Module von cyrus zu installieren:
cd perl/imap; perl Makefile.PL; make; make install
Einige weitere Punkte sind nach der Installation noch durchzuführen, aber da schaut besser mal hierein:
http://tldp.org/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/cyrus-config.html
oder
http://en.tldp.org/HOWTO/Cyrus-IMAP-7.html
Wenn alles glatt ging, dann sollte der Imap Server unter /usr/local/imapd (oder auch woanders :)) liegen.
Ihr braucht noch passende /etc/imapd.conf:
Code: Select all
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: root cyrus
sasl_pwcheck_method: saslauthd
sasl_auto_transition: no
sasl_mech_list: plain
srvtab: /var/imap/srvtab
allowanonymouslogin: no
allowplaintext: yes
#tls_cert_file: /etc/ssl_keys/server_cert.pem
#tls_key_file: /etc/ssl_keys/server.pem
#tls_ca_file: /etc/ssl_keys/server_cert.pem
und /etc/cyrus.conf:
Code: Select all
# standard standalone server implementation
START {
# do not delete these entries!
mboxlist cmd="ctl_cyrusdb -r"
deliver cmd="ctl_deliver -r"
# this is only necessary if using idled for IMAP IDLE
# idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
# add or remove based on preferences
imap cmd="imapd" listen="imap" prefork=1
#imaps cmd="imapd -s" listen="imaps" prefork=1
pop3 cmd="pop3d" listen="pop3" prefork=1
#pop3s cmd="pop3d -s" listen="pop3s" prefork=1
sieve cmd="timsieved" listen="sieve" prefork=0
# at least one LMTP is required for delivery
# lmtp cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
}
EVENTS {
# this is required
checkpoint cmd="ctl_cyrusdb -c" period=30
squatter cmd="squatter -r user" period=1440
# this is only necessary if using duplicate delivery suppression
delprune cmd="ctl_deliver -E 3" period=1440
}
Wie Ihr sehen könnt, sind dort auch schon die Einträge für SSL vorhanden... Also wenn Ihr wollt :P...
Wenn imap und pop3 mal seperat zu einem anderen POP Server austesten wollt, dann tragt bei listen="pop3" oder listen="imap" entsprechend andere Portadressen ein. Z.B. 111 oder 144. Dann könnt Ihr den Imap Server auch starten, wenn popper oder ein anderes Programm den Port 110 (pop3) bereits belegt.
OK. Nun noch die /etc/pam.d/imap und /etc/pam.d/imap anlegen (falls noch nicht vorhanden, zumindest die pop-datei sollte schon da sein) :
Code: Select all
#%PAM-1.0
auth required /lib/security/pam_unix.so
account required /lib/security/pam_unix.so
oder falls /etc/pam.d/pop bereits vorhanden:
Dann werden die Standard-Passwörter via passwd/shadow genutzt.
Und nun noch den SASLAuthd starten, mit:
Das in die /etc/init.d/boot.local eintragen, damit das immer nach einem neustart geschieht. Wenn Ihr eine Fehlermeldung erhaltet, dass ein Verzeichnis nicht existert -> einfach anlegen. Dann sollte es laufen und 5 Prozesse sollten nun Ihren Dienst tun (ps ax|grep saslauthd)
2. Passwort des User Cyrus setzen.
Wichtig. Damit sich die Scripte beim Cyrus-Imapd Server anmelden können, muss der User Cyrus ein Passwort haben. Das setzt ihr mit:
"passwd cyrus" und danach ein möglichst kryptisches Passwort angeben.
Da Ihr das danach in die config.pl in meinem Script eintragt, könnt Ihr das ansonsten später auch noch nachschauen.
3. Installation meiner Scripte.
Am besten entpackt Ihr die Scripte irgendwo, wo ihr auch sonst eure Scripte unterbringt und passt den Pfad in der config.pl und in der test.pl an (Bei mir liegen die unter /opt/programs/cyrus-control).
Damit die Konten angelegt werden, muss das test.pl in regelmässigen Abständen (am besten nach dem counterscript.pl) aufgerufen werden.
Ein Beispiel (so sieht das bei mir aus):
* * * * * /root/confixx/confixx_counterscript.pl; /opt/programs/cyrus-control/test.pl
Das test.pl überprüft, ob sich die Anzahl der Konten verändert hat und startet ansonsten das go_create.sh, welches neue Konten anlegt oder alte Konten weglöscht.
Wichtig für eure Sicherheit: Gebt dem Verzeichnis nur die Rechte 700 und als Owner root. Damit keiner ausser euch da reinschaut. Oder legt das Verzeichnis gleich irgendwo ab, wo generell keiner reinschauen kann (z.B. unter /root).
Bis hierhin habt ihr noch nichts an der laufen Konfig eures Servers verändert. Wenn die Konten angelegt wurden, dann sollte dem neuen Imap Server, der nebenbei auch POP unterstützt, nichts mehr im Wege stehen und wenn Ihr die Port Adressen geändert habt, dann könnt Ihr den sogar schon testen, ohne eure laufende Konfiguration zu gefährden.
4. Postfix / Sendmail konfigurieren
Was noch fehlt sind die Konfig, dass sendmail oder postfix nach cyrus-imapd ausliefern.
Für Postfix ist das recht einfach:
Eintrag in die master.cf:
Code: Select all
cyrus unix - n n - - pipe
user=cyrus argv=/usr/local/imapd/bin/deliver -e -r ${sender} -m ${extension} ${user}
Diese ist bei den Postfix versionen meist schon vorhanden, nur dass der Pfad zu deliver meist angepasst werden muss.
Das allein macht den server aber noch nicht zu cyrus imap ausliefern. Dazu muss noch zum schluss in der main.cf:
mailbox_transport = cyrus
gesetzt werden. Zum testen ist "soft_bounce = yes" sehr zu empfehlen.
Anregungen könnt Ihr euch auch hier holen:
http://tldp.org/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/postfix-config.html
oder
http://en.tldp.org/HOWTO/Cyrus-IMAP-7.html#ss7.4
Für Sendmail ? Mhh. Schaut mal hier:
http://en.tldp.org/HOWTO/Cyrus-IMAP-7.html#ss7.3
Anregungen, Vorschläge ? Kritik ?
Her damit !
gruß
mark