maddig
Goto Top

MS Exchange 2016 - Basicconfig Fragen

Guten Abend,

ich bin zurzeit dabei meine ersten Erfahrungen mit Exchange zu sammeln.

Zu meiner Config:

- Exchange 2016
-- als Sendeconnector einen Smarthost mit Strato SMTP
-- als Empfangsconnector Standardeinstellungen
-- Port 587/25 geöffnet (Sophos UTM)
- webmail.domain.de (OWA, ECP, etc.)
- autodiscover.domain.de (für Autodiscover)
- als MX Record auf meiner root Domain : mail.domain.de
- alle Domains mit SSL Zertifikat hinter nginx Reverse Proxy

Das senden funktioniert ohne Probleme und sehr schnell. Das Empfangen hingegen ist das erste Problem das ich habe. Es verzögert die Zustellung manchmal um mehrer Minuten. Manchmal bzw. wenn die Mails ankommen und ich direkt welche hinterher schicke, erscheinen sie sofort im Postfach. Intern auf dem Exchange von User zu User: komplett ohne Zeitverzögerung.
Ich habe als Empfangconnectoren komplett Standardeinstellungen gelassen. An was könnte das aus dem Stegreif heraus liegen? Ich weiß ehrlich gesagt nicht was ich für Logs zu dem Thema posten soll.

2. Fehler:

In Outlook gebe ich einer der Emailadressen ein. Die Authentifizierung erscheint und das Autodiscover läuft ohne Fehler durch. Im nächsten Schritt "Am Emailserver anmelden" kommt die Fehlermeldung die ich als Bild mit hochlade. Danach schließt sich Outlook und das war es. An was könnte das liegen?

Die Virtuellen Verzeichnisse habe ich manuell und nochmal zusätzlich mit colinardo´s Script angepasst.
Generell habe ich mich häufig an die Beiträge von frankysweb orientiert.

Bitte habt Verständnis das ich noch nie weiter mit Exchange gearbeitet habe und mich so langsam rantaste.
Das ganze ist auch eine Testumgebung zum spielen.

mfg maddig
unbenannt

Content-Key: 330033

Url: https://administrator.de/contentid/330033

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: Dani
Dani 20.02.2017 um 23:33:00 Uhr
Goto Top
Moin,
2. Fehler:
Starte entweder den IIS bzw. am besten gleich den Server neu. Ich meine da gibt's n Bug. face-smile Hast du CU4 bereits installiert?

Das Empfangen hingegen ist das erste Problem das ich habe. Es verzögert die Zustellung manchmal um mehrer Minuten. Manchmal bzw. wenn die Mails ankommen und ich direkt welche hinterher schicke, erscheinen sie sofort im Postfach.
Hast du vorsichtshalber den Outlook Cache-Modus schon mal deaktiviert? Wie sieht denn der Zeitverlauf im Header ein empfangenen E-Mail aus? So kannst du schon mal eingrenzen, an welcher Stelle du suchen musst.


Gruß,
Dani
Mitglied: maddig
maddig 21.02.2017 um 09:10:52 Uhr
Goto Top
Hallo Dani,

danke für deine Antwort.

Ich muss zugeben ich habe das CU4 noch nicht installiert. Mache ich aber heute Nachmittag.
Das Server neustarten hat leider nichts verändert.

Die Zustellverzögerungen habe ich bisher immer im OWA bemerkt. (Mit Outlook konnte ich mich ja noch nicht verbinden).
Den Header schau ich mir heute Nachmittag auch mal an.

Danke für deine Hilfe.

mfg maddig
Mitglied: 132272
132272 21.02.2017 aktualisiert um 09:17:58 Uhr
Goto Top
alle Domains mit SSL Zertifikat hinter nginx Reverse Proxy
Ich würde eher darauf tippen das der Hase hier begraben liegt, wenn du wie du sagst noch nicht viel Erfahrung mit Exchange hast. Da lauern nämlich einige Fallstricke in der nginx config für Exchange.
Und wenn ich Sophos höre, ist da der SMTP Proxy oder Spamprüfung der Sophos dazwischen geschaltet, oder nutzt du die Application-Firewall (Reverse Proxy) für den Exchange-IIS Zugriff?

Gruß
Mitglied: maddig
maddig 21.02.2017 um 09:45:28 Uhr
Goto Top
Habe ich mir auch schon gedacht.

Nur funktioniert alles von außen und die Config ist eig auch leicht verständlich.

Hier mal der vhost für Exchange:

server {
    listen 80;
    server_name webmail.domain.de autodiscover.domain.de;
    return 301 https://$host$request_uri;
}

server {
    tcp_nodelay on;
    listen 443;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.de/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    server_name webmail.domain.de autodiscover.domain.de;

    location / {
           return 301 https://webmail.domain.de/owa;
    }

    proxy_http_version      1.1;
    proxy_read_timeout      360;
    proxy_pass_header       Date;
    proxy_pass_header       Server;
    proxy_pass_header      Authorization;
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass_request_headers on;
    more_set_input_headers 'Authorization: $http_authorization';  
    proxy_set_header Accept-Encoding "";  
    more_set_headers -s 401 'WWW-Authenticate: Basic realm="ex001"';  
    proxy_buffering off;
    proxy_set_header Connection "Keep-Alive";  

    location ~* ^/owa { proxy_pass https://ex001; }
    location ~* ^/Microsoft-Server-ActiveSync { proxy_pass https://ex001; }
    location ~* ^/ecp { proxy_pass https://ex001; }
    location ~* ^/rpc { proxy_pass https://ex001; }
    location ~* ^/autodiscover { proxy_pass https://ex001; }
}

Vll liegt da ein Fehler ?

mfg maddig
Mitglied: 132272
132272 21.02.2017 aktualisiert um 09:54:30 Uhr
Goto Top
Da fehl unter anderem das /mapi Verzeichnis (MAPI o. HTTP) und noch andere...
NGINX Reverse Proxy mit Exchange 2016 und Outlook 2016

p.s. Warum nutzt du nicht den Application-Proxy der Sophos, der ist dafür doch wie geschaffen?
Mitglied: maddig
maddig 21.02.2017 um 10:04:25 Uhr
Goto Top
OK danke, bei diesem Link war ich auch schon mal.

Die fehlenden locations füge ich heute Nachmittag mit ein und teste es. Jedoch startete beim letzten Versuch nginx nicht mehr wenn ich bei

proxy_pass https://ex001

ein /autodiscover oder /owa hinter den einzelnen locations dazu schreibe.
Ich teste es aber heute noch einmal.

Zu dem Thema Sophos:

Könnte ich dann die Exchange Geschichte über die Sophos abhandeln und mein restliches wie gewohnt über den nginx?
Normalerweise schon oder?

mfg maddig
Mitglied: 132272
132272 21.02.2017 um 10:07:49 Uhr
Goto Top
Zitat von @maddig:
Zu dem Thema Sophos:

Könnte ich dann die Exchange Geschichte über die Sophos abhandeln und mein restliches wie gewohnt über den nginx?
Normalerweise schon oder?
Ja, sehe ich kein Problem.
Mitglied: maddig
maddig 21.02.2017 um 10:31:04 Uhr
Goto Top
Theoretisch funktioniert es aber trotzdem nicht.

Ich habe einen DNAT mit Port 443 und 80 auf den Debian nginx Server eingetragen. Das heißt ja eigentlich das die Anfragen gar nicht bis zur Sophos kommen und eigentlich immer vom nginx Server bearbeitet werden oder ?

mfg maddig
Mitglied: 132272
132272 21.02.2017 um 10:34:06 Uhr
Goto Top
Zitat von @maddig:

Theoretisch funktioniert es aber trotzdem nicht.

Ich habe einen DNAT mit Port 443 und 80 auf den Debian nginx Server eingetragen. Das heißt ja eigentlich das die Anfragen gar nicht bis zur Sophos kommen und eigentlich immer vom nginx Server bearbeitet werden oder ?
Du musst es dann anders herum machen, die Ports auf die Sophos leiten denn diese ist dann Reverse-Proxy, von dort aus dann eine Umleitung auf den nginx.
Wir wissen ja leider nicht was du sonst dort alles noch abfackelst, aber sehe die Sophos quasi als eigenen Reverse Proxy.
Mitglied: maddig
maddig 21.02.2017 um 21:29:53 Uhr
Goto Top
So nach etwas testen und installiertem CU4 funktioniert es jetzt mit dieser überarbeiteten nginx config:

server {
        listen       80;
        server_name webmail.domain.de autodiscover.domain.de;
 
        # Redirect any HTTP request to HTTPS
        return 301 https://$server_name$request_uri;
 
        error_log  /var/log/nginx/exchange-error.log;
        access_log /var/log/nginx/exchange-access.log;
}

server {
        listen       443;
        server_name webmail.domain.de autodiscover.domain.de;
 
        # Enable SSL
        ssl                     on;
        ssl_certificate         /etc/letsencrypt/live/domain.de/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/domain.de/privkey.pem;
        ssl_session_timeout     5m;
 
        # Set global proxy settings
        proxy_read_timeout      360;
 
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
 
        proxy_pass_header       Date;
        proxy_pass_header       Server;
 
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        Accept-Encoding "";  
 
        more_set_input_headers 'Authorization: $http_authorization';  
        proxy_set_header Accept-Encoding "";  
        more_set_headers -s 401 'WWW-Authenticate: Basic realm="ex001"';  
 
        location /owa           { proxy_pass https://ex001/owa; }
        location /OWA           { proxy_pass https://ex001/OWA; }        
        location /EWS          { proxy_pass https://ex001/EWS; }
        location /ews          { proxy_pass https://ex001/ews; }        
        location /Microsoft-Server-ActiveSync { proxy_pass https://ex001/Microsoft-Server-ActiveSync; }
        location /mapi           { proxy_pass https://ex001/mapi; }
        location /MAPI          { proxy_pass https://ex001/MAPI; }        
        location /rpc           { proxy_pass https://ex001/rpc; }
        location /RPC           { proxy_pass https://ex001/RPC; }
        location /ecp           { proxy_pass https://ex001/ecp; }
        location /ECP           { proxy_pass https://ex001/ECP; }
        location /oab            { proxy_pass https://ex001/oab; }
        location /OAB            { proxy_pass https://ex001/OAB; }        
        location /autodiscover           { proxy_pass https://ex001/autodiscover; }
        location /Autodiscover           { proxy_pass https://ex001/Autodiscover; }
 
        error_log /var/log/nginx/exchange-ssl-error.log;
        access_log /var/log/nginx/exchange-ssl-access.log;
}

Jetzt connectet Outlook via Autodiscover ohne eine Fehlermeldung und nur einer Authentifizierung, perfekt.

Ein Problem habe ich noch:

Das Verbinden mit mobilen Geräten. Ich habe es bie iOS Outlook App und bei der Mail App von iOS probiert und bei der Outlook App kommt "Keine Verbindung möglich" und bei der Mail App : "Accountinformationen konnten nicht abgerufen werden".

Theoretisch funktioniert das ja zumindestens mit der Mail App (bei der Outlook App bin ich mir nicht sicher) mit Active Sync.
Beim ActivSync Connectivity Test von Microsoft ist alles ok mit Warnungen. Die Warnung nur weil er Autodiscover nicht unter der Root Domain findet was klar ist weil ich das nicht konfiguriert habe.

Auf dem Exchange habe ich alles was Mobil betrifft auf Standard gelassen und ActiveSync ist bei den Postfächern aktiviert.

Vll habt ihr eine Idee was schief läuft.

Danke für eure Hilfe.

mfg maddig
Mitglied: Dani
Dani 21.02.2017 um 21:35:11 Uhr
Goto Top
Moin,
Ich habe es bie iOS Outlook App
du weißt, dass der Datenvekehr noch über einen Fremdserver läuft? Daher empfehle ich dir die OnBoard App von Apple.

bei der Mail App von iOS probiert und bei der Outlook App
D.h. MailApp von IOS funktioniert? Ist jetzt nicht klar ausgedrückt für mich. Ansonsten könnte das Problem auf dich zutreffen.


Gruß,
Dani
Mitglied: maddig
maddig 21.02.2017 aktualisiert um 21:50:07 Uhr
Goto Top
Ah ok wusste ich nicht. Dann ist die App erstmal pfui.

Und bei der Mail App komme ich garnicht soweit das ich die Domain mitgebe, weil er nur Email und Passwort abfragt wenn ich in der Mail App Exchange als neuen Account auswähle und danach kommt der Fehler.

Habe grade der Vollständigkeit halber den Outlook Connectivity gemacht und der ist rot wegen diesem Fehler Block der Rest ist grün:

	Testing HTTP Authentication Methods for URL https://webmail.domain.de/rpc/rpcproxy.dll?06507b04-6a1e-42d8-b77c-3fc87cd6c3d5@domain.de:6002.
 	The HTTP authentication test failed.
 	 Tell me more about this issue and how to resolve it
 	
	Additional Details
 	
Not all the required authentication methods were found.
Methods Found: Basic
Methods Required: NTLM
HTTP Response Headers:
Connection: keep-alive
request-id: 9f6bf746-2a5e-4219-992b-3f47779ed6f5
Content-Length: 0
Date: Tue, 21 Feb 2017 20:35:00 GMT
Server: Microsoft-IIS/8.5
WWW-Authenticate: Basic realm="ex001"  
Elapsed Time: 328 ms.

Aber das RPC war ja nur für Exchange 2010 für Outlook Anywhere oder?
Mitglied: Dani
Dani 21.02.2017 um 21:56:27 Uhr
Goto Top
Aber das RPC war ja nur für Exchange 2010 für Outlook Anywhere oder?
Jein, ich meine bei Exchange 2013 ist RPC noch Standard. Sprich MAPI muss evtl.aktiviert werden:
Get-OrganizationConfig | fl name, mapi*


Gruß
Mitglied: maddig
maddig 21.02.2017 um 22:00:32 Uhr
Goto Top
Ok gut danke dir.

Das hängt dann aber theoretisch nicht mit dem Problem mit dem ActiveSync zusammen oder?

gruß maddig
Mitglied: maddig
maddig 21.02.2017 um 22:23:22 Uhr
Goto Top
Ok hat sich geklärt, man kann den ersten Schritt der im Fehler landet überspringen und dann die domain mitgeben mit der es dann funktioniert.

Ich danke euch / dir für die Hilfe.

Gruß maddig
Mitglied: 132272
132272 21.02.2017 aktualisiert um 22:50:24 Uhr
Goto Top
Zitat von @maddig:
	Testing HTTP Authentication Methods for URL https://webmail.domain.de/rpc/rpcproxy.dll?06507b04-6a1e-42d8-b77c-3fc87cd6c3d5@domain.de:6002.
>  	The HTTP authentication test failed.
>  	 Tell me more about this issue and how to resolve it
>  	
> 	Additional Details
>  	
> Not all the required authentication methods were found.
> Methods Found: Basic
> Methods Required: NTLM
> HTTP Response Headers:
> Connection: keep-alive
> request-id: 9f6bf746-2a5e-4219-992b-3f47779ed6f5
> Content-Length: 0
> Date: Tue, 21 Feb 2017 20:35:00 GMT
> Server: Microsoft-IIS/8.5
> WWW-Authenticate: Basic realm="ex001"  
> Elapsed Time: 328 ms.

Aber das RPC war ja nur für Exchange 2010 für Outlook Anywhere oder?
Das liegt am nginx das NTLM supported der nur in der kostenpflichtigen Variante. Du kannst die Autorisierungs-Methoden aber per Powershell anpassen, durch ersetzen der Authentifizierungsmechanismen in folgendem Befehl:
Set-OutlookAnywhere -Identity "$ExchangeServer\Rpc (Default Web Site)" -InternalHostname $InternalFQDN -ExternalHostName $ExternalFQDN -InternalClientAuthenticationMethod ntlm -InternalClientsRequireSsl:$True -ExternalClientAuthenticationMethod NTLM -ExternalClientsRequireSsl:$True