ISPConfig/Autodiscover: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 27: Zeile 27:


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


=== Installieren Sie das Tool  ===
=== Installieren Sie das Tool  ===

Version vom 18. März 2022, 02:29 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.