ISPConfig/Autodiscover
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
- Geben Sie https://discover.my-service.com/mail/config-v1.1.xml?emailaddress=user%40my-mail.com in Ihrem Browser
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.