Installationsanleitung für "Scalix Plugin für Ldap Account Manager"

 
   


1. Voraussetzungen

Bevor die Installation des "Scalix Plugin für LDAP Account Manager" begonnen werden kann, muss eine lauffähige Umgebung des Scalix Servers und LAM geschaffen werden. Ebenso müssen auf beiden Server root Rechte verhanden sein (Scalix und OpenLDAP Server).

1.1. LDAP Account Manager

Der LDAP Account Manager muss bereits soweit installiert sein, so dass User und Gruppen angelegt / bearbeitet werden können. Sollte dies nicht der Fall sein, so ist hier eine Installationsanleitung zu finden:
http://lam.sourceforge.net/documentation/index.htm
Als Version wird 2.2.0 oder höher empfohlen.

1.2. Scalix Server

Am Scalix Server muss bereits die Grundinstallation durchgeführt sein, um dieses Plugin zu installieren. Sollte der OpenLDAP Dienst und der Scalix auf dem selben Server laufen, so muss vom Scalix LDAP der Port geändert werden (zB. auf Port 3890). Eine genaue Anleitung der Portumstellung ist zu finden unter:
Scalix Wiki - Change the default Scalix ldap port from 389

1.3. OpenLDAP Server

Der Scalix Server sowie der Server, auf den der LDAP Account Manager läuft, müssen schreibend auf den OpenLDAP Server zugreifen können. Außerdem muss Samba soweit eingerichtet sein, dass er mit dem OpenLDAP Server zusammenarbeitet.

2. Installation

Das ZIP Paket, dass Sie per E-Mail erhalten haben, entpacken Sie und verteilen die Ordner auf die jeweiligen Server. In welchem Verzeichnis die Ordner auf den Servern gespielt werden, ist im Moment noch egal.

2.1. OpenLDAP

OpenLDAP benötigt ein neues Schema, welches im Ordner "openldap" des ZIPs zu finden ist. Diese Datei (scalix.schema) wird nach /etc/openldap/schema/ kopiert. Jetzt wird noch die Konfigurationsdatei des OpenLDAP Servers bearbeitet. Unter SuSE befindet sich diese unter "/etc/openldap/slapd.conf".
Ziemlich am Beginn der Datei ist folgendes zu finden (kann sich etwas abweichen):


include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/yast.schema
include /etc/openldap/schema/samba3.schema


Am Ende der "include" Befehlen wird folgendes eingefügt:


include /etc/openldap/schema/scalix.schema

Nach der Änderung sollte es nun folgendermaßen aussehen (eingefügte Zeile wird fett hervorgehoben):


include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/yast.schema
include /etc/openldap/schema/samba3.schema
include /etc/openldap/schema/scalix.schema

Durch das einfügen der Zeile stehen dem LDAP Server neue Attribute, die für das Scalix Modul benötigt werden, zur Verfügung.
Jetzt wird am Ende der Konfigurationsdatei noch folgende Zeile eingefügt:


index scalixScalixObject eq

Durch diese Zeile wird nun ein Index auf das "scalixScalixObject" erstellt, um Zugriffe auf dieses Attribute zu beschleundigen.
Jetzt muss nur mehr der OpenLDAP Server neu gestartet werden, dann ist schon mal der erste Teil der Konfiguration erledigt:


/etc/init.d/ldap stop
/etc/init.d/ldap start

2.2. LDAP Accout Manager

Der Inhalt des Ordners "ldap_account_manager" wird ins Verzeichnis des "LDAP Account Managers" kopiert. Wenn z.B. die zu kopierenden Dateien unter "/root/ldap_account_manager" liegen und der LDAP Account Manager selber unter "/srv/www/htocs/lam" liegt, so sieht der Befehl folgendermaßen aus:


cp /root/ldap_account_manager/* /srv/www/htdocs/lam/ -R

Durch diesen Kopiervorgang existieren im LAM 2 neue Dateien, diese sollte nun unter folgenden Pfad liegen (Der Pfad zum LDAP Account Manager kann bei ihnen etwas abweichen):


/srv/www/htdocs/lam/lib/modules/scalixUser.inc
/srv/www/htdocs/lam/lib/mdules/scalixGroup.inc

Nun muss dieses Modul nur mehr im LDAP Account Manager aktiviert werden. Dazu geht man auf die Startseite des LAMs -> LAM-Einstellungen -> Serverprofile ändern -> Passwort eingeben und einloggen.



Jetzt auf den Button "Module ändern" klicken. In der Kategorie "Benutzer" und "Gruppen" gibt es jeweils ein Modul namens "Scalix". Diese 2 Module werden nun aktiviert, indem diese jeweils markiert und zu "Ausgewählte Module" verschoben werden. Nun sollte es so aussehen:


Jetzt noch auf OK klicken.
Nun müssen in der Konfiguration noch die Mailnode(s) und E-Mail Domain(s) des Scalix Server eingetragen werden. Pro Zeile wird immer eine E-Mail Domain / Mailnode eingetragen:



Nun noch auf "OK" klicken, um das ganze abzuspeichern. Wenn man sich nun im LAM einloggt und einen neuen User/ neue Gruppe anlegt oder bearbeitet, so gibt es einen neuen Tab namens "Scalix".

2.3. Scalix Server

Die Konfiguration des Scalix Servers erfolgt in 2 Schritten:

2.3.1. Single Sign On

"Single Sign On" dient dazu, dass die Passwortauthentifizierung der Benutzer nicht mehr am Scalix Server erfolgt, sondern gegen den OpenLDAP Server. Das beudetet, wird das Passwort eines Users im LAM auf "12345" geändert, so kann er sich am Samba und auch am Scalix mit dem Passwort "12345" einloggen. Das selbe gilt auch, wenn ein User unter anderem im Webmail sein Passwort ändert, wird es in Wirklichkeit im OpenLDAP geändert und somit muss sich der User auch am Samba mit dem neuen Passwort einloggen.

Es muss sichergestellt werden, dass der Scalix Server anonym den OpenLDAP Server auslesen kann, die Konfigruation in der "/etc/openldap/slapd" (SuSE) müsste folgendermaßen aussehen:


access to *
by dn="cn=root,dc=entwicklung,dc=sin" write
...
...
...
by * read

Die Dateien "ual.remote, smtpd.auth, pop3, omslapdeng" im Verzeichnis "scalix/single_sign_on/" des ZIP Archives werden am Scalix Server nach "/var/opt/scalix/ts/s/sys/pam.d/" kopiert, wobei der Ordner "ts" von Server zu Server anders heißen kann. Bereits existiernde Dateien können überschrieben werden.
Die Datei "scalix/single_sign_on/om_ldap.conf" des ZIP Archies wird nach "/var/opt/scalix/ts/s/sys/" kopiert und mit einem Editor geöffnet. Der Hostname des OpenLDAP Servers sowie die Base zu den Usern muss bearbeitet werden. Eine fertige Konfiguration könnte so aussehen:


host=localhost
search=subtree
base=ou=users,dc=entwicklung,dc=sin
filter=uid=%s
tls=off

Um die Änderungen wirksam zu machen, müssen die Scalix Dienste neu gestartet werden. Hierzu folgende Behehle verwenden:


omshut
omrc

Ab sofort muss am Scalix Server überall das Passwort der Benutzer vom OpenLDAP verwendet werden. Sollte im OpenLDAP / LAM kein Benutzername "sxadmin" existieren, dann sollte dringends einer angelegt werden, da man sich sonst nicht mehr ins SAC einloggen kann (auch hier wird das OpenLDAP Passwort des sxadmin verwendet).

2.3.2. Synchronisierung

Zur Synchronisierung wird das Tool "omldapsync" benutzt, welches Scalix bereits nach einer Standardinstallation beinhaltet. Am Beginn wird folgender Befehl ausgeführt, wobei anstatt von "openldap" auch ein anderer beliebiger Name gewählt werden kann.

omldapsync -i openldap

Nun ist man im Installation / Konfigruationsmenü des omldapsync. Da nun die Synchronisierung konfiguriert wird, wählt man die Nummer "1".


2008-01-21 16:43:51 STATUS: Interactive for openldap started ########
Common tasks menu for syncid openldap
0. Display this menu
1. Configure the LDAP dir sync settings
2. Force a complete (re)load of the directory
3. Update the directory after some changes
4. Accept previous error and update directory
5. Skip previous error and update directory
6. Update the directory and prompt for error
7. Modify all sync records from the directory
8. Delete all sync records in the directory
d. Toggle debug mode from current setting <0>
n. Toggle test mode from current setting <>
q. Quit
INPUT: Please enter an option (0): 1

Jetzt beginnt die Konfiguration. Man wird gefragt, welcher Synchronisierungstyp benutzt wird. Da OpenLDAP verwendet wird, ist hier die Eingabe "13". Weitere Informationen hierzu ist im Manual vom omldapsync zu finden ("man omldapsnyc").


2008-01-21 16:45:33 STATUS: Configuration of openldap started ########
2008-01-21 16:45:33 INFO: create /var/opt/scalix/ts/s/ldapsync/openldap ...
INPUT: Select sync agreement type to create (21): 13

Jetzt wird man gefragt, ob man die Konfigurationsdatei bearbeiten will. Hier wird "n" eingegeben, da die Konfigurationsdatei aus dem ZIP Archiv verwendet wird, dazu aber gleich mehr.


INPUT: Edit config file now y/n (n):n

Nun wird man noch gefragt, ob man die Konfigurationsdatei testen will. Da aber derzeit noch die Standardkonfiguration verwendet wird, wird der Test sehr wahrscheinlich fehlschlagen, daher kann dieser gleich mit "n" übersprungen werden.


INPUT: Attempt to test data extraction now y/n (n):n
2008-01-23 17:47:17 STATUS: Configuration of openldap completed ########
Common tasks menu for syncid openldap
0. Display this menu
1. Configure the LDAP dir sync settings
2. Force a complete (re)load of the directory
3. Update the directory after some changes
4. Accept previous error and update directory
5. Skip previous error and update directory
6. Update the directory and prompt for error
7. Modify all sync records from the directory
8. Delete all sync records in the directory
d. Toggle debug mode from current setting <0>
n. Toggle test mode from current setting <>
q. Quit
INPUT: Please enter an option (0):q

Das Konfigurationsmenü kann nun mit "q" beendet werden.
Die Konfigurationsdatei muss nun angepasst werden. Dazu wird die Konfigurationsdatei aus dem ZIP Archiv (scalix/sync.cfg) nach /var/opt/scalix/[ts]/s/ldapsync/openldap/sync.cfg kopiert. [ts] heißt von Server zu Server anders. Nun wird noch die Konfigurationsdatei ins UNIX Format kodiert, um Fehler zu vermeiden:


dos2unix /var/opt/scalix/[ts]/s/ldapsync/openldap/sync.cfg

Nun wird die Konfigurationsdatei "/var/opt/scalix/[ts]/s/ldapsync/openldap/sync.cfg" bearbeitet. Folgende Zeilen müssen verändert werden:

  • JAVA_HOME: Das Verzeichnis vom JRE
  • EX_HOST: Der Hostname bzw. IP Adresse des LDAP Servers
  • EX_PORT: Port des OpenLDAP Servers, standardmäßig 389
  • EX_LOGON: DN des Users, welcher sich am OpenLDAP Server authentifiziert darf und Schreibrechte hat.
  • EX_PASS: Password des Users, welcher sich am OpenLDAP Server authentifiziert.
  • IM_CAA_URL: Url zum CAA. Normalerweiße: http://fqdn/caa/ . Es muss mit einem / enden!
  • IM_CAA_KEYSTORE: Nur eine Angabe, falls HTTPS benutzt wird.
  • IM_CAA_NAME: Scalix User, welcher Administratorrechte hat.
  • IM_CAA_PASS: Password des Scalix Users.
  • IM_DELETE_MAILBOX: Wenn ein User am Scalix Server durch die Synchronisierung gelöscht wird, soll dann auch die Mailbox des Users gelöscht werden?.
  • EX_BASE1: Die DN zu den Users des OpenLDAP.
  • EX_BASE2: Die DN zu den Gruppen des OpenLDAP.
  • EX_BASE3-9: Falls die Users bzw. Gruppen auf verschiedene DNs aufgeteilt sind. Im Normalfall leer lassen.


Dann wird in der Konfiguration noch folgende Stelle gesucht:


memberUid|omMemberForeignAddr|*|!SPRINTF=uid=%s,ou=users,dc=entwicklung,dc=sin

Hier ist die DN zu den Users zu erstezen. %s ist eine Variable und steht für den Usernamen des Users.

3. Synchronisierung

Die Installation / Konfiguration des Addons ist nun abgeschlossen. Nun kann mit dem synchronisieren am Scalix Server losgelegt werden. Sollten bereits Users oder Gruppen am Scalix Server existieren, so müssen diese am gleichen Stand mit dem OpenLDAP (LAM) gebracht werden.

Falls bereits Accounts am Scalix existieren, so kann direkt bei "3.1. Synchronisierung mit bestehenden Scalix Accounts" weitergelesen werden, ansonsten, wenn noch keine Scalix Accounts existieren, dann kann direkt bei "3.2. Synchronisierung ohne bestehende Scalix Accounts" weiterlesen.

Alle Gruppen, die nicht synchronisiert werden sollen, müssen auch nicht im LAM angelegt werden (z.B.: ScalixAdmins).

3.1. Synchronisierung mit bestehenden Scalix Accounts

Sollten bereits Users oder Gruppen am Scalix Server vorhanden sein, so müssen diese alle am gleichen Stand gebracht werden. Das beudetet, alle User- und Gruppendaten des Scalix Servers (E-Mail Adressen, im Adressbuch anzeigen, Administrator, Mailbox Administrator,...) müssen auch im LAM eingetragen werden. Auch alle User- und Gruppendaten, die im LAM eingetragen sind (Vorname, Nachname,...), müssen am Scalix Server eingetragen werden. Dies gilt für User und Gruppen!
Ist dies geschehen, kann nun mit der ersten Synchronisierung gestartet werden. Grundsätzlich wird mit "omldapsync -u openldap" synchronisiert, da aber nun schon User und Gruppen am Scalix Server existieren, würde dieses nur Fehler erzeugen, da bei der Synchronisierung überprüft wird, welche User bzw. Gruppen schon existieren. Um die Fehler zu ignorieren, wird der Parameter "-A" verwendet. Der Befehl sieht also nun so aus:


omldapsync -u openldap -A

In Zukunft kann ohne den Parameter "-A" synchronisiert werden, sollten jedoch Fehler auftreten, können diese mit dem Parameter "-A" ignoriert werden.

3.2. Synchronisierung ohne bestehende Scalix Accounts

Da noch keine Accounts am Scalix Server existieren, kann direkt mit dem Synchronisieren losgelegt werden.


omldapsync -u openldap

Dieser Befehl synchronisiert die User und Gruppen des OpenLDAPs zum Scalix Server. Sollten Fehler auftreten können diese ignoriert werden, kann dies bei der nächsten synchronisierung mit dem Parameter "-A" gemacht werden.

3.3. Cronjob

Da nun das Synchronisieren der User und Gruppen möglich ist, wird nun ein Cronjob eingerichtet, der alle 30 Minuten die Syncrhonisierung durchführt.
Dazu wird die Crontab Tabelle geöffnet (crontab -e) und es wird folgender Eintrag hinzugefügt:


*/30 * * * * omldapsync -u openldap

Ab sofort werden alle User- und Gruppendaten, die im LDAP Account Manager eingetragen werden, alle 30 Minuten zum Scalix Server synchronisiert.
Wenn ständig Fehler beim synchronisieren auftreten, diese aber ignoriert werden können, kann in der Crontab Tablle auch der Parameter "-A" zum omldapsync Befehl angehängt werden.

4. Sonstiges

Primäre Gruppen vom OpenLDAP können leider nicht synchronisiert werden. Daher sollten Gruppenzuordnungen, die im Scalix übernommen werden sollen, als Secondary eingetragen werden.