Architecture hybride L4 / L7 compatible NTLM et ActiveSync
Héberger Microsoft Exchange 2019 derrière une seule IP publique peut rapidement devenir complexe lorsqu’on utilise un reverse proxy comme Nginx Proxy Manager.
Problème fréquent :
Exchange utilise NTLM, ActiveSync, MAPI et des connexions persistantes qui ne supportent pas toujours correctement la terminaison SSL en Layer 7.
Dans cet article, nous détaillons :
- Pourquoi Nginx peut poser problème avec Exchange
- Pourquoi un reverse proxy Layer 4 est plus adapté
- Comment combiner HAProxy et Nginx proprement
- Une configuration complète prête à déployer
- Un comparatif clair L4 vs L7
Pourquoi Exchange ne supporte pas toujours un reverse proxy L7 ?
Microsoft Exchange repose sur :
- NTLM (authentification stateful)
- Connexions TCP persistantes
- Négociation d’authentification multi-étapes
- ActiveSync
- MAPI over HTTP
Lorsque le reverse proxy termine le SSL (mode L7 classique), il peut :
- Casser la négociation NTLM
- Interrompre les sessions Outlook
- Générer des erreurs 401 répétées
- Provoquer des demandes de mot de passe en boucle
👉 Typiquement, les utilisateurs voient Outlook redemander leurs identifiants en permanence.
Solution retenue : HAProxy en Layer 4 (TCP Passthrough)
Au lieu de terminer le SSL en frontal, nous utilisons :
- HAProxy en mode TCP
- Lecture du SNI uniquement
- Redirection vers Exchange sans déchiffrement
- Persistance par IP source
Cela permet :
✔ Compatibilité totale NTLM
✔ Sessions ActiveSync stables
✔ Une seule IP publique
✔ Conservation de Nginx pour les autres applications
Schéma d’architecture

INTERNET
|
IP Publique
|
HAProxy (L4)
TCP passthrough + SNI
|
---------------------------------------
| |
Microsoft Exchange Nginx Proxy Manager
192.168.10.2 192.168.20.2
Flux détaillé
Pour exchange.dyb.test
Client Outlook
|
TLS 443
|
HAProxy (lecture SNI)
|
TCP passthrough
|
Exchange 192.168.10.2
SSL est terminé par Exchange directement.
Pour les autres services web
Navigateur Web
|
TLS 443
|
HAProxy
|
Nginx Proxy Manager
|
Applications internes
Nginx continue de gérer :
- Let’s Encrypt
- Redirections HTTP → HTTPS
- Reverse proxy applicatif
Configuration HAProxy complète
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
user haproxy
group haproxy
daemon
maxconn 50000
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 10s
timeout client 3600s
timeout server 3600s
timeout tunnel 3600s
frontend https_in
bind *:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend exchange_back if { req_ssl_sni -i exchange.dyb.test }
use_backend exchange_back if { req_ssl_sni -i autodiscover.dyb.test }
default_backend npm_https_back
frontend http_in
bind *:80
mode tcp
default_backend npm_http_back
backend exchange_back
mode tcp
stick-table type ip size 50k expire 30m
stick on src
server exchange01 192.168.10.2:443 check
backend npm_https_back
mode tcp
server npm01 192.168.20.2:443 check
backend npm_http_back
mode tcp
server npm01 192.168.20.2:80 check
frontend stats
bind *:8404
mode http
stats enable
stats uri /stats
stats refresh 10s
stats auth admin:changeme
Comparatif Reverse Proxy Layer 4 vs Layer 7
| Critère | Layer 4 (TCP) | Layer 7 (HTTP) |
|---|---|---|
| Niveau OSI | Transport | Application |
| Terminaison SSL | Non obligatoire | Oui |
| Lecture HTTP headers | Non | Oui |
| Compatible NTLM | Oui | Parfois instable |
| Compatible ActiveSync | Oui | Peut poser problème |
| WAF possible | Non | Oui |
| Performance | Très élevée | Élevée |
| Idéal pour Exchange | ✔ | ⚠️ |
Quand choisir cette architecture ?
Cette architecture est recommandée si :
- Vous disposez d’une seule IP publique
- Vous hébergez Exchange en interne
- Vous utilisez déjà Nginx ou NPM
- Vous souhaitez éviter les erreurs NTLM
- Vous voulez conserver Let’s Encrypt automatique
Avantages de l’architecture hybride
✔ Séparation claire des rôles
✔ Haute compatibilité Exchange
✔ Scalabilité
✔ Performance élevée
✔ Architecture maintenable
Sécurité : bonnes pratiques complémentaires
Pour sécuriser davantage cette architecture :
- Filtrage firewall strict
- IDS/IPS (Suricata / Snort)
- Protection SMTP dédiée
- Séparation DMZ
- Monitoring des logs HAProxy
Conclusion
Héberger Microsoft Exchange derrière une seule IP publique est parfaitement possible, à condition d’utiliser la bonne approche.
La combinaison :
HAProxy en Layer 4 + Nginx en Layer 7
offre un équilibre optimal entre compatibilité, sécurité et flexibilité.
Chez DYB, nous mettons en place ce type d’architecture pour garantir :
- Une disponibilité maximale
- Une compatibilité totale Outlook / ActiveSync
- Une infrastructure robuste et évolutive



