ISPConfig/Autodiscover

Aus Foxwiki

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

  • Fügen Sie eine neue vHost-Konfigurationsdatei hinzu:

/etc/apache2/sites-available/discover.my-service.com.conf

       <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>

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.