trova il client responsabile dell'errore ldap schannel


8

da qualche parte nella nostra rete un client LDAP sta interrogando i nostri server AD senza le informazioni CA appropriate. Ciò provoca l'ID evento (fonte: schannel) di sistema critico (fonte: schannel) 36887 sul registro eventi dei controller di dominio:

È stato ricevuto il seguente avviso fatale: 46.

Come posso individuare il client non configurato correttamente?


Questo errore continua a verificarsi? O è successo una volta sola?
Felipe Donda,

1
continua ad accadere ai server LDAP nel primo sito predefinito, quindi il client è contenuto in quegli intervalli IP.
natxo asenjo,

Risposte:


8

Integrato non è possibile trovare facilmente l'origine del messaggio.

È necessario tcpdump, Microsoft Network Monitor o WireShark per trovare la macchina che causa l'errore. (molti thread hanno detto lo stesso, , o (Vedi nel commento la risposta a George su tcpdump))


2
Tendo ad essere d'accordo, e fa schifo ;-) (non il tuo commento, la situazione). Un'altra soluzione sarebbe quella di disattivare del tutto il loggging dello schannel, ma ciò potrebbe avere effetti inaspettati.
natxo asenjo,

@natxoasenjo un'altra cosa che ho visto è per ldap vedo riferimento che la registrazione viene effettuata tramite iis, forse per controllare la directory di registro di iis per trovare l'ip / richiesta fatta per poter trovare l'ip più velocemente. (consentirà di confrontare il timestamp di entrambi i registri)
yagmoth555

è stato un bel suggerimento, ma il ruolo del server web non è installato in questi controller di dominio (2008r2).
natxo asenjo,

3

Se si è in grado di acquisire il traffico che scorre verso DC per l'analisi, è possibile utilizzare la ricerca di pacchetti di Wireshark per trovare i certificati presentati.

Questo filtro WireShark cerca lo scambio di certificati e filtra qualsiasi cosa emessa dal "test LDAP SSL", ciò ti permetterebbe di trovare certificati non emessi dal tuo dominio.

(ssl.handshake.type == 11) && !(x509sat.uTF8String == "LDAP SSL test")

Non ho un esempio di annuncio su cui lavorare in modo che stia usando un pcap LDAP su TLS standard dalla pagina degli esempi di WireShark.


0

Ho poca esperienza con l'amministrazione di Windows / AD, tuttavia sono a mio agio con Linux. Ho pensato di fare una traccia e / o l'acquisizione di pacchetti, di eseguire il programma in modalità debug, ecc ... in una situazione Linux simile ... quindi ho trovato questo:

Come tracciare / eseguire il debug delle connessioni LDAP su Active Directory?

E questo:

https://technet.microsoft.com/en-us/library/cc961809.aspx

L'aumento del livello aumenta il dettaglio dei messaggi e il numero di messaggi emessi. L'impostazione del valore delle voci nella sottochiave Diagnostics su 3 può peggiorare le prestazioni del server e non è consigliabile. Il registro eventi dell'applicazione si riempie rapidamente quando si aumenta il livello di registrazione.

E questo forse:

https://msdn.microsoft.com/en-us/library/windows/desktop/dd815339(v=vs.85).aspx

La traccia utilizza la traccia eventi per Windows (ETW). Per sfruttare gli strumenti di traccia disponibili con Windows Server 2008 R2, installare l'SDK di Microsoft Windows dal sito Download MSDN.

Una ricerca su Google mostra anche risultati sull'esecuzione di tracce e simili sui servizi di Windows, ma ancora una volta non ne ho familiarità. Immagino che guardare il traffico di rete da solo potrebbe essere molto difficile, perché stai vedendo solo traffico e probabilmente non sai cosa cercare e non stai davvero vedendo cosa sta succedendo all'interno del servizio.

Non ho idea del tipo di output che ci si aspetta dall'eseguire una traccia su ldap o dall'uso di uno qualsiasi degli strumenti / metodi citati, ma sembra che valga la pena provare.

In bocca al lupo


0

Se non vuoi sniffare i pacchetti, consiglierei uno script PowerShell in tutti i computer che testano una connessione ldap sicura e registrano chi fallisce. È possibile connettersi in remoto ai client dal controller di dominio oppure è possibile creare uno script lato client che registra gli errori su un file server.

L'ideia dello script è di simulare una connessione ldap sicura. Utilizza un framework .net che viene fornito nativamente su Windows 7 SP1 o versione successiva.

Nel caso in cui si desideri eseguire in remoto dal controller di dominio, lo script sarebbe simile al seguente (richiede l'autorizzazione per PowerShell remoto che può essere ottenuta seguendo questo articolo https://www.briantist.com/how-to/powershell-remoting-group- politica / ):

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
   }
}

O se vuoi uno script locale che acceda a un server remoto:

$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
}

Output di un'esecuzione di versione remota (quelli rossi sono client offline):

inserisci qui la descrizione dell'immagine


grazie per la sceneggiatura. La nostra infrastruttura è un mix di client Windows e Linux, quindi coprirebbe solo una parte di essa. Bella idea, comunque.
natxo asenjo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.