3 votes

Pourquoi une option de MS GPO casse-t-elle les partages SMB qui utilisent un fichier hosts pour le nom de la machine ?

Nous avons mis " Serveur de réseau Microsoft : Niveau de validation du nom cible du SPN du serveur "à "Requis par le client" sur notre GPO de test.

Nos systèmes de test ont quelques alias de machine personnalisés dans leurs fichiers hosts, mais une fois l'option activée, nous ne pouvons plus accéder aux partages SMB en utilisant l'alias de machine.

J'ai eu du mal à trouver des informations sur cette interaction et j'espérais que quelqu'un pourrait m'expliquer cette interaction et me dire s'il existe un moyen d'y remédier.

8voto

Christian Deger Points 503

Il ne s'agit pas du fichier "hosts", mais de la rupture des partages auxquels on accède via un nom d'hôte différent du "vrai" nom du serveur. Votre résultat est normal, puisque c'est littéralement l'objectif de la GPO.

La GPO en question ressemble beaucoup à l'application de TLS SNI que l'on trouve dans certains serveurs web : le client déclare "Je suis ici pour parler au serveur SRV01.EXAMPLE.COM" et si le serveur ne reconnaît pas ce nom comme l'un des vhosts qu'il sert, il rejette complètement le client. Donc ici, si le client déclare qu'il veut parler à l'un de vos alias /etc/hosts, mais que le serveur ne connaît pas l'alias, il rejette le client.

Kerberos a déjà intégré une mise en application similaire (c'est pourquoi vous devez enregistrer des SPN pour les alias en utilisant la fonction setspn ), mais les GPO sont plus strictes. y étend la même protection à NTLM.

(Comme déjà mentionné dans la page Docs, ceci est censé empêcher les attaques par relais NTLM, où un serveur A malveillant accepte l'authentification NTLM puis transmet exactement les mêmes paquets NTLM à un vrai serveur B - l'attaque serait empêchée car le serveur B verrait "I want to talk to server A" du client).

Il est Il est toujours possible d'utiliser des alias d'hôtes, mais cela nécessite une quantité toujours plus grande de boutons de registre. La méthode officielle consiste à utiliser netdom computername REALHOST /add:THEALIAS dans le cas de ce billet de TechNet J'ai trouvé des articles de blog prétendant que cela suffit à rendre les alias utilisables même avec une validation stricte du SPN, mais il semble vraiment que ce soit le cas. no Il y a au moins une, voire deux valeurs de registre qu'il oublie de toucher.

  1. Registres NETDOM Kerberos SPN pour l'alias dans AD, ce qui permet d'obtenir des tickets Kerberos pour eux, de la même manière qu'en émettant manuellement ces deux commandes :

    setspn -S HOST/THEALIAS REALHOST$
    setspn -S HOST/thealias.example.com REALHOST$

    Ceci est nécessaire pour Kerberos et il n'y a aucune excuse pour ne pas utiliser Kerberos dans un environnement AD, donc que vous choisissiez d'utiliser NETDOM ou de le faire à la main, vous devez enregistrer les alias SPN de toute façon.

    (Techniquement, SMB utilise des principals "cifs/", mais dans AD, ils sont implicitement présents dès que le SPN "host/" est enregistré).

  2. NETDOM ajoute ensuite l'alias à deux endroits du registre du serveur, ce qui amène le serveur à enregistrer ses noms supplémentaires dans AD DNS et à les annoncer via NetBIOS Browser :

    • Chemin : HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
      Nom : AlternateComputerNames
      Type : REG_MULTI_SZ
      Données : { thealias.example.com }

    • Chemin : HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
      Nom : OptionalNames
      Type : REG_MULTI_SZ
      Données : { THEALIAS }

    Ils ne semblent pas avoir d'effet sur l'authentification (pas même Kerberos), donc je crois que ces deux éléments sont complètement facultatifs si vous utilisez /etc/hosts ou si vous créez manuellement des enregistrements CNAME dans le DNS.

  3. Un paramètre supplémentaire que NETDOM n'a pas mais que j'ai trouvé nécessaire pour accéder aux alias depuis le serveur lui-même :

    • Chemin : HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
      Nom : BackConnectionHostNames
      Type : REG_MULTI_SZ
      Données : { thealias.example.com }

    Celle-ci n'est nécessaire que pour les connexions "loopback", donc peut-être pas strictement nécessaire en général, mais au moins dans mon cas le serveur a fait doit se connecter à son propre alias, ce paramètre était donc nécessaire.

  4. Enfin, j'ai constaté que la fonction "validation du nom de la cible SPN" a son propre liste des noms autorisés qui doit être mise à jour manuellement - sinon les alias seraient rejetés en raison de la validation stricte du SPN, même si tous les paramètres ci-dessus sont présents :

    • Chemin : HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
      Nom : SrvAllowedServerNames
      Type : REG_MULTI_SZ
      Données : { THEALIAS , thealias.example.com }

    Vous devez énumérer les deux noms courts y FQDNs de chaque alias - d'après mes expériences, l'énumération de l'un n'implique pas automatiquement l'autre.

Une fois que les SPN Kerberos sont enregistrés et que l'application SrvAllowedServerNames les alias devraient enfin fonctionner correctement, même avec une validation stricte de la cible.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X