ISPConfig/Autodiscover

Aus Foxwiki

ISPConfig-Autodiscover/Autoconfig

Einleitung

Mit diesem Tool können Sie allen Ihren Kunden in einer Multiserver-Umgebung die automatische Erkennung von E-Mail-Konten in Thunderbird und Outlook anbieten.

Platzhalter

  • my-service.com = Die Domäne, auf der Sie Ihren "Autodiscover"-Dienst ausführen
  • my-mail.com = Die Domain, für die Sie Autodiscover und Autoconfig aktivieren möchten
  • PANEL-SERVER-IP = IP-Adresse des ISPConfig-Servers (Sie können das Tool natürlich auf jedem/jedem Server in Ihrer Umgebung installieren)
    • Falls Sie es auf einem anderen Server als dem Panel installieren, müssen Sie stattdessen einen anderen Benutzer und eine andere Gruppe verwenden ispappsin vHost-Konfigurations- und Konsolenbefehlen.

Anforderungen

php-soap wird für API-Requests benötigt. php7.3-Seife zum Beispiel.

Outlook erfordert den Zugriff auf eine SSL-gesicherte Seite mit einem vertrauenswürdigen Zertifikat.

Die Beispielkonfiguration verwendet das SSL-Zertifikat der ISPConfig-Schnittstelle. Damit dies funktioniert, muss es sich um ein gültiges öffentlich signiertes Wildcard-Zertifikat handeln. Zum Beispiel ein von StartSSL signiertes Level 2 (persönliche Identität) Zertifikat.

Das sollte ausreichen, damit Outlook ohne Fehlermeldungen und Warnungen funktioniert.

Aufstellen

Bereiten Sie ISPConfig vor

Das Discover-Plugin wird nicht als von ISPConfig verwaltete Website realisiert. Diese Einrichtungsanleitung erklärt die Einrichtung des vHost von Grund auf neu. Sie können es also auf jedem Ihrer Server installieren, auf dem ein Webserver läuft.

Beispiel für Apache2

Beispielkonfiguration für Apache2 (Ubuntu 16.04) * Fügen Sie eine neue vHost-Konfigurationsdatei hinzu: vi /etc/apache2/sites-available/discover.my-service.com.conf


Inhalt:

       <VirtualHost *:80>
         ServerName discover.my-service.com
         ServerAlias autoconfig.my-service.com
         ServerAlias autoconfig.*
         ServerSignature Off
         # Redirect non HTTPS and wrong domain names
         RewriteEngine On
         RewriteCond %{HTTPS} !on [OR]
         RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
         RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
       </VirtualHost>
       <VirtualHost *:443>
         ServerName discover.my-service.com
         ServerAlias autoconfig.my-service.com
         ServerAlias autoconfig.*
         ServerAdmin hostmaster@my-service.com
         ServerSignature Off
         ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
         # Redirect client domains to my-service.com when connecting direct via HTTPS
         RewriteEngine On
         RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
         RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
         <IfModule mod_fcgid.c>
           DocumentRoot /var/www/discover
           SuexecUserGroup ispapps ispapps
           <Directory /var/www/discover>
             Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
             AllowOverride AuthConfig Indexes Limit Options FileInfo
             <FilesMatch "\.php$">
               AddHandler fcgid-script .php
             </FilesMatch>
             FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
             Require all granted
           </Directory>
         </IfModule>
         <IfModule mod_php5.c>
           DocumentRoot /var/www/discover
           AddType application/x-httpd-php .php
           <Directory /var/www/discover>
             Require all granted
           </Directory>
         </IfModule>
         # This config uses the certificate that is used for ISPC Panel
         # Change path if needed
         SSLEngine On
         SSLProtocol All -SSLv2 -SSLv3
         # SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
         SSLHonorCipherOrder     on
         SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
         SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
         # Always wise to include the cert chain, change as needed and uncomment
         #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
       </VirtualHost>

Example for nginx

Fügen Sie einer Serverkonfiguration Ihrer Wahl die folgenden Standorte hinzu: (Annahme: discover.my-service.com)

 location ~* ^(/mail/config-v1.1.xml|/autodiscover) {
   index     index.html index.htm index.php;
   rewrite ^(.*)$ /index.php?file=$1 last;
 }
 location /index.php {
   root          /var/www/discover;
   include       /etc/nginx/fastcgi_params;
   fastcgi_pass  127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   access_log /var/log/nginx/automail_access.log;
   error_log /var/log/nginx/automail_error.log;
   fastcgi_buffer_size 128k;
   fastcgi_buffers 256 4k;
   fastcgi_busy_buffers_size 256k;
   fastcgi_intercept_errors on;
   fastcgi_temp_file_write_size 256k;
 }

Installieren Sie das Tool

  • Rufen Sie Ihr ISPConfig-Panel unter System -> Remote Users und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):
    • Serverfunktionen
    • Mail-Benutzerfunktionen
  • Wenn sich Ihr Automail-Host von Ihrem ISPConfig-Multiserver-Master unterscheidet, erlauben Sie dem Remote-Benutzer den Zugriff von dieser Remote-Host-Adresse
  • Klonen Sie das Repository in den Discover-Webordner
  • Wenn Sie Apache2 verwenden, bearbeiten Sie .htaccess und ersetzen Sie SERVER.TLD durch den FQDN Ihres Computers
  • Kopieren Sie die mitgelieferte Konfigurationsdatei
  • Öffnen Sie es in Ihrem bevorzugten Editor
    • Geben Sie ISPC-URLs und Remote User Credentials sowie den Namen Ihres Dienstes ein
    • (optional) Geben Sie einen Fallback-Server-FQDN ein, der verwendet werden soll, wenn der Benutzer in ISPConfig nicht gefunden werden konnte (standardmäßig $_SERVER['SERVER_NAME'])
    • (optional) Geben Sie Domänennamen von SMTP/IMAP/POP-Servern ein, um die automatische Erkennung über die ISPConfig-API vollständig zu überschreiben
cd /var/www
git clone https://github.com/SpicyWeb-de/isp-mailConfig.git discover
chown -R ispapps:ispapps discover
cd discover
cp config.dist.php config.php
vi config.php

DNS Config

Fügen Sie die folgenden DNS-Einträge für die Zone my-service.com hinzu:

  • A discover -> ISPConfig-SERVER-IP
    • vielleicht auch AAAA, wenn IPv6 für ISPConfig-Server verfügbar ist
  • CNAME autoconfig -> discover

Fügen Sie die folgenden DNS-Einträge für die Zone my-mail.com hinzu, um die automatische Konfiguration zu aktivieren:

  • SRV _autodiscover._tcp -> 1 10 443 discover.my-service.com
  • [SRV-Format auf Route53: [Priorität] [Gewicht] [Port] [Server-Hostname]]
  • CNAME autoconfig -> discover.my-service.com.

Testen

  • Dieses Tool funktioniert nur für real existierende E-Mail-Konten, da es die ISPC Remote API nach ihnen abfragt.
  • Stellen Sie beim Testen sicher, dass Sie Adressen verwenden, die auf Ihrem Server vorhanden sind.

Mozilla / Thunderbird

Für eine bestehende Mailadresse im emailaddress-Parameter sollten Sie eine Antwort wie diese erhalten:

<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
    <emailProvider id="my-mail.com">
        <domain>my-mail.com</domain>
        <displayName>YOUR SERIVCE NAME</displayName>
        <displayShortName>SERVICE</displayShortName>
        <incomingServer type="pop3">
            <hostname>mailserver.my-service.com</hostname>
            <port>995</port>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
            <pop3>
                <leaveMessagesOnServer>true</leaveMessagesOnServer>
                <downloadOnBiff>true</downloadOnBiff>
                <daysToLeaveMessagesOnServer>10</daysToLeaveMessagesOnServer>
            </pop3>
        </incomingServer>
        <incomingServer type="imap">
            <hostname>mailserver.my-service.com</hostname>
            <port>993</port>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
        </incomingServer>
        <outgoingServer type="smtp">
            <hostname>mailserver.my-service.com</hostname>
            <port>587</port>
            <socketType>STARTTLS</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
        </outgoingServer>
    </emailProvider>
</clientConfig>

Microsoft Outlook

Da Outlook eine XML-Datei mit Benutzerdaten an den Server sendet, können Sie diese nicht einfach im Browser aufrufen, um sie zu testen.

Sie können Microsofts Remote Connectivity Analyzer unter https://testconnectivity.microsoft.com/ , um zu überprüfen, ob die Outlook-AutoDiscovery funktioniert.

Es dauert einige Zeit, sollte aber auch bei einem bestehenden Mailkonto auf my-mail.com ein positives Ergebnis liefern.

Änderungen

11.02.2016 Djerk Geurts - Geändert, um den Server konfigurierbar zu machen. Multiserver-Konfigurationen sind nicht gut bedient, wenn Benutzer auf einen einzelnen Server verwiesen werden. config.php erlaubt jetzt die Verwendung eines erkannten Server-Hostnamens oder eines konfigurierten. Plus allgemeine Updates für ISPConfig 3.1.

11.06.2019 Conrad Sachweh - Gnome Evolution handhaben und statische Konfiguration bei ungültigen Eingaben zurückgeben.