quelque part dans notre réseau, un client LDAP interroge nos serveurs publics sans les informations appropriées de la CA. Cela provoque le système (à mon avis inutile) ID (Source: SCHANNEL) ID 36887 sur le journal des événements des contrôleurs de domaine:
L'alerte fatale suivante a été reçue: 46.
Comment puis-je localiser le client mal configuré?
Intégré Vous ne pouvez pas trouver facilement la source du message.
Vous avez besoin de TCPDump, Microsoft Network Monitor ou WireShark pour trouver la machine causant l'erreur. (de nombreux fils ont dit la même chose, Là , Là ou là (voir dans le commentaire de la réponse à George à propos de TCPDump))
J'ai très peu d'expérience avec Windows/AD Administration, mais je suis confortable avec Linux. Je pensais faire une capture de trace et/ou de paquets, exécutez le programme en mode de débogage, etc ... dans une situation de Linux similaire ... donc j'ai trouvé ceci:
Comment tracer/debug connexions LDAP contre Active Directory?
Et ça:
https://technet.microsoft.com/en-us/library/cc961809.aspx
L'augmentation du niveau augmente le détail des messages et le nombre de messages émis. Réglage de la valeur des entrées dans la sous-clé de diagnostic sur plus grande, puis peut dégrader les performances du serveur et n'est pas recommandée. Le journal des événements de l'application remplit rapidement lorsque le niveau de journalisation est augmenté.
Et ceci peut-être:
https://msdn.Microsoft.com/en-us/library/windows/desktop/dd815339 (v = vs.85) .aspx
Le traçage utilise le traçage des événements pour Windows (ETW). Pour tirer parti des outils de traçage disponibles avec Windows Server 2008 R2, installez le site Microsoft Windows SDK à partir du site de téléchargement MSDN.
Une recherche Google présente également les résultats sur la performance des traces et des services de Windows, mais à nouveau, je ne connais aucun de cela. J'imagine que regarder le trafic réseau seul pourrait être très difficile, car vous ne voyez que la circulation et que vous ne savez probablement pas quoi chercher et que vous ne voyez pas vraiment ce qui se passe dans le service.
Je n'ai aucune idée du type de sortie à attendre d'une trace sur le LDAP ou d'utiliser l'un des outils/méthodes mentionnés, mais il semble que cela vaut la peine d'essayer.
Bonne chance
Si vous ne voulez pas de renifler de paquet, je recommanderais un script PowerShell dans tous les ordinateurs testant une connexion LDAP sécurisée et une journalisation qui échoue. Vous pouvez vous connecter à distance aux clients du contrôleur de domaine ou vous pouvez créer un script côté client qui enregistre les échecs sur un service de fichiers.
L'Idea du script est de simuler une connexion LDAP sécurisée. Il utilise la framework .NET qui vient nativement sur Windows 7 SP1 ou plus.
Si vous souhaitez courir à distance à partir du DC, le script ressemblerait à ceci (nécessite une autorisation pour les PowerShell distants pouvant être obtenue suite à cet article https://www.briantiste.com/how-to/powershell- Remoting-Group-Politique / ):
Import-Module ActiveDirectory
$domain = "contoso.com"
$user = "Administrator"
$password = "P@ssw0rd"
$IPFilter = "192.168.1.*"
$scriptblock = {
write-Host "$(hostname) - " -NoNewLine
try {
$LDAPS = New-Object adsi ("LDAP://$($args[0]):636",$args[1],$args[2],'SecureSocketsLayer')
Write-Host "Secure LDAP Connection succeeded."
} Catch {
Write-Host "Secure LDAP Connection failed." -foregroundcolor red
}
}
$Computers = Get-ADComputer -filter * -Properties IPv4Address | Where{ $_.IPv4Address -like $IPFilter}
foreach($Computer in $Computers)
{
try {
$session = New-PSSession $Computer.Name -ErrorAction Stop
Invoke-Command -Session $session -ScriptBlock $scriptblock -ArgumentList $domain,$user,$password
}catch{
Write-Host "Connection to $($Computer.Name) failed." -foregroundcolor red
}
}
Ou si vous souhaitez un script local qui se connecte à un serveur distant:
$domain = "contoso.com"
$user = "Administrator"
$password = "P@ssw0rd"
$LogFile = "\\fileserver\logs\ldapconnection.log"
try {
$LDAPS = New-Object adsi ("LDAP://$domain:636",$user,$password,'SecureSocketsLayer')
"$(hostname) - Secure LDAP Connection succeeded." | Out-File $LogFile -Append
} Catch {
"$(hostname) - Secure LDAP Connection failed." | Out-File $LogFile -Append
}
La sortie d'une exécution de la version distante (les rouges sont des clients hors ligne):