Debian Open-Xchange
Allgemein
Open-Xchange (http://www.open-xchange.com) ist ein sehr umfangreicher und sehr komfortabler Groupware-Server. Dank massivem Ajax- und Java-Einsatzes, ist dieser in der Bedienung einem Standalone Programm sehr ähnlich.
Voraussetzungen:
Installation
Installation der Pakete
Zunächst muß das Open-Xchange Repository zur Liste der apt-get Sources angelegt werden:
vi /etc/apt/sources.list
Folgende Zeile anhängen:
deb http://download.opensuse.org/repositories/server:/OX:/ox6/DebianLenny/ /
- Folgende Zeilen stellen einen Befehl dar, der sich über mehrere Zeilen erstreckt.
apt-get install open-xchange-admin-client open-xchange-admin-soap \ open-xchange-admin-doc open-xchange-admin-plugin-hosting-doc \ open-xchange-admin-plugin-hosting open-xchange-admin open-xchange-axis2 \ open-xchange-authentication-database open-xchange-cache \ open-xchange-charset open-xchange-common open-xchange-configjump-generic \ open-xchange-configread open-xchange-control open-xchange-data-conversion-ical4j \ open-xchange-conversion-engine open-xchange-conversion-servlet \ open-xchange-global open-xchange-group-managerequest open-xchange-gui \ open-xchange-i18n open-xchange-imap open-xchange-jcharset open-xchange-mailfilter \ open-xchange-management open-xchange-monitoring open-xchange-online-help-de \ open-xchange-passwordchange-database open-xchange-passwordchange-servlet \ open-xchange-push-udp open-xchange-resource-managerequest open-xchange-server \ open-xchange-sessiond open-xchange-settings-extensions open-xchange-smtp \ open-xchange-spamhandler-default open-xchange open-xchange-contactcollector
Nach dem Download aller Pakete erscheint das Java Licence Agreement. Dieses mit OK bestätigen: Tab+Enter Die Java Einverständnis-Frage mit ja beantworten: Cursor links/rechts + Enter
Datenbank anlegen
Open-Xchange bringt ein umfangreiches Script mit, um die Datenbank anzulegen und einzurichten. Dieses funktioniert allerdings nur, wenn dem MySQL-Superuser root kein Paswort zugeordnet ist. Zum Entfernen des Paswortes folgenden Befehl eingeben:
mysqladmin -u root -p password
Das alte root_pwd eingeben, um das Paswort endgültig zu löschen.
Einrichten der Datenbank (ox_pwd mit einem sinnvollen Passwort für die Datenbank ersetzen):
/opt/open-xchange/sbin/initconfigdb --configdb-pass=ox_pwd -a
- Unbedingt wieder das Root-Passwort für den MySQL-Datenbankserver vergeben, da ansonsten jeder Datenbanken und weitere User anlegen, löschen oder sich Rechte erteilen könnte:
mysqladmin -u root password root_pwd
Abschließen der Installation
Starten des Adminservers:
/etc/init.d/open-xchange-admin start
Vergeben eines Passwortes für den Administrator: admin_pwd
cd /opt/open-xchange/sbin ./oxinstaller --servername=oxserver --configdb-pass=ox_pwd --master-pass=admin_pwd --ajp-bind-port=localhost
Registrieren des Servers bei der Datenbank:
./registerserver -n oxserver -A oxadminmaster -P admin_pwd
Anlegen eines lokalen Filestore:
mkdir /var/opt/filestore chown open-xchange:open-xchange /var/opt/filestore ./registerfilestore -A oxadminmaster -P admin_pwd -t file:///var/opt/filestore
Registrieren der Groupware Datenbank:
./registerdatabase -A oxadminmaster -P admin_pwd -n oxdatabase -p ox_pwd -m true
Context anlegen (Befehl besteht aus zwei Zeilen ; domain.org durch reale Domain ersetzen):
./createcontext -A oxadminmaster -P admin_pwd -c 1 -u oxadmin -d "Context Admin" -g Admin -s User\ -p admin_pwd -L defaultcontext -e oxadmin@domain.org -q 1024 --access-combination-name=all
Starten des Groupware-Servers:
/etc/init.d/open-xchange-groupware start
User anlegen
User die auf Open-Xchange Zugriff erhalten sollen müssen zuvor in der Datenbank angelegt werden. Damit später Imap-User gegen die Open-Xchange Datenbank authorisiert werden können (|→ siehe hier) , muß noch das Passwort-Hashing-Verfahren auf CRYPT geändert werden:
vi /opt/open-xchange/etc/admindaemon/User.properties
Den Eintrag DEFAULT_PASSWORD_MECHANISM von SHA auf CRYPT abändern:
DEFAULT_PASSWORD_MECHANISM=CRYPT
createuser kennt folgende Optionen:
Long Parameter | Short Parameter | Bedeutung |
---|---|---|
--adminuser | -A | Adminuser der zur Authorisierung nötig ist. Normalerweise oxadmin |
--adminpass | -P | Passwort admin_pwd des Users oxadmin |
--contextid | -c | Context-ID. Normalerweise 1 |
--username | -u | Username (Loginname) |
--displayname | -d | Displayname: In Open-Xchange angezeigter Name |
--password | -p | Passwort des neu anzulegenden Users |
-e | Emailadresse des neuen Users | |
--givenname | -g | Givenname: Z.B. Vorname des Users |
--surname | -s | Nachname des Users |
--language | -l | Defaultsprache der Open-Xchange Oberfläche des neuen Users. Kann auch in den Optionen später vom Nutzer selbst geändert werden. |
--department | -x | Abteilung |
--company | -z | Firma |
--imaplogin | Loginname des Nutzers auf dem Imap-Server | |
--imapserver | Hostadresse des Imap-Servers. Normalerweise localhost | |
--smtpserver | Hostadresse des SMTP-Servers. Normalerweise localhost |
Anlegen des Users Tux (Befehl besteht aus zwei Zeilen):
createuser -c 1 -A oxadmin -P admin_pwd -u tux -d "User Tux" -g tux -s Tux_Vorname \ -p tux_pwd -e tux@domain.org --imaplogin tux --imapserver localhost --smtpserver localhost
Funktionscheck
Webbrowser öffnen und Adresse http://IP_Des_Servers/ox6 eingeben. Der Login-Bildschirm von Open-Exchange erscheint.
Mit den Login-Daten des User Tux einloggen. Die Open-Xchange Weboberfläche erscheint.
In den Bereich Einstellungen wechseln, um diese dem persönlichen Geschmack anzupassen. Z.B. Einstellen der Sprache auf Deutsch, Zeit-und Datumsformat, Userdaten, usw.
Open-Xchangen Admin Oberfläche
Mit Hilfe der Adminoberfläche können neue User bzw. bestehende User, auf sehr viel elegantere und einfachere Art und Weise via Weboberfläche anstatt der ellenlangen createuser bzw. changeuser Befehle, angelegt bzw. bearbeitet werden.
cd /usr/local/src (evtl. mit mkdir anlegen, falls Verzeichnis nicht existiert) wget http://www.kess.cc/ox-admin-gui/at_download/file mv file ox-admingui.tar.gz tar xvf ox-admingzu.tar.gz chown -R www-data:www-data admingui vi admingui/config.php
Folgende Änderungen durchführen:
$oxadminpass = 'admin_pwd'; $domains = array("domain.org"); $adminusers = array("oxadmin", "Tux");
Mit dem Eintrag $adminusers können mehrere User die Berechtigung erhalten, die Adminoberfläche zu benutzen. Die User jeweils durch Komma getrennt angeben, wie oben im Beispiel für die User oxadmin und Tux.
Auf den Webserver verschieben:
mv admingui /var/www/ox6/
Open-Xchange Konfig anpassen, damit die Adminoberfläche ansprechbar ist:
vi /opt/open-xchange/etc/groupware/configjump.properties
URL-Eingeben, unter der Oüpen-Xchange erreichbar ist. Hier zwei Beispiele (nur eine eintragen):
URL=http://IP_Des_Servers/ox6/admingui/login.php?u=%u&p=%p URL=https://Domain.org/admingui/login.php?u=%u&p=%p
Open-Xchange neustarten:
/etc/init.d/open-xchange-admin restart /etc/init.d/open-xchange-groupware restart
Webbrowser öffnen und als Adminuser (oxadmin bzw. User, die als $adminusers eingetragen wurden) einloggen → wie hier beschrieben. Einstellungen öffnen Auf den Link Extras klicken. Ein neues Fenster mit der Adminoberfläche sollte sich öffnen. Hier können neue User angelegt bzw. bestehende bearbeitet werden.
- Es ist derzeit nicht möglich, die emailadresse und den Usernamen (Loginname) zu ändern. Dies ist für eine zukünftige Version geplant.
Optional: Imap User gegen Open-Xchange authorisieren
Nachdem Open-Xchange eine komplette Userverwaltung mitbringt, empfiehlt es sich die Imap-user gegen die Open-Xchange Datenbank zu authorisieren. Dies hat den Vorteil, dass die Passwörter nur einmal gepflegt werden müssen. Weiterhin kann jeder User sein Passwort in der Open-Xchange Weboberfläche sehr einfach ändern.
Konfiguration
Für die MySQL-basierte authorisierung von User sind die beiden folgenden Module erforderlich:
apt-get install libnss-mysql libpam-mysql vi /etc/pam.d/imap
Alle vorhandenen Einträge auskommentieren (#-Zeichen davor setzen) und folgende Zeilen einfügen
- Sämtliche Einträge hinter auth in eine Zeile und hinter accout in eine Zeile. Die Zeilenumbrüche sind nur zur Erhöhung der Übersichtlichkeit eingefügt.
auth optional pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=ox_pwd db=oxdatabase_7 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1 account required pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=ox_pwd db=oxdatabase_7 [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1
cp /etc/pam.d/imap /etc/pam.d/sieve
vi /etc/libnss-mysql.cfg
Folgende Zeilen einfügen:
- Einträge, die ganz links beginnen in eine Zeile schreiben. Die Zeilenumbrüche und Einrückungen wurden nur zur Erhöhung der Übersichtlichkeit eingefügt.
getpwnam SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.id=prg_contacts.userid AND login2user.uid='%1$s' LIMIT 1 getpwuid SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE user.cid=1 AND login2user.id=user.id AND prg_contacts.userid=user.id AND user.uidNumber='%1$u' LIMIT 1 getspnam SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,user.shadowLastChange,0,0,-1,-1,'A' FROM login2user,user WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.uid='%1$s' LIMIT 1 getpwent SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.id=prg_contacts.userid getspent SELECT login2user.uid,user.userPassword,user.shadowLastChange,0,0,-1,-1,'A' FROM login2user,user WHERE login2user.cid=1 AND login2user.id=user.id; getgrnam SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 AND identifier='%1$s' LIMIT 1 getgrgid SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 AND gidNumber='%1$u' LIMIT 1 getgrent SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 memsbygid SELECT login2user.uid FROM login2user,groups,groups_member WHERE groups.cid=1 AND groups.id=groups_member.id AND groups_member.member=login2user.id AND groups.gidNumber='%1$u' gidsbymem SELECT groups.gidNumber FROM groups,groups_member,user,login2user WHERE groups.cid=1 AND groups_member.member=user.id AND user.id=login2user.id AND groups.id=groups_member.id AND login2user.uid='%1$s'; host localhost database oxdatabase_7 username openexchange password ox_pwd
vi /etc/libnss-mysql-root.cfg
Folgende Zeilen einfügen:
username openexchange password ox_pwd
vi /etc/nsswitch.conf
Alle vorhandenen Zeilen auskommentieren (#Zeichen davor setzen) und folgende Zeilen einfügen:
passwd: files mysql group: files mysql hosts: files dns
Rechte anpassen, um das Datenbank-Passwort im File libnss-mysql-root.cfg vor fremdem Zugriff zu schützen:
chmod 600 /etc/libnss-mysql-root.cfg chmod 600 /etc/libnss-mysql.cfg chmod 600 /etc/pam.d/imap chmod 600 /etc/pam.d/sieve
Saslauth Daemon neustarten, um die Änderungen zu übernehmen.
/etc/init.d/saslauthd restart
Cyrus-User anlegen
Nachdem die User nun gegen die Open-Xchange Datenbank authorisiert werden, muß auch der Cyrus-User, der für die Administration des Imap-Servers verantwortlich ist, in der Open-Xchange Datenbank angelegt werden. Dies kann entweder via Adminoberfläche (→ siehe hier) oder mittels folgendem Befehl erfolgen:
createuser -c 1 -A oxadmin -P admin_pwd -u cyrus -d "Cyrus Admin" -g cyrus -s Admin \ -p CYRUS_PWD -e cyrus@domain.org --imaplogin cyrus --imapserver localhost --smtpserver localhost
Neuen User anlegen
Um einen komplett neuen User Tux_neu anzulegen müssen folgende Schritte ausgeführt werden:
- User Tux_neu in der Open-Xchange Datenbank anlegen (→ siehe hier)
- Postfach anlegen (→ siehe auch hier):
cyradm --user cyrus localhost
Passwort CYRUS_PWD eingeben Folgende cm Befehle (create Mailbox) eingeben
cm user.Tux_neu cm user.Tux_neu.Drafts cm user.Tux_neu.Outbox cm user.Tux_neu.Sent cm user.Tux_neu.Trash
Die Adminoberfläche mit folgenden Befehlen verlassen:
quit
Funktionscheck
Wie unter → Funktionscheck beschrieben.