Portál AbcLinuxu, 25. dubna 2024 08:27


Dotaz: NGINX ProxyPass => Microsoft technologie

28.11.2019 22:59 zipi | skóre: 21
NGINX ProxyPass => Microsoft technologie
Přečteno: 737×
Odpovědět | Admin

Poslední dobou bojuji, jak správně nastavit NGINX, aby bez problému dělal ProxyPass i pro Microsoft technologie. Přijde mi, že „NGINX Open Source“ si nerozumí záměrně z Microsoft technologie. A chtějí, abyste přešel na placenou verzi, která třeba má i podporu NTLM, kterou Microsoft rád využívá.

Jelikož, bych chtěl používat NGINX jako ProxyPass pro Microsoft produkty jako je Exchange, SharePoint atd.., ale zde vždy narazím na to – buď mi neprojde autorizace na daný server a pokud ano, tak se mi zobrazí maximálně bílá stránka.

Neřešil jste někdo obdobný problém?

Stejné úkoly je možné bez problému rozeběhnout na APACHI, ale to mám jako krajní možnost. Raději bych zůstal u NGINXU.

Konfigurace daného ProxyPassu jeden z málo pokusů.
location / {
        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 X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        client_max_body_size 10G;

        proxy_buffering  off;
        proxy_http_version  1.1;
        proxy_request_buffering  off;
        proxy_set_header  Connection "Keep-Alive";

        proxy_set_header Destination $fixed_destination;
        proxy_pass http://xxxxx:80;

    }
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

xkucf03 avatar 28.11.2019 23:57 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přijde mi, že „NGINX Open Source“ si nerozumí záměrně … A chtějí, abyste přešel na placenou verzi,

Stejný dojem mám z Nginxu i já a je mi to dost nesympatické. Nejde mi až tak o peníze, ale o to, že chci používat čistě svobodný software. Takže od jisté chvíli migruji vše zpět na Apache.

Stejné úkoly je možné bez problému rozeběhnout na APACHI, ale to mám jako krajní možnost. Raději bych zůstal u NGINXU.

Proč?

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
29.11.2019 21:55 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
NGINX mi přijde o dost čistější a daleko lépe se konfiguruje .. a běží mi na tom x set webu nerad bych migroval jinam ..
29.11.2019 14:19 Bedna
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Apache to ale sám o sobě také neumí a to kvůli Microsoftu který znásilnil HTTP. Jde ale použít https://github.com/bombadil/mod_proxy_msrpc. Ale ještě lepší je použít HAProxy.
29.11.2019 21:54 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
NGINX mi přijde o dost čistější a daleko lépe se konfiguruje .. a běží mi na tom x set webu nerad bych migroval jinam ..
29.11.2019 16:50 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bez problému to funguje, máme za nginx schovaný celý MS world, včetně Exchange 2016 a hromady IIS i RD GW serverů.
29.11.2019 21:52 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Petře, to je dobrá zpráva jsi ochoten se podělit ..? o tvé zkušenosti ..? Docela se s tím trápím poslední dobou ..
Max avatar 30.11.2019 01:38 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na netu lze najít spoustu example konfiguráků pro Nginx. Třeba tady :
NGINX: ReverseProxy für MAPI over HTTP, EAS und OWA
Zdar Max
Měl jsem sen ... :(
30.11.2019 14:02 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Maxi, to je přesně ono co mi nefunguje .. Možná dělám něco špatně, proto jsem Petra poprosil jestli je ochoten se podělit o své zkušenosti .
30.11.2019 15:14 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Ahoj,
rád se podělím, případně nastavím, ale nemám časové rezervy na to, se tady vypisovat se step-by-step howto.

Petr
30.11.2019 15:29 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Předpokládám, že nginx_extras máš nainstalované...

the nginx_extras are required for proper MS Exchange functionality.

Jinak example config, ze kterého lze vycházet.
Důležité jsou "more_set_*" headers

Petr
30.11.2019 17:22 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
To bude něco co mi bude chybět :( ..., ale koukám ze nginx_extras je zpoplatněn taky => https://extras.getpagespeed.com/redhat/7/x86_64/repodata/repomd.xml - nebo existuje i jiná cesta ..?
30.11.2019 23:32 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Ale notak ;-)
apt install nginx-extras
  nginx-extras/oldstable,oldstable 1.10.3-1+deb9u3 amd64
  nginx web/proxy server (extended version)
 
Petr
1.12.2019 13:59 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Jelikož je to balíkoví systém pro UBUNUT, tak jsem trošku v loji .
1.12.2019 19:04 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Petře, jak si řešil ještě NTLM autorizaci o proti MS ..? Ten odkaz co jsi mi poslal řeší pouze Basic -> more_set_ se mi již povedlo rozchodit !!
2.12.2019 00:18 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
2.12.2019 10:45 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
To máš zcela pravdu, ale funkce NTLM je placená tj. v opensource světě nepoužitelná .. Zkoušel jsem tvé doporučení na nginx-extra a narazil jsem, že též nemohu použít NTLM proměnou ..
2.12.2019 11:26 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Co ti to hlásí do logu ?
Já s tím na Debianu problém nemám.
2.12.2019 14:48 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Pořád 401, pošleš mi do zprávy kontakt na tebe .? Že bychom si o tom pokecali ..
2.12.2019 16:07 Petr
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Myslel jsem do logu na nginxu, né do IIS :-)
...kontakt odeslán
6.12.2019 15:49 zipi | skóre: 21
Rozbalit Rozbalit vše Re: NGINX ProxyPass => Microsoft technologie
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyzkoušel jsem všechny doporučení, bylo potřeba si pro CentOS dokompilovat balíky, ale povedlo se ...

Vyzkoušel jsem balík mod_proxy_msrpc pro Apache v konfiguraci:

VirtualHost *:443
   ServerName mail.domain.com

   SSLEngine on

    SSLCertificateFile /etc/httpd/certs/2018-wildcard-domain-com.crt
    SSLCertificateKeyFile /etc/httpd/certs/2018-wildcard-domain-com.key
    SSLCertificateChainFile /etc/httpd/certs/GeoTrustRSACA2018.pem

   SSLProxyEngine on
   ProxyPreserveHost On

   Header always set X-Frame-Options SAMEORIGIN
   Header set Server Apache
   Header unset X-AspNet-Version
   Header unset X-OWA-Version
   Header unset X-Powered-By

   RequestHeader unset Expect early

   SetEnvIf User-Agent ".*MSIE.*" value BrowserMSIE
   Header unset WWW-Authenticate
   Header add WWW-Authenticate "Basic realm=mail.domain.com"

## ProxyRequests Off
   ProxyRequests On
   ProxyPreserveHost On
   ProxyReceiveBufferSize 4096

   SSLProxyVerify none
   SSLProxyCheckPeerCN off
   SSLProxyCheckPeerName off
   SSLProxyCheckPeerExpire off

   OutlookAnywherePassthrough On

   # Outlook Web Access(OWA)
   ProxyPass /owa https://192.168.1.10/owa
   ProxyPassReverse /owa https://192.168.1.10/owa

   # Outlook Anywhere / RPC over http(s)  
   ProxyPass /rpc https://192.168.1.10/rpc
   ProxyPassReverse /rpc https://192.168.1.10/rpc

   ProxyPass /ews https://192.168.1.10/ews
   ProxyPassReverse /ews https://192.168.1.10/ews

   ProxyPass /autodiscover https://192.168.1.10/autodiscover
   ProxyPassReverse /autodiscover https://192.168.1.10/autodiscover

   # Microsoft ActiveSync
   ProxyPass /Microsoft-Server-ActiveSync https://192.168.1.10/Microsoft-Server-ActiveSync connectiontimeout=600
   ProxyPassReverse /Microsoft-Server-ActiveSync https://192.168.1.10/Microsoft-Server-ActiveSync

   Directory /Microsoft-Server-ActiveSync
      SSLRenegBufferSize 31457280
  /Directory
/VirtualHost
Problémy: NTLM autorizace :(, po zadaní heslo se exchange bez problému rozeběhl, ale vyžaduje prvotně zadat exchange, nějakým způsobem to běží, ale v logu se objevuje plno chyb 401 - mobilní telefony jsou OK

Vyzkoušel jsem balík headers-more-nginx-module pro nginx v konfiguraci:

server {
    listen      443 ssl http2;
    server_name mail.domain.com;

    # Certificate(s) and private key
    ssl_certificate             /etc/nginx/certs/2018-wildcard-domain-com.crt;
    ssl_certificate_key         /etc/nginx/certs/2018-wildcard-domain-com.key;
    ssl_trusted_certificate     /etc/nginx/certs/GeoTrustRSACA2018.pem;

    include /etc/nginx/options-ssl-nginx.conf;

        proxy_connect_timeout   360;
        proxy_read_timeout      360;

        proxy_http_version 1.1;
        proxy_pass_request_headers on;

        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_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="$host"';
        #more_set_headers -s 401 'WWW-Authenticate: Basic realm=mail.domain.com';


        location = / {
            return 301 "/owa/";
        }

        location = /favicon.ico {
            empty_gif;
            access_log off;
        }

        location /rpc {  grpc_pass grpc://192.168.1.10; }
        location / {  proxy_pass https://192.168.1.10; }

        error_log /var/log/nginx/haproxy-error.log debug;
        access_log /var/log/nginx/haproxy-access.log;

}
Problémy: NTLM autorizace :(, jaká koliv snaha skončí 401 chybou vždy na služby RPC :(, která komunikuje z Outlookem - mobilní telefony jsou OK

HAPROXY jsem ještě nezkoušel jelikož netuším jak to pořádně nakonfigurovat :(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.