ISPConfig/Autodiscover: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite ISPConfig/Autodiscover/Autoconfig nach ISPConfig/Autodiscover, ohne dabei eine Weiterleitung anzulegen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= ISPConfig-Autodiscover/Autoconfig =
=== Einleitung  ===
=== 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.  
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  ===
=== Platzhalter  ===
* my-service.com = Die Domäne, auf der Sie Ihren "Autodiscover"-Dienst ausführen  
* 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  
* my-mail.com = Die Domain, für die Sie Autodiscover und Autoconfig aktivieren möchten  
Zeile 13: Zeile 9:


=== Anforderungen  ===
=== Anforderungen  ===
 
* php-soap wird für API-Requests benötigt. php7.3-Seife zum Beispiel.  
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.  
Outlook erfordert den Zugriff auf eine SSL-gesicherte Seite mit einem vertrauenswürdigen Zertifikat.  
* 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.  
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.  
 
Das sollte ausreichen, damit Outlook ohne Fehlermeldungen und Warnungen funktioniert.  


== Aufstellen  ==
== Aufstellen  ==
=== Bereiten Sie ISPConfig vor  ===
=== Bereiten Sie ISPConfig vor  ===
 
* Das Discover-Plugin wird nicht als von ISPConfig verwaltete Website realisiert.  
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.  
* 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  ====
==== Beispiel für Apache2  ====
Beispielkonfiguration für Apache2
Beispielkonfiguration für Apache2
* Fügen Sie eine neue vHost-Konfigurationsdatei hinzu:  
* Fügen Sie eine neue vHost-Konfigurationsdatei hinzu:  


'''/etc/apache2/sites-available/discover.my-service.com.conf'''
'''/etc/apache2/sites-available/discover.my-service.com.conf'''
        <VirtualHost *:80>
 
          ServerName discover.my-service.com
<VirtualHost *:80>
          ServerAlias autoconfig.my-service.com
  ServerName discover.my-service.com
          ServerAlias autoconfig.*
  ServerAlias autoconfig.my-service.com
          ServerSignature Off
  ServerAlias autoconfig.*
  ServerSignature Off
   
   
          # Redirect non HTTPS and wrong domain names
  # Redirect non HTTPS and wrong domain names
          RewriteEngine On
  RewriteEngine On
          RewriteCond %{HTTPS} !on [OR]
  RewriteCond %{HTTPS} !on [OR]
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
        </VirtualHost>
</VirtualHost>
   
   
        <VirtualHost *:443>
<VirtualHost *:443>
          ServerName discover.my-service.com
  ServerName discover.my-service.com
          ServerAlias autoconfig.my-service.com
  ServerAlias autoconfig.my-service.com
          ServerAlias autoconfig.*
  ServerAlias autoconfig.*
          ServerAdmin hostmaster@my-service.com
  ServerAdmin hostmaster@my-service.com
          ServerSignature Off
  ServerSignature Off
   
   
          ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
  ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
   
   
          # Redirect client domains to my-service.com when connecting direct via HTTPS
  # Redirect client domains to my-service.com when connecting direct via HTTPS
          RewriteEngine On
  RewriteEngine On
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
   
   
          <IfModule mod_fcgid.c>
  <IfModule mod_fcgid.c>
            DocumentRoot /var/www/discover
    DocumentRoot /var/www/discover
            SuexecUserGroup ispapps ispapps
    SuexecUserGroup ispapps ispapps
            <Directory /var/www/discover>
    <Directory /var/www/discover>
              Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
      Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
              AllowOverride AuthConfig Indexes Limit Options FileInfo
      AllowOverride AuthConfig Indexes Limit Options FileInfo
              <FilesMatch "\.php$">
      <FilesMatch "\.php$">
                AddHandler fcgid-script .php
        AddHandler fcgid-script .php
              </FilesMatch>
      </FilesMatch>
              FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
      FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
              Require all granted
      Require all granted
            </Directory>
    </Directory>
          </IfModule>
  </IfModule>
   
   
          <IfModule mod_php5.c>
  <IfModule mod_php5.c>
            DocumentRoot /var/www/discover
    DocumentRoot /var/www/discover
            AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php
            <Directory /var/www/discover>
    <Directory /var/www/discover>
              Require all granted
      Require all granted
            </Directory>
    </Directory>
          </IfModule>
  </IfModule>
   
   
          # This config uses the certificate that is used for ISPC Panel
  # This config uses the certificate that is used for ISPC Panel
          # Change path if needed
  # Change path if needed
          SSLEngine On
  SSLEngine On
          SSLProtocol All -SSLv2 -SSLv3
  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
  # 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
  SSLHonorCipherOrder    on
          SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
          SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
          # Always wise to include the cert chain, change as needed and uncomment
  # Always wise to include the cert chain, change as needed and uncomment
          #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
  #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
        </VirtualHost>
</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  ===
=== 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):  
* Rufen Sie Ihr ISPConfig-Panel unter '''System -> Remote Users '''und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):  
** Serverfunktionen  
** Serverfunktionen  
Zeile 193: Zeile 164:


==== Microsoft Outlook  ====
==== 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/ 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.


Da Outlook eine XML-Datei mit Benutzerdaten an den Server sendet, können Sie diese nicht einfach im Browser aufrufen, um sie zu testen.
[[Kategorie:ISPConfig]]
 
Sie können Microsofts Remote Connectivity Analyzer unter [https://testconnectivity.microsoft.com/ 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.

Aktuelle Version vom 15. April 2023, 09:19 Uhr

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.