Jump to content

owa reverse proxy


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

ich habe einen Exchange 2007 und davor einen nginx mit client certificates als reverse proxy. Nun habe ich das Problem, dass ich bis zur Passworteingabe von owa komme, aber wenn ich benutzername und passwort eintippe kommt immer wieder das Fenster zur Passworteingabe in einer Schleife. Ich komme nicht auf die owa seite.

 

Hier mal die Config des nginx:

server {
    listen 80;
    server_name owa.domain.de;
    access_log /var/log/nginx/owa.domain.de.access.log;
    error_log  /var/log/nginx/owa.domain.de.error.log;
    rewrite        ^/$ https://owa.domain.de;
}

server {
    listen 443 ssl;
    server_name owa.domain.de;
    access_log /var/log/nginx/owa_ssl_domain_de_access.log;
    error_log  /var/log/nginx/owa_ssl_domain_de_error.log;

    charset ISO-8859-1;
    keepalive_timeout 1800;

    # SSL Settings
    ssl_certificate     /_ssl/owa.domain.de/owa.domain.de.crt;
    ssl_certificate_key /_ssl/owa.domain.de/owa.domain.de.key;
    ssl_trusted_certificate /_ssl/domain_ca.crt;
    ssl_client_certificate /_ssl/owa.domain.de/ca.crt;
    ssl_verify_client on;
    ssl_verify_depth 2;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;

    rewrite ^/$ https://owa.domain.de/owa/ permanent;

    client_max_body_size 65M;
#    large_client_header_buffers 4 32k;

    # Proxy Settings
#    proxy_ssl_session_reuse off;
#    proxy_read_timeout 360;
    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 "";
#    proxy_redirect default;

    location /owa {
        proxy_pass https://exch.local/owa;
        proxy_pass_request_headers on;
        }

}

Hat jemand eine Idee woran das liegen könnte?

Der direkte Zugriff auf die OWA Seite im internen LAN funktioniert ohne Probleme.

ActiveSync für den mobilen Zugriff läuft ebenfalls über diesen ReverseProxy und funktioniert auch ohne Probleme.

bearbeitet von Netscape
Link zu diesem Kommentar

Ich habe noch folgende Einstellung:

 

ssl on; (wobei dies bei deinem Listen eintrag steht)
proxy_redirect off;

add_header Strict-Transport-Security max-age=15768000; # six months
 

Und an Location owa das proxy_pass_request_headers on; habe ich nicht.

 

Btw. SSL2 und SSL3 solltest du deaktivieren und ggf. TLS 1.1 und 1.2 aktivieren.

 

 

Steht irgend in den Error Logs?

Link zu diesem Kommentar

muss es nginx sein?

Für haproxy gibts massenhaft Beispiele im Netz.

Ich hatte mir damals eine Testversion einer virtuellen LB-appliance für Exchange installiert, gemerkt das die auch nur haproxy nehmen und die Konfig dann übenrommen und angepasst. Allerdings Exchange2010, keine Ahnung ob das hier einen großen Unterschied macht.

Bei uns läuft seit dem ein haproxy-Pärchen als Exchnage-LB.

Da wird das gleiche Konstrukt für die Webserver haben werde ich das demnächst noch zu einem LB-Pärchen zusammenfassen. Das wäre dann auch der Mehrwert gegenüber der kommerziellen Appliance welche nur Exchange konnte.

 

Ich könnte bei Bedarf auch gerne morgen mal die Konfig rauskramen: haproxy auf Debian mit SSL-Terminierung für die Webserver.

Link zu diesem Kommentar

Komische kommerzielle appliance die nur Exchange kann. Welches Produkt ist das?

Das Teil wurde explizit als Exchangeloadbalancer verkauft. Ich glaube mich zu erinnern das man andere Sachen dazu kaufen konnte. Ich kann mich leider gar nicht erinnern was das für ein Produkt war da ich ehrlich gesagt zufrieden war als ich die haproxy-config hatte und das ganze unter einem standard Debian lief.

Nginx funktioniert als Reverse Proxy für OWA. Habe ich selbst laufen.

Das zweifel ich auch gar nicht an. Wir haben halt haproxy am laufen für den ich für Exchnage2010 eine Konfig liefern könnte. Für nginx hab ich halt keine die ich anbieten könnte.

Von daher: poste doch einfach deine config und eventuell findet der OP dann seinen Fehler.

Link zu diesem Kommentar

Das Teil wurde explizit als Exchangeloadbalancer verkauft. Ich glaube mich zu erinnern das man andere Sachen dazu kaufen konnte. Ich kann mich leider gar nicht erinnern was das für ein Produkt war da ich ehrlich gesagt zufrieden war als ich die haproxy-config hatte und das ganze unter einem standard Debian lief.

Schade, hätte mich mal interessiert. Aber so wichtig ist es auch nicht. Hab meine Lösung auch gefunden. ;)

 

Bye

Norbert

Link zu diesem Kommentar
Das zweifel ich auch gar nicht an. Wir haben halt haproxy am laufen für den ich für Exchnage2010 eine Konfig liefern könnte. Für nginx hab ich halt keine die ich anbieten könnte.

Von daher: poste doch einfach deine config und eventuell findet der OP dann seinen Fehler.

 

Ich hatte ja schon die Unterschiede aufgezeigt. Aber hier mal meine Konfig.

upstream exchange { # Wobei das nur ein Alias ist und nicht nötig.
        server srv-exch1:443;
}

server {
        listen 443;
        server_name _;

        location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
        }

        #SSL
        ssl on;
        ssl_certificate /etc/ssl/certs/srv-proxy-web1.pem;
        ssl_certificate_key /etc/ssl/certs/server.key;
        ssl_session_timeout 5m;

        ssl_prefer_server_ciphers on;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # not possible to do exclusive
        #ssl_protocols TLSv1.1 TLSv1.2; # not possible to do exclusive
        ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA';
        add_header Strict-Transport-Security max-age=15768000; # six months

        #Proxy
        proxy_redirect off;
        proxy_read_timeout 360;
        proxy_connect_timeout 360;
        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 "";

        #Exchange

        location /owa {
                proxy_pass https://exchange/owa;
        }

# Weitere Urls (ecp, Active Sync,...) mit selben Schema.

}
Link zu diesem Kommentar

Also ich vermute das Problem eher irgendwo beim Exchange.

 

Der nginx leitet die Anfrage ja an owa weiter und liefert mir die Passwortabfrage. Die Passwortabfrage läuft dann aber in einer Schleife, obwohl die richtigen Daten eingegeben werden. Wenn ich dann auf abbrechen klicke, bekomme ich vom IIS eine 401.1 (Invalid Credentials) Meldung. Wobei im LAN mit direktem Zugriff auf den Exchange ohne den ReverseProxy funktioniert OWA.

 

Hier nochmal die aktuelle nginx config:

server {
    listen 80;
    server_name owa.domain.de;
    access_log /var/log/nginx/owa.domain.de.access.log;
    error_log  /var/log/nginx/owa.domain.de.error.log;
    rewrite        ^/$ https://owa.domain.de;
}
server {
    listen 443 ssl;
    server_name owa.domain.de;
    access_log /var/log/nginx/owa_ssl_owa_de_access.log;
    error_log  /var/log/nginx/owa_ssl_owa_de_error.log debug;

    charset ISO-8859-1;
    keepalive_timeout 1800;

    # SSL Settings
    ssl_certificate     /_ssl/owa.domain.de/owa.domain.de.crt;
    ssl_certificate_key /_ssl/owa.domain.de/owa.domain.de.key;
    ssl_trusted_certificate /_ssl/trusted_ca.crt;
    ssl_client_certificate /_ssl/owa.domain.de/ca.crt;
    ssl_verify_client on;
    ssl_verify_depth 2;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!$
    ssl_prefer_server_ciphers   on;

    rewrite ^/$ https://owa.domain.de/owa/ permanent;

    client_max_body_size 65M;

    # Proxy Settings
    proxy_read_timeout 360;
    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 "";
    proxy_redirect off;
    add_header Strict-Transport-Security max-age=15768000; # six months

    location /owa {
        proxy_pass https://exch.local/owa;
#       proxy_pass_request_headers on;
        }


}

Link zu diesem Kommentar

Also das Problem liegt mehr oder weniger am Exchange. Dort ist für OWA die "integrierte Authentifizierung" und die "Standardauthentifizierung" aktiviert. Im Firefox kamen dann zwei Abfragefenster. Das ersten ohne "realm" und das Zweit mit. Das erste Fenster mit abbrechen weggecklickt, dann kam das zweite Fenster und dort haben die Login Daten dann funktioniert.

 

Im Chrome kam nur das erste Fenster und beim klicken auf abbrechen kam das zweite fenster nicht. Somit hat der login nicht funktioniert.

 

Nun habe ich im IIS auf der OWA Seite die "integrierte Authentifizierung" abgeschaltet und es funktioniert.

 

Wäre natürlich schön, wenn die auch funktioneren würde (im LAN).

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...