ldap客户端在我们网络中的某个地方查询我们的AD服务器时没有正确的CA信息。这会在域控制器的事件日志中引发(我认为无用)系统严重(源:schannel)事件ID 36887:
收到以下致命警报:46。
如何找到配置错误的客户端?
ldap客户端在我们网络中的某个地方查询我们的AD服务器时没有正确的CA信息。这会在域控制器的事件日志中引发(我认为无用)系统严重(源:schannel)事件ID 36887:
收到以下致命警报:46。
如何找到配置错误的客户端?
Answers:
我对Windows / AD管理的经验很少,但是对Linux很满意。我以为我会进行跟踪和/或数据包捕获,以调试模式运行程序,等等...在类似的Linux情况下...所以我发现了这一点:
如何针对Active Directory跟踪/调试LDAP连接?
和这个:
https://technet.microsoft.com/zh-CN/library/cc961809.aspx
增加级别会增加消息的详细信息和发出的消息数量。将“诊断”子项中的条目的值设置为大于3可能会降低服务器性能,因此不建议这样做。当增加日志记录级别时,应用程序事件日志会迅速填满。
这可能是:
https://msdn.microsoft.com/zh-CN/library/windows/desktop/dd815339(v=vs.85).aspx
跟踪使用Windows事件跟踪(ETW)。要利用Windows Server 2008 R2附带的跟踪工具,请从MSDN下载站点安装Microsoft Windows SDK。
谷歌搜索还会在Windows服务上执行跟踪等结果,但是同样,我对此并不熟悉。我想单靠观看网络流量可能会非常困难,因为您只看到流量,并且可能不知道要查找什么,并且您并没有真正看到服务中正在发生的事情。
我不知道在ldap上执行跟踪或使用提到的任何工具/方法会期望什么样的输出,但是似乎值得尝试一下。
祝好运
如果您不希望数据包嗅探,我会在所有测试安全ldap连接并记录谁失败的计算机中推荐一个powershell脚本。您可以从域控制器远程连接到客户端,也可以使客户端脚本将失败记录在文件服务器上。
该脚本的主旨是模拟安全的ldap连接。它使用Windows 7 sp1或更高版本上的.net框架。
如果您想从DC远程运行,该脚本将如下所示(需要获得远程Powershell的权限,可以在本文https://www.briantist.com/how-to/powershell-remoting-group-之后实现政策/):
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
}
}
或者,如果您希望使用本地脚本登录到远程服务器:
$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
}
远程版本执行的输出(红色版本是脱机客户端):