Debian Open-Xchange: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 214: Zeile 214:
     ServerName ox.'''''domain.org'''''
     ServerName ox.'''''domain.org'''''
     SSLEngine on
     SSLEngine on
     /etc/ssl/certs/ssl-cert-snakeoil.pem
     SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
   
   
     # deflate
     # deflate

Version vom 23. September 2010, 21:12 Uhr

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.


Bulbgraph.png Hinweis:

Der Server sollte mindestens 1GB Ram, besser 2GB Ram haben, damit Open-Xchange sinnvoll eingesetzt werden kann. Die Ajax- und Java basierte Oberfläche hat einen relativ großen Ressourcen-Verbrauch zur Folge.


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://software.open-xchange.com/OX6/stable/DebianLenny/ /

Apt-Key importieren:

wget http://software.open-xchange.com/oxbuildkey.pub -O - | apt-key add -

Anschließend muss ein update der Sourceliste durchgeführt werden

 apt-get update


Bulbgraph.png Hinweis:
Folgende Zeilen stellen einen Befehl dar, der sich über mehrere Zeilen erstreckt.
apt-get install sun-java6-jdk ant open-xchange open-xchange-authentication-database \
open-xchange-admin-client open-xchange-admin-lib open-xchange-admin-plugin-hosting \
open-xchange-admin-plugin-hosting-client open-xchange-admin-plugin-hosting-lib \
open-xchange-configjump-generic open-xchange-configjump-generic-gui \
open-xchange-contactcollector open-xchange-conversion open-xchange-conversion-engine \
open-xchange-conversion-servlet open-xchange-crypto open-xchange-data-conversion-ical4j \
open-xchange-dataretention open-xchange-dataretention-csv open-xchange-genconf \
open-xchange-genconf-mysql open-xchange-gui open-xchange-imap \
open-xchange-mailfilter open-xchange-management open-xchange-monitoring \
open-xchange-passwordchange-database open-xchange-passwordchange-servlet \
open-xchange-pop3 open-xchange-publish open-xchange-publish-basic \
open-xchange-publish-infostore-online open-xchange-publish-json \
open-xchange-publish-microformats open-xchange-push-udp open-xchange-sessiond \
open-xchange-resource-managerequest open-xchange-server \
open-xchange-settings-extensions open-xchange-smtp open-xchange-spamhandler-default \
open-xchange-sql open-xchange-subscribe open-xchange-xerces-sun \
open-xchange-subscribe-json open-xchange-subscribe-microformats \
open-xchange-subscribe-crawler open-xchange-subscribe-xing \
open-xchange-subscribe-linkedin open-xchange-templating open-xchange-timer \
open-xchange-unifiedinbox open-xchange-online-help-de open-xchange-admin-doc \
open-xchange-admin-plugin-hosting-doc open-xchange-charset \
open-xchange-contacts-ldap open-xchange-control open-xchange-easylogin \
open-xchange-group-managerequest open-xchange-i18n open-xchange-jcharset


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

Open-Xchange funktioniert nur mit der Sun-Java Umgebung korrekt. Falls bereits eine andere Java-Umgebung (z.B. GIJ bzw. GCJ) installiert und aktiviert ist, funktioniert Open-Xchange nicht. Deshalb mittels Befehl:

update-alternatives --config java

Die Java Umgebung auswählen. Der Befehl liefert z.B. folgende Ausgabe:

There are 3 alternatives which provide `java'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/bin/gij-4.3
*+        2    /usr/lib/jvm/java-gcj/jre/bin/java
          3    /usr/lib/jvm/java-6-sun/jre/bin/java

Press enter to keep the default[*], or type selection number:

Im obigen Beispiel mittels 3 die Sun Java-Umgebung auswählen.

Mittels folgendem Befehl die Java-Version überprüfen:

java -version

Die Ausgabe sollte in etwa folgendermaßen aussehen:

java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

Die Version sollte 1.6.0 sein. Die folgende Stelle kann evtl. abweichen und stellt kein Problem dar.


AJP-Port, auf dem Open-Xchange auf Anfragen vom Webserver lauscht:

vi /opt/open-xchange/etc/groupware/ajp.properties

Den Eintrag

AJP_PORT=8009

ändern in:

AJP_PORT=8030


Apache konfigurieren

Damit Open-Xchange korrekt funktioniert, müssen einige Module aktiviert und Optionen von Apache angepasst werden.

Open-Xchange kann entweder eingerichtet werden, dass dieser unter http://domain.org/ox6 bzw. https://domain.org/ox6 (kein Virtualhost) oder via Virtualhost (z.B. https://ox.domain.org). Es sollte nur eine Option gewählt werden - nicht beide.

a2enmod proxy
a2enmod proxy_ajp
a2enmod expires
a2enmod deflate
a2enmod headers
vi /etc/apache2/conf.d/proxy_ajp.conf

Folgenden Inhalt einfügen:

<Proxy *>
Order deny,allow
allow from all
</Proxy>

ProxyPass /axis2 ajp://127.0.0.1:8030/axis2 smax=0 ttl=60 retry=5
ProxyPass /ajax ajp://127.0.0.1:8030/ajax smax=0 ttl=60 retry=5
ProxyPass /servlet ajp://127.0.0.1:8030/servlet smax=0 ttl=60 retry=5
ProxyPass /infostore ajp://127.0.0.1:8030/infostore smax=0 ttl=60 retry=5
ProxyPass /publications ajp://127.0.0.1:8030/publications smax=0 ttl=60 retry=5


Apache ohne Virtualhost

vi /etc/apache2/sites-enabled/000-default

Folgende Zeilen am Ende der Virtualhost-Definition(vor der Zeile </VirtualHost>) einfügen. Falls mehere Virtualhosts für HTTP und HTTPS vorhanden sind, die Änderung in beiden Virtualhosts durchführen:

   <Directory /var/www/>
      AllowOverride None
      Order allow,deny
      allow from all
      RedirectMatch ^/$ /ox6/
      Options +FollowSymLinks +SymLinksIfOwnerMatch
   </Directory>
   # deflate
   AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript

   # pre-compressed files
   AddType text/javascript .jsz
   AddType text/css .cssz
   AddType text/xml .xmlz
   
   AddEncoding x-gzip .jsz .cssz .xmlz
   SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip
   
   ExpiresActive On
   
   <Location /ox6>
      # Expires (via ExpiresByType to override global settings)
      ExpiresByType image/gif "access plus 6 months"
      ExpiresByType image/png "access plus 6 months"
      ExpiresByType image/jpg "access plus 6 months"
      ExpiresByType image/jpeg "access plus 6 months"
      ExpiresByType text/css "access plus 6 months"
      ExpiresByType text/html "access plus 6 months"
      ExpiresByType text/xml "access plus 6 months"
      ExpiresByType text/javascript "access plus 6 months"
      ExpiresByType text/x-js "access plus 6 months"
      ExpiresByType application/x-javascript "access plus 6 months"
      ExpiresDefault "access plus 6 months"
      Header append Cache-Control "private"
      Header unset Last-Modified
      Header unset Vary
      # Strip version
      RewriteEngine On
      RewriteRule v=\w+/(.+) $1 [L]
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>
   
   <Location /ox6/ox.html>
      ExpiresByType text/html "now"
      ExpiresDefault "now"
      Header unset Last-Modified
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>
   
   <Location /ox6/index.html>
      ExpiresByType text/html "now"
      ExpiresDefault "now"
      Header unset Last-Modified
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>   

sodass das Ende des Virtualhosts folgendermaßen aussieht:

      ...
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>
</VirtualHost>

Webserver neu starten um die Änderungen zu übernehmen:

/etc/init.d/apache2 restart


Apache mit Virtualhost

Im folgenden wird erläutert, wie Open-Xchange unter https://ox.domain.org erreichbar ist. Die Adresse kann beliebig angepasst werden.

vi /etc/apache2/sites-enabled/ox6_https.conf

Folgende Zeilen einfügen und die domain.org entsprechend anpassen:

<VirtualHost *:443>
   DocumentRoot /var/www/ox6
   DirectoryIndex index.html ox.html
   <Directory "/var/www/ox6">
      allowOverride None
      Order allow,deny
      allow from all
      Options +FollowSymLinks +SymLinksIfOwnerMatch
   </Directory>
   ServerName ox.domain.org
   SSLEngine on
   SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem

   # deflate
   AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript

   # pre-compressed files
   AddType text/javascript .jsz
   AddType text/css .cssz
   AddType text/xml .xmlz

   AddEncoding x-gzip .jsz .cssz .xmlz
   SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip

   ExpiresActive On

   <Location />
      # Expires (via ExpiresByType to override global settings)
      ExpiresByType image/gif "access plus 6 months"  
      ExpiresByType image/png "access plus 6 months"
      ExpiresByType image/jpg "access plus 6 months"
      ExpiresByType image/jpeg "access plus 6 months"
      ExpiresByType text/css "access plus 6 months"
      ExpiresByType text/html "access plus 6 months"
      ExpiresByType text/xml "access plus 6 months"
      ExpiresByType text/javascript "access plus 6 months"
      ExpiresByType text/x-js "access plus 6 months"
      ExpiresByType application/x-javascript "access plus 6 months"
      ExpiresDefault "access plus 6 months"
      Header append Cache-Control "private"
      Header unset Last-Modified
      Header unset Vary
      # Strip version
      RewriteEngine On
      RewriteRule v=\w+/(.+) $1 [L]
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>

   <Location /ox.html>
      ExpiresByType text/html "now"
      ExpiresDefault "now"
      Header unset Last-Modified
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>

   <Location /index.html>
      ExpiresByType text/html "now"
      ExpiresDefault "now"
      Header unset Last-Modified
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
      # Turn off ETag
      Header unset ETag
      FileETag None
   </Location>
</VirtualHost> 

Webserver neu starten um die Änderungen zu übernehmen:

/etc/init.d/apache2 restart


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 ' '    (Kein Leerzeichen zwischen den zwei ' Zeichen)

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


Warning.png Achtung:

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

Adminserver neustarten, um die Änderungen des oxinstallers zu übernehmen.

/etc/init.d/open-xchange-admin restart

Eine Minute warten und prüfen, ob der Admin-Daemon läuft. Ansonsten macht es keinen Sinn, die folgenden Befehle auszuführen, da diese dann nicht funktionieren. Der vollständige Start des Daemons kann bis zu einer Minute dauern, auch wenn der Eingabe-prompt nach einigen Sekunden erscheint.

/etc/init.d/open-xchange-admin status

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

Setzen der korrekten Eigentümerrechte:

 chown -R open-xchange:open-xchange /opt/open-xchange/

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

Admin-Daemon neu starten, damit die Änderung des Hashing-Verfahrens übernommen wird:

/etc/init.d/open-xchange-admin restart

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
--email -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-Xchange Admin Oberfläche

Standardmäßig liefert Open-Xchange keine Möglichkeit mit, User in einer graphischen Oberfläche anzulegen bzw. zu bearbeiten. Die einzig vorgesehene Methode ist oben angeführter ellenlanger createuser-Befehl. Diesen Missstand beseitigt folgendes Admingui (http://oxgui.wordpress.com).

Downloaden und installieren

cd /usr/local/src (evtl. mit mkdir anlegen, falls Verzeichnis nicht existiert)

Aktuelle Oberfläche mittels downloaden:

wget http://oxgui.sciencesoft.at/psoxgui.0.1.9.tar.gz

Entpacken und Rechte anpassen:

tar -C / -xvzf  psoxgui.0.1.9.tar.gz
chown -R open-xchange:open-xchange /opt/open-xchange/etc/psoxgui

Open-Xchange neu starten:

/etc/init.d/open-xchange-admin restart
/etc/init.d/open-xchange-groupware restart

Ca 10s warten bis Open-Xchange komplett neu gestartet ist:

/opt/open-xchange/sbin/listbundles

Der Befehl sollte folgende Ausgabe liefern:

...
bundlename: at.sciencesoft.oxadmingui status: ACTIVE
...


Konfiguration

Webbrowser öffnen und Adresse http://IP_Des_Servers/ox6/servlet/webserver/index.html eingeben. Die Loginbildschirm des Admin-Gui sollte erscheinen.

  • Login mit:
OXadmin:  oxadminmaster
Passwort: admin_pwd
  • Contextadmin festlegen

Im linken Navigationsbereich Kontext anklicken. Haken in der Box vor ID 1 setzen und anschließend auf den Button ContextAdmin setzen klicken

ContextAdmin: oxadmin
Passwort:     admin_pwd

Den Button Speichern anklicken

  • Defaultcontext festlegen

Haken in der Box vor ID 1 setzen und anschließend Button setzen anklicken


Benutzung Adminoberfläche

Nach dem Einloggen können Benutzer und Gruppen angelegt, geändert und gelöscht werden. Die Benutzung sollte selbsterklärend sein.


Optional: Mailserver-User gegen Open-Xchange authorisieren

Nachdem Open-Xchange eine komplette Userverwaltung mitbringt, empfiehlt es sich die Imap- und Postfix-User (SMTP-Auth) 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.

Bulbgraph.png Hinweis:

Wenn bei folgenden Schritten Konfigurationsfehler gemacht werden, funktioniert evtl. der Login beim Imap- und Postfix-Server nicht mehr. Deshalb solten alle Änderungen an bereits bestehenden Files durch auskommentieren bereits bestehender Einträge und Einfügen einer neuen Zeile erfolgen. So kann jederzeit zur Originalkonfiguration erfolgen. Nachdem "nur" die Authorisierung der user für den Mailserver umgestellt wird, hat dies keinerlei Einfluss auf das Login-Verhalten mittels Putty oder FTP-Server.


Konfiguration

Für die MySQL-basierte authorisierung von User sind die beiden folgenden Module erforderlich:

apt-get install libnss-mysql-bg libpam-mysql
Bulbgraph.png Hinweis:

Bei zwei Testinstallationen wurde festgestellt, dass die Datenbank von Open-Xchange nicht immer den selben Namen trägt. Einmal war dieser oxdatabase_6 und einmal oxdatabase_7. Deshalb sollte vor der Fortsetzung der Konfiguration mittels phpmyadmin (siehe → siehe auch hier) der exakte Datenbankname -> OX-DB ermittelt werden und in folgenden Einstellungen enstprechend angepasst werden.

vi /etc/pam.d/imap 

Alle vorhandenen Einträge auskommentieren (#-Zeichen davor setzen) und folgende Zeilen einfügen

Bulbgraph.png Hinweis:

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=OX-DB
        [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=OX-DB
        [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
cp /etc/pam.d/imap /etc/pam.d/smtp
vi /etc/libnss-mysql.cfg

Folgende Zeilen einfügen:

Bulbgraph.png Hinweis:

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  OX-DB
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
chmod 600 /etc/pam.d/smtp


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 auch hier) oder mittels folgendem Befehl erfolgen:

cd /opt/open-xchange/sbin
./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

Bulbgraph.png Hinweis:

Nachdem die Authorisierung des IMAP-Servers auf die Open-Xchange Datenbank umgestellt wurde, sind folgende Schritte nötig, um in Zukunft einen neuen User (Imap+Open-Xchange) anzulegen.

Um einen komplett neuen User Tux_neu anzulegen müssen folgende Schritte ausgeführt werden:

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.

Bulbgraph.png Hinweis:

Falls die Authorisierung nicht klappt, könnte ein falsches Hashing-Verfahren Verwendung finden. Dies kann mittels phpmyadmin (→ siehe auch hier) überprüft werden. In phpmyadmin einloggen und Datenbank oxdatabase_6 öffnen. In der Tabelle user den Reiter Anzeigen auswählen. Im Feld passwordMech sollte CRYPT stehen. Falss nicht, für den betreffenden User Tux_Change das Hashing-Verfahren mit folgenden Befehl umstellen:

/opt/open-xchange/sbin/changeuser -A oxadmin -P admin_pwd -c 1 -u Tux_Change -p Tux_PWD --passwordmech {CRYPT}


Optional: Synchronisation mit Funambol

Die Kontakte, Kalender und Aufgaben können mittels Funambol zwischen Open-Xchange, Outlook und Thunderbird auch mit mobilen Geräten wie Windows-Mobile und SyncML fähigen Handy's abgeglichen werden. Damit stehen diese Daten in allen Programmen und via Open-Xchange von jedem Webbrowser zur Verfügung.

Voraussetzung:

Installation

Download der nötigen Komponenten:

cd /usr/local/src/funambol
wget http://download.forge.objectweb.org/sync4j/funambol-ox-connector-7.0.5.zip

Open-Xchange Connector installieren:

unzip funambol-ox-connector-7.0.5.zip
cp Funambol/ox-connector/ox-connector-7.0.5.s4j /opt/Funambol/ds-server/modules
cp Funambol/ox-listener/funambol-ox-listener-7.0.5.zip /opt
cd /opt
unzip funambol-ox-listener-7.0.5.zip
rm funambol-ox-listener-7.0.5.zip

Aktivieren des ox-connector:

vi /opt/Funambol/ds-server/install.properties

An die Zeile modules-to-install den Eintrag ,ox-connector-7.0.5 anhängen, sodass diese folgendermaßen aussieht:

modules-to-install=content-provider-7.1.2,email-connector-7.1.1,foundation-7.1.1,phones-support-7.1.0,webdemo-7.1.0,ox-connector-7.0.5


Ox-connector Module installieren

cd /opt/Funambol/ds-server
../bin/install
Bulbgraph.png Hinweis:

Die Fragen zum neu erstellen der Datenbanken kann für alle mit Ausnahme der letzten (ox-connector) mit nein (n) beantwortet werden, da diese bereits bestehen und evtl. bereits mit Daten befüllt sind

Die Frage zum Installieren der Datenbank für den content-provider mit n beantworten Die Frage zum Installieren der Datenbank für den email-connector mit n beantworten Die Frage zum Installieren der Datenbank für das foundation Modul mit n beantworten Die Frage zum Installieren der Datenbank für das Modul phones-support mit n beantworten Die Frage zum Installieren der Datenbank für das Modul webdemo mit n beantworten Die Frage zum Installieren der Datenbank für den ox-connector mit y beantworten

Konfiguration

vi ../bin/ox-listener

Den Port auf dem ox-listener lauscht auf 13101 ändern, da Port 3101 bereits anderweitig verwendet wird:

JMX_PORT=13101
vi /opt/Funambol/config/com/funambol/oxlistener/task/OXListenerTask.xml
vi /opt/Funambol/config/com/funambol/oxlistener/task/OXListenerOneShotTask.xml
vi /opt/Funambol/config/ox/ox/OXConnector.xml

In allen drei Files den XML-Abschnitt abändern:

<void property="OXUrl">
    <string>http://oxfnbl.funambol.com:80</string>
</void>

in

<void property="OXUrl">
    <string>http://localhost:80</string>
</void>
vi /opt/Funambol/config/Funambol.xml

Den XML-Tag

<void property="officer">
    <string>com/funambol/server/security/UserProvisioningOfficer.xml</string>
</void>

abändern in:

<void property="officer">
    <string>com/funambol/server/security/OXOfficer.xml</string>
</void>

Startscript

Damit der ox-connector beim Systemstart automatisch startet, muß ein Startscript angelegt und eingerichtet werden:

ln -s /opt/Funambol/bin/ox-listener /etc/init.d/ox-listener
update-rc.d ox-listener defaults

Funambol neustarten:

/etc/init.d/funambol stop
/etc/init.d/funambol start
/etc/init.d/ox-listener start


Konfiguration mittels Windows-Admintool

Das Admintool öffnen und als Admin einloggen

Open-Xchange Connector anpassen: Im Linken Navigationsbaum auf Modules/ox klicken OxConnector doppelklicken. URL abändern in: http://localhost:80 Button Save anklicken


Anpassen der Clients

Die Clients müssen ebenfalls angepasst werden, damit diese mit der Open-Xchange Datenbank synchronisieren.

In den Einstellungen der Sync-Client die Datenbanken folgendermaßen ersetzen:

card -> oxcard
scard -> oxscard
cal -> oxcal
scal -> oxscal
task -> oxtask
stask -> oxstask
Bulbgraph.png Hinweis:
  • Hilfe zur Einstellung der Optionen → siehe hier
  • Für User/Passwort müssen die User-Daten von Open-Xchange (nicht Funambol) in den Clients verwendet werden, da die Authorisierung nun Open-Xchange anstatt Funambol übernimmt.


Update

Update von 6.8 auf 6.10. Mit Einführung von 6.10 werden die Debian Lenny Pakete nun direkt auf open-xchange.com bereitgestellt.

Ändern des Repository von Suse nach open-xchange:

vi /etc/apt/sources.list

Die Zeile

deb http://download.opensuse.org/repositories/server:/OX:/ox6/DebianLenny/ /

erstetzen mit

deb http://software.open-xchange.com/OX6/stable/DebianLenny/ /

Update durchführen:

apt-get update
apt-get dist-upgrade

Zusätzliche Pakete installieren:

apt-get install open-xchange-admin-lib open-xchange-admin-plugin-hosting-client \
open-xchange-admin-plugin-hosting-lib open-xchange-configjump-generic-gui \
open-xchange-conversion open-xchange-crypto open-xchange-dataretention  \
open-xchange-dataretention-csv open-xchange-genconf open-xchange-genconf-mysql  \
open-xchange-imap open-xchange-monitoring open-xchange-pop3 \
open-xchange-publish open-xchange-publish-basic open-xchange-publish-infostore-online \
open-xchange-publish-json open-xchange-publish-microformats open-xchange-subscribe \
open-xchange-xerces-sun open-xchange-subscribe-json open-xchange-subscribe-microformats \
open-xchange-subscribe-crawler open-xchange-subscribe-xing open-xchange-subscribe-linkedin \
open-xchange-templating open-xchange-timer open-xchange-unifiedinbox  \
open-xchange-contacts-ldap open-xchange-easylogin