Open Xchange Installation als Front-/Backend Variante

Hallo zusammen,

ich möchte UCS zusammen mit Open Xchange nicht als All-In-One System auf einem Server einsetzen sondern verteilt auf 2 UCS Server Instanzen. Dabei soll ein UCS Server das Backend (Datenbank, Speicher für OX Drive etc.) bereitstellen und einer weitere als Frontend in der DMZ die Weboberfläche, SMTP Server etc. anbieten.

Nun ist es über das App Center (soweit ich gesehen habe) nur möglich das Open Xchange System komplett auf einem UCS Server zu installieren. Welche Möglichkeiten gibt es hier ?

Mit der gleichen Frage bin ich bereits im Open Xchange Forum vertreten: https://forum.open-xchange.com/showthread.php?9184-How-to-set-storage-for-OX-Drive-to-another-Server
Die Idee dort war schlicht im Backend UCS+OpenXchange komplett zu installieren und dann auf dem Frontend nur noch einen Apache entsprechend aufzusetzen und auf das Backendumzuleiten.

Ich freue mich auf eure Ideen.

Hallo,

wie schon richtig erkannt sieht die App nur eine Single-Server Konfiguration vor.
Für ein distributed oder Multi-Server setup sind vermutlich diverse manuelle Schritte/Konfigurationen notwendig. Evtl. helfen hier die Informationen aus dem OX-Wiki: oxpedia.org/wiki/index.php?title … clustering

Mit freundlichen Grüßen
Janis Meybohm

Hallo,

icb bin nun in den Tiefen der OX Dokumentation fündig geworden:
Diese Kurzanleitung beschäftigt sich u.a. mit der Installation von Open Xchange unter UCS in einer verteilten Umgebung. http://software.open-xchange.com/OX6/OXSEforUCS/doc/OXSE4UCS_de.pdf

Mein Plan ist es nun die OX Instanz sowie die Mysql Datenbank auf einem Backend-Server einzurichten und als Frontend dann IMAP, Spam-/Virenfilter etc. einzurichten wie beschrieben.
Ich werde auf jeden Fall hier weiter berichten, da ich mir auch sicher bin dass dies nicht die letzte Frage zu dem Thema war.

Hallo,

ein Multi-Server Setup lässt sich vermutlich am einfachsten erreichen indem man auf dieses System aufbaut.Front- und Backend wären dann allerdings anders differenziert als Sie sich das vorstellen.
Auf dem “Backend” könnte einfach die OX App installiert werden, es würde dann Mail-Services (Cyrus, Postfix, Amavis, Spamassassin) sowie die OX Datenbank (MySQL) und auch ein OX Frontend bereitstellen und sich um die Integration in die UMC kümmern. Das System kann dann vermutlich auch mehr oder weniger ohne Anpassungen aktualisiert werden.

Auf einem weiteren System würde ich dann nur die OX Frontend Module (manuell) installieren und konfigurieren. Die Konfiguration kann dann vermutlich mehr oder weniger direkt von Backend übernommen werden. Hier müsste man bei einem Update natürlich kontrollieren ob sich an den Konfigurationen, Paketen, Repositorys o.ä. etwas geändert hat und das entsprechend übernehmen.

Die folgenden Schritte sollten eher als Leitfaden denn als Anleitung gesehen werden, es ist schon länger her dass ich die Aufgeschrieben habe und ich bin nicht sicher ob das alles so noch gültig ist/funktioniert:[code]ucr set ox/ldbaccount/username=""
ucr set ox/ldbaccount/passwordfile="/etc/ox-secrets/ldb-account.secret"
mkdir /etc/ox-secrets
rsync BACKEND:/etc/ox-secrets/ldb-account.secret /etc/ox-secrets/

apt-key adv --keyserver “hkp://keys.gnupg.net” --recv-keys DD1A5E9CEED949F0

export ldbusername=$(ucr get ox/ldbaccount/username)
ldbpasswordfile=$(ucr get ox/ldbaccount/passwordfile)
export ldbpassword=$(cat – “$ldbpasswordfile”)
ucr set repository/online/component/{frontend622,frontend74,backend74,oxmobility74,oxoutlook74,oxusm74}{/server?software.open-xchange.com,/prefix?OX6/OXSEforUCS,/username?${ldbusername},/password?${ldbpassword},=enabled}
ox/components/available=frontend622,frontend74,backend74,oxmobility74,oxoutlook74,oxusm74
repository/online/component/oxmobility74/defaultpackage=‘open-xchange-meta-mobility univention-ox-usm-ox’
repository/online/component/oxoutlook74/defaultpackage=‘open-xchange-meta-outlook’
repository/online/component/{frontend622/description=Open-Xchange\ 6.22.2\ UI,frontend74/description=Open-Xchange\ 7.4\ UI,backend74/description=Open-Xchange\ Server,oxmobility74/description=OXtender\ for\ Business\ Mobility,oxoutlook74/description=OXtender\ for\ MS\ Outlook,oxusm74/description=Open-Xchange\ Server\ USM\ Bundle}

univention-install open-xchange open-xchange-meta-ui-appsuite open-xchange-meta-ui-ox6
open-xchange-meta-outlook open-xchange-meta-mobility open-xchange-mailfilter
open-xchange-authentication-ucs open-xchange-core

a2enmod proxy proxy_http proxy_balancer expires deflate headers rewrite mime setenvif
rsync BACKEND:/etc/apache2/sites-available/ox /etc/apache2/sites-available/
rsync BACKEND:/etc/apache2/sites-available/freebusy /etc/apache2/sites-available/
rsync BACKEND:/etc/apache2/conf.d/proxy_*.conf /etc/apache2/conf.d/
rsync -a BACKEND:/opt/open-xchange/etc/. /opt/open-xchange/etc/
a2ensite ox[/code]

In /opt/open-xchange/etc/configdb.properties müsste dann der Connection-String zum MySQL Server angepasst werden (readUrl und writeUrl). Auf dem Backend muss der Zugriff vom Frontend natürlich erlaubt (configdb) werden. Außerdem steht in der Datenbank-URL standardmäßig 127.0.0.1, dort muss wohl ebenfalls der Backend Server eingetragen werden (oxpedia.org/wiki/index.php?title … ase_access):

[code]GRANT ALL PRIVILEGES ON . TO ‘openexchange’@'FRONTEND.SERVER.FQDN IDENTIFIED BY ‘</etc/ox-secrets/dbuser.secret>’;

UPDATE db_pool SET url=“jdbc:mysql://BACKEND.SERVER:FQDN:3306/?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useUnicode=true&useServerPrepStmts=false&useTimezone=true&serverTimezone=UTC&connectTimeout=15000&socketTimeout=15000” WHERE db_pool_id=1;[/code]

Ich hoffe das hilft Ihnen bei Ihrer Anforderung etwas weiter.

Mit freundlichen Grüßen
Janis Meybohm

Hallo Herr Meybohm,

danke erst einmal für die ausführliche Beschreibung.
Im Moment bin ich allerdings mit meiner vorgehensweise (wie im OX Forum beschrieben) sehr zufrieden. Allerdings bin ich der einfachen Integration halber von Exim abgewichen und bei Postfix geblieben.
Im Grund habe ich damit lediglich das komplette Paket “univention-mail-cyrus” entfernt indem ich die vorher die Abhängikeit im Paket “univention-mail-server” gelöscht habe.
Anschließend konnte ich ohne Probleme die nötigen dovecot-pakete (dovecot-common, dovecot-imapd und dovecot-pop3d) installieren. Konfigurationsseitig habe ich dann abschließend dovecot an LDAP angebunden und fertig.

Die Postfächer sind problemslos in OX ohne weitere Anpassungen verfügbar, der Mailversand per Postfix funktioniert ebenfalls und die Viren und Spamprüfung ist ebenfalls nicht beeinträchtigt nachdem sich an Postfix auch nichts geändert hat.

Zu letzterem interessiert mich noch ob bei Postfix aus ihrer Sicht noch Anpassungen notwendig sind ? Amavis und Spamassassin sollten aus meiner Sicht keine Änderung benötigen ?!

Ein Problem konnte ich allerdings feststellen: Wenn ich in UCS nun eine neue OX Domain erstelle und dann einen Benutzer anlege dessen Primäre-Mailadresse entsprechend der neuen Domain lautet versucht OX beim erst Login nicht einmal mit dem IMAP Server zu kommunizieren (log ist leer) um ein Postfach anzulegen. Erst wenn ich die Primäre-Adresse zurückstelle auf die erste Domain und die neue Domain lediglich als alternative Adresse bekommt der Benutzer ein Imap Postfach und alles läuft wie gewünscht.

Viele Grüße,
Ludwig

vermutlich nicht, abgesehen vom mail delivery evtl. (Dovcecot statt Cyrus).

Normalerweise werden die Mailboxen durch ein Listener Modul im Cyrus angelegt (d.h. sie sind bei der ersten Anmeldung an OX bereits vorhanden). Listener-Module übernehmen auch das Anlegen der Benutzer in der OX Datenbank sowie Anpassungen am OX Context (z.b. das hinzufügen neuer Maildomänen). Evtl. fehlen ihnen Listener-Module die das übernehmen.

Mit freundlichen Grüßen
Janis Meybohm

Wie ich gesehen habe kommunizieren Postfix und Cyrus über lmtp Port 2003. Das habe ich ebenfalls für Dovecot so eingerichtet, dass dieser auf Port 2003 seinen lmtp service anbietet. Damit sollte es getan sein oder ist hier noch ein spezifischer Login zu beachten den Postfix per default verwendet ?

Das klingt interessant. Aktuell ist es so, dass die Mailboxen beim ersten Loginversuch an OX durch Dovecot erstellt werden nachdem dieser die von OX übergebenen Nutzerdaten per LDAP verifiziert hat. Soweit funktioniert das auch prima für die primäre Domäne. Wenn es sich jedoch um eine neu angelegte handelt so übergibt OX nicht einmal Nutzerdaten an Dovecot. Im log steht hierzu gar nichts, also ob OX in diesem Fall nicht einmal den IMAP Server angefragt hätte.
Sind von ihnen genannte Listener Module im Paket “univention-mail-cyrus” enthalten ? Dieses hatte ich komplett (autoremove) mit seinen nicht mehr benötigten anhängen entfernt.

Je mehr ich mir das Ganze ansehe, desto weniger glaube ich, dass hier ein Problem mit einem Listener Modul vorliegen kann.

Die UCS Domain habe ich original mit “intern.domain.tld” als interne Domain erstellt. Dies ist entsprechend auch die vorinstallierte Mail-Domain für OX gewesen. Nachdem ich jedoch den Mailserver für meine externe Domain “domain.tld” verwenden möchte habe ich diese entsprechend als OX-Mail-Domain zusätzlich angelegt.

Wenn ich jetzt einen neuen Benutzer anlege mit “user@domain.tld” also “Primäre E-Mail-Adresse” und “user@intern.domain.tld” als “Alternative E-Mail-Adresse” kann dieser sich zwar am OX-Portal einloggen, bekommt aber keine Mailbox. Laut log versucht OX noch nicht einmal kontakt mit dem IMAP Server aufzunehmen. Es passiert schlicht nichts.
Wenn ich jedoch “user@intern.domain.tld” also primäre Adresse belasse und “user@domain.tld” also alternative angebe, funktioniert es einwandfrei. Im log von Dovecot ist zu sehen, dass OX beim login die Daten weiterreicht und die Mailbox wird angelegt. Diese Lösung hat aber den nachteil dass die standard Absenderaddresse auf “user@intern.domain.tld” lautet.

Des Weiteren musste ich das Greylisting über Postgrey deaktivieren, denn jegliche mail an die neu erstellte Domain “XYZ@domain.tld” wird immer sofort rejected.

Hier fehlen mit noch ein paar Bausteine, bei denen sie mir noch weiterhelfen könnten.

Prinzipiel funktioniert jedoch damit jedoch der Mail-Empfang+Versand über externes Relay bereits problemslos (mit deaktiviertem Greylisting)

Am besten prüfen Sie mal die Module die Ihnen fehlen gegen ein normal installiertes OX System.

# dpkg -S /usr/share/univention-ox/listener/ox-domain.py univention-ox: /usr/share/univention-ox/listener/ox-domain.py

Ich kann mit vorstellen dass OX “nichts macht” wenn die Domain nicht im Context registriert ist:eval "$(ucr shell)" export PATH=$PATH:/opt/open-xchange/sbin/ listcontext -A oxadminmaster -P $(< /etc/ox-secrets/master.secret)

Mit freundlichen Grüßen
Janis Meybohm

Installierte Listener im Verzeichnis “/usr/share/univention-ox/listener/” sind:
ox- context.py /pyc
domain.py/pyc
groups.py/pyc
resource.py/pyc
user.py/pyc

listcontext ergab, dass beide Domänen “domain.tld” und “intern.domain.tld” laut lmappings Eintrag dem default context10 zugeordnet sind. Spielt die Reihenfolge hier eine Rolle, denn interessanterweise einhält lmappings folgende Einträge: “intern.domain.tld,context10,domain.tld” wieso taucht hier context10 als mapping auf sich selbst nochmals auf ?

Hallo,

ich denke dass die Reihenfolge keine Rolle spielt. Warum “context10” weiß ich so nicht, das ist aber denke ich OX standard.

Mit freundlichen Grüßen
Janis Meybohm

Hallo,

im OX-log file bin ich nun etwas weiter gekommen:

com.openexchange.mail.accountId=0 com.openexchange.mail.host=dc.domain1.tld com.openexchange.mail.login=user@domain2.tld com.openexchange.request.trackingId=534bc194168a431283be878885eba8cb com.openexchange.exception.OXException: MSG-1016 Categories=SERVICE_DOWN Message='Connection was refused or timed out while attempting to connect to remote server dc.domain1.tld for user user@domain2.tld.' exceptionID=-57995184$

Laut log verwendet OX für den Loginversuch beim IMAP Server den falschen mail.host, nämlich dc.domain1.tld statt imap.domain1.tld und findet dort verständlicherweise keinen IMAP Server vor.
Nun die Preisfrage: Wieso ?
Sobald ich beim eben angelegten Benutzer unter UCS die “Primäre E-Mail-Adresse” von “user@domain2.tld” wieder auf “user@domain1.tld” zurückstelle klappt alles bestens und im Log von OX ist zu sehen, dass der mail.host auf “imap.domain1.tld” steht. Was hat hier das eine mit dem anderen zutun ?

Hallo,

ich würde prüfen was zu dem Benutzer im LDAP (univentionMailHomeServer) und in der OX Datenbank steht. Evtl. wird dort ein anderer Server referenziert.

Mit freundlichen Grüßen
Janis Meybohm

Mastodon