Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Advanced Threat Analytics Version 1.9
Note
Dieser Artikel ist nur relevant, wenn Sie ATA-Gateways anstelle von ATA Lightweight Gateways bereitstellen. Informationen dazu, ob Sie ATA-Gateways verwenden müssen, finden Sie unter Auswählen der richtigen Gateways für Ihre Bereitstellung.
Die folgenden Schritte führen Sie durch den Prozess, um zu überprüfen, dass die Portspiegelung ordnungsgemäß konfiguriert ist. Damit ATA ordnungsgemäß funktioniert, muss das ATA-Gateway in der Lage sein, den Datenverkehr zum und vom Domänencontroller anzuzeigen. Die von ATA verwendete Hauptdatenquelle ist eine umfassende Paketüberprüfung des Netzwerkdatenverkehrs zu und von Ihren Domänencontrollern. Damit ATA den Netzwerkdatenverkehr sehen kann, muss die Portspiegelung konfiguriert werden. Portspiegelung kopiert den Datenverkehr von einem Port (dem Quellport) an einen anderen Port (den Zielport).
Überprüfen der Portspiegelung mithilfe eines Windows PowerShell-Skripts
Speichern Sie den Text dieses Skripts in einer Datei namensATAdiag.ps1.
Führen Sie dieses Skript auf dem ATA-Gateway aus, das Sie überprüfen möchten. Das Skript generiert ICMP-Datenverkehr vom ATA-Gateway zum Domänencontroller und sucht nach diesem Datenverkehr auf der Aufnahme-NIC auf dem Domänencontroller. Wenn das ATA-Gateway ICMP-Datenverkehr mit einer Ziel-IP-Adresse sieht, die mit der von Ihnen in der ATA-Konsole eingegebenen DC-IP übereinstimmt, wird die Portspiegelung konfiguriert.
Beispiel für die Ausführung des Skripts:
# ATAdiag.ps1 -CaptureIP n.n.n.n -DCIP n.n.n.n -TestCount n param([parameter(Mandatory=$true)][string]$CaptureIP, [parameter(Mandatory=$true)][string]$DCIP, [int]$PingCount = 10) # Set variables $ErrorActionPreference = "stop" $starttime = get-date $byteIn = new-object byte[] 4 $byteOut = new-object byte[] 4 $byteData = new-object byte[] 4096 # size of data $byteIn[0] = 1 # for promiscuous mode $byteIn[1-3] = 0 $byteOut[0-3] = 0 # Convert network data to host format function NetworkToHostUInt16 ($value) { [Array]::Reverse($value) [BitConverter]::ToUInt16($value,0) } function NetworkToHostUInt32 ($value) { [Array]::Reverse($value) [BitConverter]::ToUInt32($value,0) } function ByteToString ($value) { $AsciiEncoding = new-object system.text.asciiencoding $AsciiEncoding.GetString($value) } Write-Host "Testing Port Mirroring..." -ForegroundColor Yellow Write-Host "" Write-Host "Here is a summary of the connection we will test." -ForegroundColor Yellow # Initialize a first ping connection Test-Connection -Count 1 -ComputerName $DCIP -ea SilentlyContinue Write-Host "" Write-Host "Press any key to continue..." -ForegroundColor Red [void][System.Console]::ReadKey($true) Write-Host "" Write-Host "Sending ICMP and Capturing data..." -ForegroundColor Yellow # Open a socket $socket = new-object system.net.sockets.socket([Net.Sockets.AddressFamily]::InterNetwork,[Net.Sockets.SocketType]::Raw,[Net.Sockets.ProtocolType]::IP) # Include the IP header $socket.setsocketoption("IP","HeaderIncluded",$true) $socket.ReceiveBufferSize = 10000 $ipendpoint = new-object system.net.ipendpoint([net.ipaddress]"$CaptureIP",0) $socket.bind($ipendpoint) # Enable promiscuous mode [void]$socket.iocontrol([net.sockets.iocontrolcode]::ReceiveAll,$byteIn,$byteOut) # Initialize test variables $tests = 0 $TestResult = "Noise" $OneSuccess = 0 while ($tests -le $PingCount) { if (!$socket.Available) # see if any packets are in the queue { start-sleep -milliseconds 500 continue } # Capture traffic $rcv = $socket.receive($byteData,0,$byteData.length,[net.sockets.socketflags]::None) # Decode the header so we can read ICMP $MemoryStream = new-object System.IO.MemoryStream($byteData,0,$rcv) $BinaryReader = new-object System.IO.BinaryReader($MemoryStream) # Set IP version & header length $VersionAndHeaderLength = $BinaryReader.ReadByte() # TOS $TypeOfService= $BinaryReader.ReadByte() # More values, and the Protocol Number for ICMP traffic # Convert network format of big-endian to host format of little-endian $TotalLength = NetworkToHostUInt16 $BinaryReader.ReadBytes(2) $Identification = NetworkToHostUInt16 $BinaryReader.ReadBytes(2) $FlagsAndOffset = NetworkToHostUInt16 $BinaryReader.ReadBytes(2) $TTL = $BinaryReader.ReadByte() $ProtocolNumber = $BinaryReader.ReadByte() $Checksum = [Net.IPAddress]::NetworkToHostOrder($BinaryReader.ReadInt16()) # The source and destination IP addresses $SourceIPAddress = $BinaryReader.ReadUInt32() $DestinationIPAddress = $BinaryReader.ReadUInt32() # The source and destimation ports $sourcePort = [uint16]0 $destPort = [uint16]0 # Close the stream reader $BinaryReader.Close() $memorystream.Close() # Cast DCIP into an IPaddress type $DCIPP = [ipaddress] $DCIP $DestinationIPAddressP = [ipaddress] $DestinationIPAddress #Ping the DC at the end after starting the capture Test-Connection -Count 1 -ComputerName $DCIP -ea SilentlyContinue | Out-Null # This is the match logic - check to see if Destination IP from the Ping sent matches the DCIP entered by in the ATA Console # The only way the ATA Gateway should see a destination of the DC is if Port Spanning is configured if ($DestinationIPAddressP -eq $DCIPP) # is the destination IP eq to the DC IP? { $TestResult = "Port Spanning success!" $OneSuccess = 1 } else { $TestResult = "Noise" } # Put source, destination, test result in Powershell object new-object psobject | add-member -pass noteproperty CaptureSource $([system.net.ipaddress]$SourceIPAddress) | add-member -pass noteproperty CaptureDestination $([system.net.ipaddress]$DestinationIPAddress) | Add-Member -pass NoteProperty Result $TestResult | Format-List | Out-Host #Count tests $tests ++ } if ($OneSuccess -eq 1) { Write-Host "Port Spanning Success!" -ForegroundColor Green Write-Host "" Write-Host "At least one packet which was addressed to the DC, was picked up by the Gateway." -ForegroundColor Yellow Write-Host "A little noise is OK, but if you don't see a majority of successes, you might want to re-run." -ForegroundColor Yellow } else { Write-Host "No joy, all noise. You may want to re-run, increase the number of Ping Counts, or check your config." -ForegroundColor Red } Write-Host "" Write-Host "Press any key to continue..." -ForegroundColor Red [void][System.Console]::ReadKey($true)
Überprüfen der Portspiegelung mithilfe von Net Mon
Installieren Sie Microsoft Network Monitor 3.4 auf dem ATA-Gateway, das Sie überprüfen möchten.
Wichtig
Installieren Sie keine Microsoft Message Analyzer oder andere Datenverkehrserfassungssoftware auf dem ATA-Gateway.
Öffnen Sie den Netzwerkmonitor und erstellen Sie eine neue Erfassung.
Wählen Sie nur den Aufnahmenetzwerkadapter oder den Netzwerkadapter aus, der mit dem Switchport verbunden ist, der als Portspiegelungsziel konfiguriert ist.
Stellen Sie sicher, dass der P-Modus aktiviert ist.
Klicken Sie auf "Neue Erfassung".
Geben Sie im Fenster Anzeigefilter den folgenden Filter ein: KerberosV5 ODER LDAP und klicken Sie dann auf Übernehmen.
Klicken Sie auf "Start ", um die Aufnahmesitzung zu starten. Wenn der Datenverkehr zum und vom Domänencontroller nicht angezeigt wird, überprüfen Sie die Portspiegelungskonfiguration.
Note
Es ist wichtig, sicherzustellen, dass der Datenverkehr zu und von den Domänencontrollern sichtbar ist.
Wenn nur Datenverkehr in eine Richtung angezeigt wird, sollten Sie mit Ihren Netzwerk- oder Virtualisierungsteams zusammenarbeiten, um probleme mit der Portspiegelungskonfiguration zu beheben.