Ignorer les commandes du ruban
Passer au contenu principal
SharePoint

system

déc. 02
Etude d'une solution libre de serveur mandataire inverse ou "reverse proxy" pour Sharepoint 2013

Dans cet article, nous nous attacherons à trouver et à mettre en place une solution de serveur mandataire inverse ou « reverse proxy » compatible avec une authentification NTLM.

Nous ne discuterons pas de l'utilité de la mise en place d'un serveur mandataire pour des applicatifs accessibles depuis internet, vous trouverez de la documentation ici [1] et là [2].

Microsoft propose certains produits de serveurs mandataires inverses pour Sharepoint [3], on peut également jeter un coup d'œil du côté des serveurs mandataires fonctionnant avec Skype for Business [4].

Le tableau ci-dessous regroupe quelques solutions [5] qui répondent à notre besoin :
      

Solution Informations Evaluation
Windows Server 2012 R2 avec serveur mandataire d'application web (WAP)PropriétaireNon testé
Forefront Threat Management Gateway (TMG) 2010Propriétaire. Le support du produit est assure jusqu'au 14/04/2020Non testé
F5 BIG-IPPropriétaireNon testé
Citrix NetScalerPropriétaireNon testé
Sophos UTMPropriétaireNon testé
KempPropriétaireNon testé
WatchGuardPropriétaireNon testé
SonicwallPropriétaireNon testé
SquidLibreNon testé, théoriquement fonctionnel mais certains problèmes peuvent exister [6]
Nginx « Libre » mais le module NTLM est payantNon testé
ApacheLibreTesté avec le module mod_security mais authentification impossible [7]. Cependant certains l'on fait fonctionner [8]
HAProxyLibreTesté, et fonctionnel

  

Nous avons retenu le logiciel HAProxy.

Dans la suite de ce guide nous allons présenter la configuration nécessaire pour que HAProxy agisse comme un serveur mandataire inverse pour Sharepoint 2013.

Pré requis : 

 

  • Une instance Sharepoint 2013 fonctionnelle (serveur IIS en écoute sur le port HTTP
  • Un système d'exploitation de type Unix sur lequel nous installerons le paquet HAProxy, nous avons choisi CentOS Linux 7.5.1804

Procédure :

  

1.    Installer le paquet HAProxy

sudo yum install haproxy

 

2.    Configuration minimale de HAProxy via le fichier haproxy.cfg dans /etc/haporxy/

global
        user haproxy
        group haproxy
        daemon
 
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http
 
frontend frontend_test
  bind 192.168.1.1:80
  mode http
  default_backend backend_test
 
backend backend_test
  mode http
  server test 192.168.1.2:80


 

3.    Redémarrer le service HAProxy

sudo systemctl restart haproxy

 

4.    Tester le service via un navigateur web. Pour le test, on peut modifier le fichier host (/etc/hosts sous Unix ou C:\Windows\System32\drivers\etc\hosts sous Windows) de la machine pour pointer directement sur le serveur mandataire inverse (192.168.1.1 dans notre exemple).

 

Nous venons de mettre en place un serveur mandataire inverse avec une authentification NTLM.

Aller plus loin :

 

Le protocole HTTP/1.1 est sans état [10], c'est-à-dire que au sein de la même connexion TCP chaque requête est indépendante, or le protocole d'authentification NTLM lui, authentifie la connexion ce qui viole une exigence de la norme HTTP [11]. Ainsi l'authentification NTLM passant par un serveur mandataire est compliquée car il faut que le « reverse proxy » différentie et maintienne chaque connexion TCP pour chaque client [12] [13]. Le comportement pas défaut de HAProxy est en mode « Keep-Alive » qui va maintenir la connexion TCP ouverte côté client et serveur ce qui rend l'authentification NTLM possible [14] .

L'authentification NTLM qui repose sur un échange « challenge/response » qui est facilement décryptable en écoutant passivement le réseau via un logiciel tel que Cain&Abel. Un autre type d'attaque possible est « pass-the-hash » qui utilise le hash de l'utilisateur, stocké dans le « Local Security Authority Subsystem Service (LSASS) » pour s'authentifier au d'autres machine Windows du réseau. Il faut donc préférer l'authentification Kerberos à NTLM [15].

Ressources externes :

 

[1] https://www.ssi.gouv.fr/uploads/IMG/pdf/NP_TLS_NoteTech.pdf

[2] https://www.ssi.gouv.fr/uploads/2017/01/guide_hygiene_informatique_anssi.pdf

[3] https://docs.microsoft.com/fr-fr/sharepoint/hybrid/configure-a-reverse-proxy-device-for-sharepoint-server-hybrid

[4] https://docs.microsoft.com/en-us/SkypeForBusiness/certification/infra-rev-proxy

[5] https://www.reddit.com/r/sysadmin/comments/34e3o5/recommendation_for_microsoft_tmg_replacement/

[6] http://squid-web-proxy-cache.1019090.n4.nabble.com/Problems-with-NTLM-authentication-td4674800.html

[7] http://apache-http-server.18135.x6.nabble.com/Apache-Reverse-Proxy-and-NTLM-Authentication-Help-td5040129.html

[8] https://itgration.blogspot.com/2016/12/apache-reverse-proxy-to-sharepoint-2013.html

[9] https://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-haproxy-keepalived-on-debian-lenny

[10] https://tools.ietf.org/html/rfc7231

[11] https://tools.ietf.org/html/rfc4559

[12] https://stackoverflow.com/questions/41936501/reverse-proxying-an-ntlm-protected-website

[13] https://serverfault.com/questions/375858/haproxy-and-windows-auth

[14] https://www.haproxy.com/fr/documentation/aloha/7-5/traffic-management/lb-layer7/http-modes/#keep-alive-kal-mode

[15] https://www.ssi.gouv.fr/uploads/2015/01/NP_NavigateurSecurise_FireFox_1-1.pdf

mars 26
Déployer et configurer Windows Server 2012 en mode core
Déployer et configurer Windows Server 2012 en mode core.
 

Précédemment dans Windows Server, nous avons déployés Windows Serveur 2012 R2 sur notre machine virtuelle.

Nous avons également configuré le serveur en modifiant son adresse IP, le nom de la machine et en rattachant la machine au domaine Omnium.com

Nous allons réitérer maintenant en mode Core.

La procédure est exactement identique jusqu'à l'image WS0021 Installation de Windows où vous choisirez par défaut l'option Windows Server 2012 R2 installation minimale.

L'option Core est désormais recommandée par Microsoft.

WS0047.jpg 

La suite de l'installation est exactement identique jusqu'à l'image WS0027.

Une fois franchie cette étape tout change ; vous devez arriver à la présentation suivante très dépouillée :

WS0048.jpg 

Changer le nom de l'ordinateur

 

Taper SCONFIG.CMD

WS0049.jpg 

 

WS0050.jpg 

Choisir l'option 2.

WS0051.jpg 

Saisir le nom de l'ordinnateur.

WS0052.jpg 

Redémarrer votre ordinateur.

WS0053.jpg 

Taper la commande hostname pour vérifier le succès de l'opération.

 WS0054.jpg

 WS0055.jpg

Configurer le réseau

Taper à nouveau la commande sconfig.cmd et choisir l'option 8.

 WS0056.jpg

Taper le numéro d'index de la carte réseau que nous souhaitons paramétrer.

 WS0057.jpg

WS0058.jpg 

Dans le menu paramètres de carte réseau choisir choix 1 Définir l'adresse de la carte réseau.

Choisir S pour IP statique.

WS0059.jpg 

Saisir l'IP statique.

WS0060.jpg 

 

WS0061.jpg 

Saisir le masque de sous-réseau puis la passerelle

 WS0062.jpg

WS0063.jpg 

Sélectionner l'option 2.

WS0064.jpg 

Saisissez votre DNS préféré.

WS0065.jpg 

 

WS0066.jpg 

Entrer vide pour alternate DNS.

WS0067.jpg 

 

4 pour retourner au menu principal.

WS0068.jpg 

15 pour finir

 WS0069.jpg

Ping du Contrôleur de domaine pour s'assurer du succès de l'opération. 

WS0070.jpg 

 

WS0071.jpg 

Ajouter le serveur au domaine

Taper SCONFIG.CMD et choisir l'option 1.

 

WS0072.jpg 

Pour joindre le domaine taper D. 

 WS0073.jpg

Saisir le nom du domaine.

 WS0074.jpg

Spécifié le nom d'un utilisateur dûment autorisé. Administrateur du domaine.

Puis saisissez son mot de passe.

 WS0075.jpg

Accepter la proposition de changement de nom.

WS0076.jpg 

Accepter le redémarrage de votre ordinateur. 

WS0077.jpg 

Nouvelle connexion avec Omnium\administrateur.

WS0078.jpg 

 WS0079.jpg

 

Nous venons de déployer Windows Serveur 2012 sur notre machine virtuelle en mode core.

Nous avons également configuré le serveur en modifiant son adresse IP, le nom de la machine et en rattachant la machine au domaine Omnium.com

To be continued...

 Windows Server

 

mars 10
Déployer et configurer Windows Server 2012 en mode Interface Graphique

Déployer et configurer Windows Server 2012 en mode Interface Graphique

La nouvelle rubrique a pour objectif de vous proposer des exercices d'entrainement au déploiement, à la configuration et à l'administration de Windows Server.

Pour gagner du temps nous sommes repartis de l'environnement déjà décrit dans Environnement - SharePoint Virtualisé - Préliminaires

Donc pour ceux qui partiraient de Zéro se reporter aux billets correspondants.

Il impératif que vous alliez au préalable jusqu'à la création de votre contrôleur de domaine.

Notre environnement s'appuie sur VMWARE mais tout est réalisable également avec tout autre hyperviseur.

L'objectif de ce premier exercice est de déployer Windows Server 2012 R2 en mode interface graphique (GUI) puis immédiatement après de faire la même chose en mode core.

Création de la machine virtuelle

Dans votre hyperviseur cliquer sur créer une nouvelle machine virtuelle et cliquer sur suivant.

WS0001A.jpg 

Choisir la configuration personnalisée et cliquer sur suivant.

WS0002.jpg 

Saisir le nom de votre machine virtuelle et cliquer sur suivant.

WS0003.jpg 

Choisir l'emplacement de stockage de votre VM et cliquer sur suivant.

WS0004.jpg 

Laisser l'option par défaut et cliquer sur suivant.

WS0005.jpg 

Choisir l'OS client et cliquer sur suivant.

WS0006.jpg 

Choisir le nombre de cœur pour votre vm et cliquer sur suivant.

WS0007.jpg 

Sélectionner la taille de la mémoire de votre VM par défaut et cliquer sur suivant.

WS0008.jpg 

Sélectionner le réseau dans lequel se trouvera votre machine virtuelle.

WS0009.jpg 

Cliquer sur suivant par défaut.

WS0010.jpg 

Créer un nouveau disque virtuel et cliquer sur suivant.

 WS0011.jpg

Pour créer le disque choisir la taille de votre VM. 40 GO par défaut. Cliquer sur suivant.

WS0012.jpg 

Option par défaut cliquer sur suivant.

WS0013.jpg 

Pour finaliser votre VM cliquer sur Terminer.

WS0014.jpg 

Prochaine étape installation du Système d'exploitation.

 

Votre VM apparaît désormais dans votre arborescence.

Modifier les paramètres afin de sélectionner l'image ISO de votre futur système d'exploitation qui s'installera dés le Démarrage de la VM.

WS0015A.jpg 

Dans modifier les paramètres choisir lecteur CD/DVD et paramétrer comme ci-dessous le fichier ISO (à aller chercher dans la banque de données préalablement stocké) et ne pas oublier de cocher Connecter lors de la mise sous tension.

WS0016.jpg 

Démarrer la VM en mode console.

WS0017A.jpg 

 

Dès le lancement de la VM l'installation du système d'exploitation débute.

WS0018.jpg 

 WS0019.jpg

WS0020A.jpg 

WS0021.jpg 

 

WS0022.jpg 

 

WS0023.jpg 

Choisir l'option personnalisé.

WS0024.jpg 

WS0025.jpg 

WS0026.jpg 

 

Entrer le mot de passe de l'administrateur pour terminer.

WS0027.jpg 

WS0028.jpg 

 

WS0029.jpg 

 

Configurer le réseau

Dans Gestionnaire de serveur cliquer sur Serveur local.

WS0030.jpg 

Cliquer sur Adresse IPV4 attribuée par DHCP, Compatible IPV6.

WS0031.jpg 

Avec le bouton Droite de votre souris sélectionner et cliquer sur propriétés de votre connexion réseau.

WS0032.jpg 

Sélectionner Protocole Internet Version 4 (TCP/IPv4) et cliquer sur propriétés.

 WS0033.jpg

Cocher Utiliser l'adresse IP suivante et saisir l'adresse IP de votre machine, le Masque Réseau, la passerelle et le DNS. L'adresse de votre machine pas celles de l'exercice.

Cliquer sur OK.

WS0034.jpg 

 

Changer le nom de l'ordinateur.

WS0035.jpg 

Cliquer sur Modifier.

 

WS0036.jpg 

 

Saisir le nouveau nom de votre serveur et cliquer sur OK.

WS0037.jpg 

 WS0038.jpg

 WS0039.jpg

 WS0040.jpg

Rattacher le serveur au domaine

Dans Serveur local cliquer sur WORKGROUP.

WS0040.jpg 

Cliquer sur Modifier puis cocher Membre d'un Domaine.

WS0041.jpg 

Saisir votre nom de domaine et cliquer sur OK.

Entrer le nom et le mot de passe de l'administrateur du controleur de domaine.

 WS0042.jpg

 WS0043.jpg

Votre serveur est rattaché au domaine.

WS0044.jpg 

 

Cliquer sur Ok et redémarrer le serveur.

WS0045A.jpg 

Se connecter sur votre serveur.

WS0045.jpg 

 WS0046.jpg

 

Nous venons de déployer Windows Serveur 2012 sur notre machine virtuelle.

Nous avons également configuré le serveur en modifiant son adresse IP, le nom de la machine et en rattachant la machine au domaine Omnium.com

To be continued...

 Windows Server

À propos de ce blog
Non, ce n'est pas vraiment ma photo. Je n'ai simplement pas eu le temps de mettre à jour cette section. Il est quand même bon de savoir que quelqu'un me lit entièrement. Merci !