[Howto] automx

Hallo allerseits,

wir haben die Tage - dank kompetenter Unterstützung von Moritz Bunkus - erfolgreich Kopano bei uns eingeführt.

Um die Mailclients nicht alle von Hand konfigurieren zu müssen, habe ich automx an das ucs ldap angebunden. Somit gibt es nun eine automatischen Konfiguration der Thunderbird und Outlook Clients via imap/smtp. Die Benutzer tippen im Einrichtungsdialog nur noch ihre Emailadresse und das ucs-Kennwort ein, der Rest geht von allein.

Ich habe bezüglich automx nur diesen Eintrag gefunden: forge.univention.org/bugzilla/s … i?id=38452 und wollte daher hier kurz schildern, wie ich das System dafür eingerichtet habe. Ich denke das hilft dem ein oder anderen auch weiter.

Also, ich habe mir ein bestehendes debian/jessie System genommen und bei letsencyrpt ein Zertifikats für autodiscover.example.de besorgt. Wie das geht beschreibe ich hier nicht weiter. Mir hat das Shellscript https://dehydrated.de dabei geholfen.
Dann habe ich mit apt install automx libapache2-mod-wsgi memcached das automx-Paket , das wsgi-Modul für den (bereits laufenden) Apachen sowie den memcached installiert

Diese Apache vHost Definition habe ich angelegt und mittels a2ensite automx.conf aktiviert :

cat /etc/apache2/sites-available/automx.conf
# autoconfig.example.de
# autodiscover.example.de
#           Thorsten Strusch 2016-10-25
<VirtualHost *:80>
  ServerName autoconfig.example.de
  #ServerAlias
  ServerAdmin webmaster@example.de
  DocumentRoot /var/www/

  <IfModule mod_wsgi.c>
    WSGIScriptAlias /mail/config-v1.1.xml /usr/lib/python2.7/dist-packages/automx_wsgi.py
    <Directory "/usr/lib/python2.7/dist-packages/automx">
      Require all granted
    </Directory>
    <Directory "/usr/lib/python2.7/dist-packages">
      Require all granted
    </Directory>
  </IfModule>
  ErrorLog /var/log/apache2/automx/error.log
  CustomLog /var/log/apache2/automx/access.log combined
</VirtualHost>

<VirtualHost *:443>

  ServerName autodiscover.example.de:443
  ServerAdmin webmaster@example.de
  DocumentRoot /var/www/

  Include /etc/dehydrated/apache-include.conf

  <IfModule mod_wsgi.c>
    WSGIScriptAlias /Autodiscover/Autodiscover.xml /usr/lib/python2.7/dist-packages/automx_wsgi.py
    WSGIScriptAlias /autodiscover/autodiscover.xml /usr/lib/python2.7/dist-packages/automx_wsgi.py
    WSGIScriptAlias /mobileconfig /usr/lib/python2.7/dist-packages/automx_wsgi.py
    <Directory "/usr/lib/python2.7/dist-packages/automx">
            Require all granted
    </Directory>
    <Directory "/usr/lib/python2.7/dist-packages">
            Require all granted
    </Directory>
  </IfModule>

</VirtualHost>

Vorsicht, das hier ist eine Apache2.4 Konfiguration. Beim 2.2er unter debian/wheezy bzw. dem 4er ucs System ist der Syntax ein wenig anders.

Die Datei /etc/dehydrated/apache-include.conf schaut so aus:
(wird bei mir von ansible erzeugt, liegt daher etwas unüblich):

[code]SSLEngine on

SSLCertificateFile /etc/dehydrated/certs/autodiscover.example.de/fullchain.pem
SSLCertificateKeyFile /etc/dehydrated/certs/autodiscover.example.de/privkey.pem

SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCompression off
Header always set Strict-Transport-Security “max-age=15768000”

SSLCipherSuite ‘EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA’[/code]
Auch hier unterscheidet sich wieder der Syntax zw. dem 2.2er und 2.4er Apachen. apachectl configtest hilft beim debuggen.

Jetzt fehlt noch die Konfiguration von automx selbst in der /etc/automx.conf

# file: /etc/automx.conf

[automx]
provider = example.de
domains = *

debug = yes
logfile = /var/log/automx/automx.log

# Protect against DoS
memcache = 127.0.0.1:11211
memcache_ttl = 600
client_error_limit = 20
rate_limit_exception_networks = 127.0.0.0/8, ::1/128

# The DEFAULT section is always merged into each other section. Each section
# can overwrite settings done here.
[DEFAULT]
account_type = email
account_name = Meine Organisation ${displayName}
account_name_short = Kürzel
server_url = kopano.example.de
server_name = Kopano

display_name = ${displayName}

action = settings

smtp = yes
smtp_server = mx0.example.de
smtp_port = 587
smtp_encryption = starttls
smtp_auth = plaintext
smtp_auth_identity = ${uid}
smtp_refresh_ttl = 6
smtp_default = yes

imap = yes
imap_server = imap.example.de
imap_port = 143
imap_encryption = starttls
imap_auth_identity = ${uid}
imap_auth = plaintext
imap_refresh_ttl = 6

# 172.16.16.4 - IP des Masters, es können mehrere ldap-URLs angegeben werden:
host = ldap://172.16.16.4:7389
base = cn=users,dc=example,dc=de
result_attrs = displayName, uid
scope = sub
filter = (&(objectClass=univentionMail) (mailPrimaryAddress=%s))

bindmethod = simple
binddn = uid=apacheauth,cn=users,dc=example,dc=de
bindpw = ApacheUserGeheimesPasswortBitteAendern
usetls = false
#cacert = /etc/ldap/ssl/cacert.pem

# If you want to sign mobileconfig profiles, enable these options. Make sure
# that your webserver has proper privileges to read the key. The cert file
# must contain the server certificate and all intermediate certificates. You
# can simply concatenate these certificates.
#sign_mobileconfig = yes
#sign_cert = /path/to/cert
#sign_key = /path/to/key

pop = no

[global]
backend = ldap

Ich benutze den User apacheauth zur Anmeldung am LDAP. Er wurde in der UMC unter Optionen einfach mit Einfaches Authentisierungskonto angelegt, er hat sonst keine Rechte.
Um nur valide Benutzerkontenkonfigurationen herauszugeben, filter ich im LDAP nach Einträgen mit der Objektklasse univentionMail und einer gesetzten mailPrimaryAddress

Ob das alles klappt, oder nicht, verrät einem der Output des Kommandozeilentools aus dem automx Paket: automx-test vorname.nachname.example.de

Was noch nicht geht ist die Einrichtung von active_sync über automx - mir erschließt sich nicht wie das funktioniert. Wenn das jemand am Laufen hat, wäre ich dankbar für feedback

2 Likes

Damit Outlook einen active sync Accont anlegen kann, muss vor die server_url ein https:// gestellt werden:

server_url = https://kopano.example.de

Guten Tag

Eine kurze Frage zu AutoMX um sicherzugehen, ob das nun ist, was ich brauche…
Kann damit bei einem Outlook 2016 ein active-sync konto hinzugefügt werden, ohne Server etc. einzeln anzugeben.
Und was spricht gegen eine Installation direkt auf dem Kopano-Server? / Ist die installation gemäss Anleitung auch dort möglich, oder kommt das einander in die Quere?

Desbezüglich wurden bei AutoMX bereits Issues erstellt:


Wie ich ja schon in [Kopano] Autodiscover / Z-Push geantwortet habe ich es leider Outlook welches den falschen Request zum Autodisdover Dienst schickt. Das Thema wurde auch schon mehrfach im Kopano Forum diskutiert (und ich glaube auch bereits schon hier). Ticket in Z-Push ist https://jira.z-hub.io/browse/ZP-1300.

Mastodon