Ga naar inhoud

De opname-agent voor Windows installeren en gebruiken

  • Installatie


    De Windows-opname-agent installeren en implementeren.

    Installeren

  • Configuratie


    De Windows-opname-agent configureren zodat deze werkt met RDP- en HTML5 RDP-applicaties en/of met directe toegang.

    Configureren

De Windows-opname-agent wordt door CyberElements Bastion gebruikt om nieuwe functies toe te voegen aan RDP-sessies:

  • Mogelijkheid om de TCP- en UDP-stromen te filteren die voor de gebruiker toegankelijk zijn
  • Mogelijkheid om de sessieopname te starten voor elke gebruiker die verbinding maakt met de server zonder via het gebruikersportaal of de Desktop-client te gaan (functie direct access)

Daarnaast worden er tijdens de gebruikerssessies extra gebeurtenissen vastgelegd:

  • Openen van een venster
  • Sluiten van een venster
  • Starten van programma's
  • Sluiten van programma's
  • Inhoud van het klembord
  • Activiteit van de gebruiker

Voorwaarden

Compatibiliteit van de client

Raadpleeg de compatibiliteitsmatrix om te weten of de agent compatibel is met de verschillende besturingssystemen van Microsoft Windows.

De opname-agent vereist enkele voorwaarden om correct te werken. Sommige daarvan betreffen uitsluitend de opnamefunctie met agent voor RDP- en HTML5 RDP-applicaties, andere de directe toegang met agent.

Algemene voorwaarden

De opname-agent stuurt de opname van de gebruikerssessie terug naar CyberElements Bastion door verbinding te maken met de Edge Gateway op poort TCP 8443. Daarvoor moet de netwerkstroom tussen de twee machines open zijn.

Om de opname veilig naar de Edge Gateway terug te sturen, brengt de opname-agent met deze laatste een beveiligde verbinding via TLS tot stand. TLS is gebaseerd op het gebruik van certificaten en aan de volgende voorwaarden moet zijn voldaan om de verbinding als betrouwbaar en veilig te kunnen beschouwen:

  • Het certificaat van de server, in dit geval de Edge Gateway, mag niet verlopen zijn (uiterste geldigheidsdatum).
  • Het certificaat van de server, in dit geval de Edge Gateway, moet zijn uitgegeven door een certificeringsinstantie die door de machine waarop de opname-agent is geïnstalleerd als betrouwbaar wordt erkend.

    Aanvullende informatie

    De server waarop de opname-agent is geïnstalleerd, moet ten minste de basiscertificeringsinstantie (CA) van het certificaat van de opnameserver in zijn lokale opslag van vertrouwde certificeringsinstanties hebben.

    Daarom is het volgende nodig:

    1. Haal de root-CA van het certificaat van de opnameservice op de Edge Gateway op.
    2. Upload deze CA naar de server waarop de opname-agent is geïnstalleerd.
    3. Installeer de CA in de certificaatopslag ”Trusted Root Certification Authorities” van de lokale machine.
    Voorbeeld met PowerShell

    Een certificaat in de indeling .cer kan eenvoudig via PowerShell worden geïmporteerd.
    Open daarvoor een PowerShell-terminal als beheerder van de machine en voer de volgende opdracht uit:

    1
    Import-Certificate -FilePath "<PAHT_TO_CERT>" -CertStoreLocation "Cert:\LocalMachine\Root"
    
    Vervang <PATH_TO_CERT> door het pad naar het certificaatbestand.

    Voorbeeld met PowerShell voor het Systancia-certificaat zonder bestanden te verzenden

    In dit voorbeeld wordt de root-CA van Systancia geïnstalleerd, die wordt gebruikt door de CyberElements Bastion-clients die door Systancia geleverde certificaten gebruiken.

    Het is ook mogelijk het certificaat te importeren zonder het bestand naar de machine waarop de opname-agent is geïnstalleerd te moeten verzenden of daar te downloaden.
    Open daarvoor een PowerShell-terminal als beheerder van de machine en voer de volgende opdrachten uit:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # Systancia Root certificate
    $base64Cert = "MIIFIDCCBAigAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCRlIx
    FDASBgNVBAoTC0lQZGl2YSBSb290MR0wGwYDVQQLExRJUGRpdmEgU2VjdXJpdHkg
    RGVwdDEqMCgGA1UEAxMhSVBkaXZhIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
    MR0wGwYJKoZIhvcNAQkBFg5wa2lAaXBkaXZhLmNvbTAeFw0wNTA4MjIxNTAwMzla
    Fw0zMDA4MjIxNTAwMzlaMIGNMQswCQYDVQQGEwJGUjEUMBIGA1UEChMLSVBkaXZh
    IFJvb3QxHTAbBgNVBAsTFElQZGl2YSBTZWN1cml0eSBEZXB0MSowKAYDVQQDEyFJ
    UGRpdmEgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEW
    DnBraUBpcGRpdmEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
    ua59tx+RkIPZbGaSwkV0w5fuPBpY3sbLTk/eR2uN7j9zMu0pq38LfibCVsNGlifh
    GfT5CEbrNL7KvlEVY/It1QluYxNgknlcBP1roJG/xHNcUNmbvCFYLy9N3Nd0J/gC
    Vd8tdB4exqyKEoNuqX18rLpSJJOUZdQCeGdF9r+w6vmHdRMeVS44qIiBPv9Bxzgf
    GXBxAlSqfuDDJ3eZEMsWF/kJrbm4Uhav2ACl5qjHgSSTKMoGoEWOJNkB7Mq/khxc
    TnixIpM2s1rpEfhIetPo4BHsyKv7wqWrS6ouwu5AbzT5t3UqaN77CLqcZJGQ3vC0
    IGKBuEcwigd7W6qkX1/XMwIDAQABo4IBhzCCAYMwDwYDVR0TAQH/BAUwAwEB/zAd
    BgNVHQ4EFgQU+lu7XBGohR2DKD+D+abZEODRHjkwgboGA1UdIwSBsjCBr4AU+lu7
    XBGohR2DKD+D+abZEODRHjmhgZOkgZAwgY0xCzAJBgNVBAYTAkZSMRQwEgYDVQQK
    EwtJUGRpdmEgUm9vdDEdMBsGA1UECxMUSVBkaXZhIFNlY3VyaXR5IERlcHQxKjAo
    BgNVBAMTIUlQZGl2YSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTEdMBsGCSqG
    SIb3DQEJARYOcGtpQGlwZGl2YS5jb22CAQAwCwYDVR0PBAQDAgEGMBkGA1UdEQQS
    MBCBDnBraUBpcGRpdmEuY29tMBkGA1UdEgQSMBCBDnBraUBpcGRpdmEuY29tMBEG
    CWCGSAGG+EIBAQQEAwIABzA+BglghkgBhvhCAQ0EMRYvSVBkaXZhIFJvb3QgQ2Vy
    dGlmaWNhdGlvbiBBdXRob3JpdHkgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQEFBQAD
    ggEBACaAgBQK7TATXieb9OdKm+l7/GpePo8f2bRKnkqeRS+HXBKYkvqVJdbJnhJm
    YPOdmhr9ATzt+488tQREAGzqPCp5eiVExPgvomNeG77X57KqbgCA1F7zGJqjP1FL
    771FIWvFXp80ReM/zhcM+MY3sa5LADgOEl5NhoMNHT8AhLKwZ81j5nuwxyG9ICCN
    5GjwgsnK/agmum4+RKeybIWuC/JTsSnu5OImXsmrlUiakp2l+VsZ1rRRNRNUlSbg
    Q3T8kj5ajB0lv2I0kj4fN9wDxzdHEn7nEAmv0t6Y5Te0g/VK3VWhuqeLStaahgip
    hmOVxbu5Ijfug5/3Eemep34NsYk="
    
    # Convert the certificate and store it in memory
    $certBytes = [Convert]::FromBase64String($base64Cert)
    
    # Create a certificate object
    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $cert.Import($certBytes)
    
    # Open the trusted root certificate store on the local machine and add the Systancia root certificate
    $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "LocalMachine")
    $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
    $store.Add($cert)
    $store.Close()
    

    Wijzig, om deze methode met een andere CA te gebruiken, de waarde van de variabele base64Cert in het in base 64 gecodeerde certificaat van uw keuze.

  • Het certificaat van de server, in dit geval de Edge Gateway, mag niet ingetrokken zijn.

  • De machine waarop de opname-agent is geïnstalleerd, moet de server, in dit geval de Edge Gateway, kunnen bereiken met een DNS-naam of een IP-adres dat door het servercertificaat via de Common Name (CN) ervan wordt gedekt.

Specifieke voorwaarden voor RDP-applicaties met agent die op een macOS- of Ubuntu-werkstation worden gebruikt

Waarschuwing

De volgende voorwaarden zijn alleen nodig als de gebruiker een RDP-applicatie met agent start en zijn werkstation geen Windows-systeem is (macOS of Ubuntu).

Als de gebruikers van CyberElements Bastion uitsluitend werkstations met Windows hebben of anders uitsluitend HTML5 RDP-applicaties gebruiken, kunnen de volgende voorwaarden worden genegeerd.

De volgende registersleutels zijn vereist op de doelserver waarop de opname-agent is geïmplementeerd.

Ten eerste schakelt de eerste sleutel de lijst met toegestane opstartprogramma's uit (Microsoft-document). Standaard staat een Windows-machine alleen explorer.exe als opstartprogramma toe.

1
2
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList]
"fDisabledAllowList"=dword:00000001

Als de machine geen RDS-server is, wordt het altijd aanbevolen de volgende registersleutel toe te passen zodat de opname-agent als opstartprogramma kan worden geopend:

1
2
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"HonorLegacySettings"=dword:00000001

Specifieke vereisten voor de directe toegang

Functie voor directe toegang

Met de functie voor directe toegang kunt u de opname van de sessie van de gebruiker starten bij RDP- of consoletoegang (fysieke verbinding met de machine of via de consolemodus van de hypervisor) die niet direct via CyberElements Bastion verloopt.

Als de gebruiker gemachtigd is om toegang tot de server te krijgen, wordt zijn sessie opgenomen. Is dat niet het geval, dan wordt de verbinding van de gebruiker standaard verbroken.

Om de opname-agent in de modus voor directe toegang te laten werken, is een x509-certificaat vereist. Dit certificaat moet aan de volgende vereisten voldoen:

  • Het certificaat moet nog geldig zijn (geldigheidsduur niet verstreken).
  • Het certificaat moet van het type (veld voor uitgebreid sleutelgebruik) client authentication zijn (OID: 1.3.6.1.5.5.7.3.2).
  • Het certificaat mag niet ingetrokken zijn.
  • Uit de beperkingen van OpenSSL-veiligheidsniveau 2 volgt dat:
    • Het certificaat moet bij de versleutelingen RSA, DSA en DH een privésleutel van ten minste 2048 bits hebben; bij sleutels met elliptische krommen (ECC) moeten dat ten minste 224 bits zijn.
    • De ondertekening van het certificaat mag niet MD5 of SHA-1 zijn (SHA-512 heeft de voorkeur).
  • De opnameserver gebruikt het veld Common Name (CN) om het certificaat en dus de machine te identificeren waarop een directe opname wordt gestart. Dit veld moet zijn ingevuld.

De opname-agent met RDP- en HTML5 RDP-applicaties gebruiken

Het gebruik van de opname-agent inschakelen

Als de opname-agent correct is geïnstalleerd en geconfigureerd, wordt het gebruik ervan ingeschakeld op het niveau van de betreffende RDP- of HTML5 RDP-applicatie:

Bij het mechanisme zijn drie parameters betrokken:

Without agent mode
Deze optie moet uitgeschakeld blijven om de opname-agent te laten werken.
Disconnect session if the recorder is not working
Hiermee wordt een veiligheidsmaatregel in- of uitgeschakeld voor het geval de opname van de sessie om verschillende redenen mislukt. Als de opname niet kan worden uitgevoerd, wordt de RDP- of HTML5 RDP-sessie van de gebruiker beëindigd. Wij raden aan deze parameter in te schakelen om gebruikersverbindingen zonder opname te voorkomen (bijvoorbeeld bij een storing van de opname-agent).
Time before disconnection
Als de vorige optie is ingeschakeld, kunt u met deze parameter de tijd in seconden instellen waarna de verbinding wordt verbroken. De standaardwaarde bedraagt 30 seconden, maar kan worden verlaagd om sneller te kunnen reageren, of worden verhoogd als bijvoorbeeld bekend is dat de sessies van de gebruikers lang duren.

Laterale bewegingen beperken

Het beperken van laterale bewegingen is een functie die de netwerkverbindingen van de gebruikerssessie beperkt. Deze functie blokkeert standaard al het TCP/UDP-verkeer binnen de gebruikerssessie, maar beheerders kunnen verschillende toegangsstromen openen.

De beperkingen worden geconfigureerd in de access policy en kunnen dus per gebruiker verschillen en voor één en dezelfde gebruiker verschillende waarden hebben (door het aantal aan hem toegekende toegangsbeleidsregels te vermeerderen). Voor een gebruiker met meerdere toegangsbeleidsregels voor dezelfde applicatie gelden de netwerkbeperkingen van de meest permissieve toegang.

Zodra een RDP- of HTML5 RDP-applicatie met agent in een toegangsbeleidsregel is toegestaan, komt het tabblad Network connections beschikbaar. Daar kan de filtering worden ingeschakeld en kunnen de voor de gebruiker toegestane netwerken worden opgegeven:

Informatie

Wijzigingen in deze parameters worden voor de gebruikers pas van kracht bij het volgende gebruik van de betreffende RDP- of HTML5 RDP-applicatie.

De opnamen van de directe toegang met agent configureren

De voor directe toegang met agent voorbereide servers declareren

Om een server te declareren die in de modus voor directe toegang met agent moet werken, moet u eerst de module Machines management openen:

Klik vervolgens op de knop om een nieuwe server toe te voegen. Er verschijnt een nieuw venster om de nieuwe server te configureren:

Name
Naam van de machine zoals die in de console CyberElements Bastion wordt weergegeven.
Notification text
Meldingsbericht dat de gebruikers ontvangen wanneer zij verbinding maken met de server.
Record sessions as videos
Schakelt de video-opname van de sessie in of uit. Als de optie is uitgeschakeld, worden alleen de gebeurtenissen van de sessie vastgelegd en geregistreerd.
Check video integrity at playback
Bij het aanmaken van het video-archief wordt er een hash (SHA-256) van het videobestand berekend en opgeslagen. Wanneer de beheerders het archief bekijken, wordt gecontroleerd of de hash niet is gewijzigd. Als deze is gewijzigd, wordt er een waarschuwingsbericht naar de beheerder gestuurd, aangezien de video-opname dan waarschijnlijk is gewijzigd (bijvoorbeeld vervangen of met weggeknipte sequenties).
Allow manual removal of archives
Staat de beheerders toe de video-archieven te verwijderen, of weigert dat.

Informatie

De gegenereerde archieven behouden de parameters die op het moment van de opname golden. Het wijzigen van deze parameter is alleen van invloed op nieuwe archieven.
Delete archives automatically
Instelling van de automatische verwijdering van de archieven na het verstrijken van een bepaald aantal dagen.

Informatie

De gegenereerde archieven behouden de parameters die op het moment van de opname golden. Het wijzigen van deze parameter is alleen van invloed op nieuwe archieven.
Use agent mode
Optie die moet zijn ingeschakeld zodat de server over het mechanisme voor directe toegang met actieve agent beschikt.
Host (CN of the certificate)
Vermelding van de CN van het certificaat waarmee de opname-agent zich bij de Edge Gateway authenticeert. Dit stemt overeen met de configuratie van het machinecertificaat.
Use no agent
Als een parameter voor de gewenste werkingsmodus niet van nut is, kan deze niet-aangevinkt blijven.

De rechten voor directe toegang met agent configureren

Het configureren van de rechten voor directe toegang met agent is vergelijkbaar met het configureren van het toegangsbeleid van applicaties. Nieuwe rechten worden gedeclareerd en bestaande rechten worden gewijzigd via Direct recording configuration:

U kunt een nieuwe configuratie toevoegen door op de knop te klikken.

De verschillende tabbladen met parameters zijn vergelijkbaar met die van het toegangsbeleid van applicaties, met uitzondering van het tabblad met de groepen, waar u handmatig een groep kunt toevoegen:

Na het klikken op de knop voor handmatig toevoegen verschijnt er een nieuw venster om de naam van de groep en het domein ervan op te geven:

Tip

Deze functie is bijzonder nuttig als u een lokale groep wilt toevoegen, of een groep die zich in een andere OU bevindt dan die welke in de configuratie van het LDAP-domein is vastgelegd.

De overige tabbladen zijn:

  • Sites: plaatst de configuratie op een of meer sites en staat de opname-agent daarmee toe verbinding te maken met een of meer Edge Gateways die aan de toegestane sites zijn gekoppeld.
  • Machines: voegt de in het vorige hoofdstuk gedeclareerde RDP-servers toe.
  • Alerts: koppelt alerts aan de configuratie.
  • Network connections: beperkt de laterale bewegingen van de gebruikers tijdens hun sessies, met dezelfde werking als de beperking van laterale bewegingen bij RDP- en HTML5 RDP-applicaties.

Logs van de opname-agent

De logs van de opname-agent inschakelen

Waarschuwing!

Het inschakelen van de logs vereist een herstart van de dienst van de opname-agent, waardoor de op de server lopende sessieopnamen worden gestopt.
Afhankelijk van de configuratie van de sleutel LogOffOnFailure wordt de verbinding van de gebruiker verbroken of blijft deze verbonden.

Om de logs van de opname-agent in te schakelen, moeten de volgende stappen worden uitgevoerd:

  1. Maak in de installatiemap van de agent een map met de naam Log aan (standaard is dat C:\Program Files (x86)\Systancia\Safe).

  2. Start de dienst CleanroomAgent opnieuw, bijvoorbeeld met de volgende PowerShell-opdracht die als beheerder wordt uitgevoerd:

    1
    Restart-Service -Name 'CleanroomAgent'
    

Bij elke start van de dienst van de opname-agent wordt er in de in stap 1 aangemaakte map Log een nieuw logbestand gegenereerd.

Inhoud van de logs van de opname-agent

De logs die de opname-agent genereert, zien er als volgt uit:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem System directory: C:\Windows\system32
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows directory: C:\Windows
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows temporary directory: C:\Windows\TEMP\
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem User profile directory: C:\Windows\system32\config\systemprofile
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Current directory: C:\Windows\system32
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Application Data directory: C:\Windows\system32\config\systemprofile\AppData\Roaming
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Command line: C:\Program Files (x86)\Systancia\Safe\IpDivaCareSupervisor.exe
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Current exe directory: C:/Program Files (x86)/Systancia/Safe/
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Root directory: C:/Program Files (x86)/Systancia/
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Microsoft Windows NT family
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Service Pack 0.0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem OEM ID: 0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Number of Processors: 8
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Page size: 4096
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Processor Type: 586
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Active processor mask: 255
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem Username: Système
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem -----------------------------------
16-06-25 14:49:02.609 [4620] TRACE main.run Loaded 1 gateways from file C:/Program Files (x86)/Systancia/Safe/gateways.xml
16-06-25 14:49:02.610 [4620] ERROR main.run Error loading public keys. boost::filesystem::directory_iterator::construct: Le fichier spécifié est introuvable [system:2]: "C:/Program Files (x86)/Systancia/pubkeys"
16-06-25 14:49:02.610 [4620] TRACE main.wtssessionchange Copying C:/Program Files (x86)/Systancia/Safe/CareInit.exe to C:/Windows/system32/CareInit.exe
16-06-25 14:49:12.298 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:3
16-06-25 14:49:12.299 [6364] TRACE main.wtssessionchange
16-06-25 14:49:13.301 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:5
16-06-25 14:49:13.303 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange 17 bytes written
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange Opened VC clr
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange Recording server retrieved via VC clr:my-edge-gateway.domain.local
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange care password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM
16-06-25 14:49:13.371 [6364] TRACE SelectConfig.autoconf poll() is not supported on this platform, using select()
16-06-25 14:49:13.418 [6364] TRACE main.getNetFilterRulesInformation Filter not enabled
16-06-25 14:49:13.419 [6364] TRACE main.getNetFilterRulesInformation FALSE
16-06-25 14:49:13.419 [6364] ERROR main.getNetFilterRulesInformation No public key configured. Cannot verify net filtering rules.
16-06-25 14:49:13.419 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:13.421 [6364] TRACE main.createRecorderProcess launching whith password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM
16-06-25 14:49:26.664 [4620] TRACE main.createRecorderProcess Calling logoff.exe 6
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:6
16-06-25 14:49:27.331 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:4
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel
16-06-25 14:49:40.179 [6364] TRACE main.wtssessionchange prog :
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA
16-06-25 14:49:40.404 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:40.404 [6364] TRACE main.createRecorderProcess Net filter enabled
16-06-25 14:49:40.426 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168427818 (10.10.1.42) Remote port: 443 Protocol condition: TCP
16-06-25 14:49:40.427 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168432641 (10.10.20.1) Remote port: 53 Protocol condition: UDP
16-06-25 14:49:40.428 [6364] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Application: C:/Program Files (x86)/Systancia/Safe/IpdivaCareRecorder.exe Remote address: 168427791 (10.10.1.15) Remote port: 8443 Protocol condition: TCP
16-06-25 14:49:40.430 [6364] TRACE main.createRecorderProcess launching whith password :DIRECT_33fRBYAwVDEKs8n3bGFwlIgKYd39C2Ubcl4pkLLC0YAouL4Gml
16-06-25 14:49:48.690 [4620] TRACE main.createRecorderProcess Calling logoff.exe 7
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:6
16-06-25 14:49:50.379 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:4
16-06-25 14:49:54.658 [6364] TRACE main.wtssessionchange Removing C:/Windows/system32/CareInit.exe
Initialisatie van de opname-agent (regels 1-21)

Bij de initialisatie van de opname-agent (regels 1-18) worden er verschillende gegevens over het systeem gelogd.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem System directory: C:\Windows\system32
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows directory: C:\Windows
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows temporary directory: C:\Windows\TEMP\
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem User profile directory: C:\Windows\system32\config\systemprofile
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Current directory: C:\Windows\system32
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Application Data directory: C:\Windows\system32\config\systemprofile\AppData\Roaming
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Command line: C:\Program Files (x86)\Systancia\Safe\IpDivaCareSupervisor.exe
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Current exe directory: C:/Program Files (x86)/Systancia/Safe/
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Root directory: C:/Program Files (x86)/Systancia/
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Microsoft Windows NT family
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Service Pack 0.0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem OEM ID: 0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Number of Processors: 8
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Page size: 4096
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Processor Type: 586
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Active processor mask: 255
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem Username: Système
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem -----------------------------------

Regel 19 geeft het aantal Edge Gateways aan dat in het bestand gateways.xml is gevonden voor de werking in directe modus.

19
16-06-25 14:49:02.609 [4620] TRACE main.run Loaded 1 gateways from file C:/Program Files (x86)/Systancia/Safe/gateways.xml

Regel 20 wijst op een probleem bij het laden van sleutels in een niet-bestaande map. Het gaat om een oude functie die de algemene werking van de agent niet aantast. Deze foutmelding kan dus worden genegeerd.

20
16-06-25 14:49:02.610 [4620] ERROR main.run Error loading public keys. boost::filesystem::directory_iterator::construct: Le fichier spécifié est introuvable [system:2]: "C:/Program Files (x86)/Systancia/pubkeys"

Regel 21 geeft het kopiëren van het uitvoerbare bestand CareInit.exe naar System32 aan, om de gevallen te dekken waarin een RDP-applicatie met agent vanaf een macOS- of Ubuntu-machine wordt gestart.
In dat geval vraagt de verbinding met de server om CareInit.exe als opstartprogramma uit te voeren.

21
16-06-25 14:49:02.610 [4620] TRACE main.wtssessionchange Copying C:/Program Files (x86)/Systancia/Safe/CareInit.exe to C:/Windows/system32/CareInit.exe
Verbinding van een RDP- of HTML5 RDP-applicatie met agent (regels 22-39)

Wanneer er een nieuwe RDP-sessie wordt gedetecteerd, worden de volgende logs geschreven, die de detectie van de nieuwe RDP-sessie aangeven en de naam van de aangemelde gebruiker vastleggen:

22
23
24
25
16-06-25 14:49:12.298 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:3
16-06-25 14:49:12.299 [6364] TRACE main.wtssessionchange
16-06-25 14:49:13.301 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:5
16-06-25 14:49:13.303 [6364] TRACE main.wtssessionchange cyberelements_user

In de bovenstaande logs is het de gebruiker cyberelements_user die zich via RDP heeft verbonden.

Bij het starten van een RDP- of HTML5 RDP-applicatie met agent wordt er een specifiek virtueel RDP-kanaal aangemaakt om het verbindingsadres van de Edge Gateway en het unieke wachtwoord voor de verbinding met de opnameservice van de Edge Gateway naar de opname-agent te verzenden.
Dit geeft twee dingen aan:

  1. De opname-agent heeft vastgesteld dat het om een door CyberElements Bastion geïnitieerde RDP-verbinding gaat en mag de sessie dus niet als directe toegang behandelen.
  2. De opname-agent heeft het adres van de Edge Gateway kunnen ophalen waarnaar hij de video-opnamen en de gebeurtenissen moet verzenden.

Deze gegevens stemden overeen met de regels 27-29, waarin de opname-agent in het voorbeeld het verbindingsadres van de Edge Gateway (my-edge-gateway.domain.local) en een eenmalig wachtwoord (K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM) heeft opgehaald:

29
30
31
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange Opened VC clr
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange Recording server retrieved via VC clr:my-edge-gateway.domain.local
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange care password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM

Daarna volgen de logs over de toepassing van de netwerkfilterregels, die verderop op de pagina in een andere informatiesectie worden uitgewerkt.

Een log geeft aan wanneer de opname-agent de verbinding met de Edge Gateway opzet en met welk uniek wachtwoord hij zich daarbij authenticeert.

35
16-06-25 14:49:13.421 [6364] TRACE main.createRecorderProcess launching whith password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM

Wanneer de gebruiker tot slot een verbreking van de verbinding initieert, wordt deze door de opname-agent vastgelegd om de opname te beëindigen en eventuele netwerkfilterregels te verwijderen. Dit stemt overeen met de regels 36-39 van het voorbeeldlogbestand:

36
37
38
39
16-06-25 14:49:26.664 [4620] TRACE main.createRecorderProcess Calling logoff.exe 6
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:6
16-06-25 14:49:27.331 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:4
Verbinding van een directe RDP-toegang (regels 40-61)

Wanneer er een nieuwe RDP-sessie wordt gedetecteerd, worden de volgende logs geschreven, die de detectie van de nieuwe RDP-sessie aangeven en de naam van de aangemelde gebruiker vastleggen:

40
41
42
43
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user

In de bovenstaande logs is het de gebruiker cyberelements_user die zich via RDP heeft verbonden.

Bij een directe RDP-verbinding wordt het specifieke virtuele RDP-kanaal voor RDP- of HTML5 RDP-applicaties met agent niet gebruikt. De opname-agent leidt daaruit af dat de geopende sessie een directe toegang is.

44
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel

Omdat er een directe toegang is gedetecteerd, logt de opname-agent de verschillende groepen van de gebruiker die zich net heeft verbonden:

46
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 

Tip

Aan de hand van deze gegevens kunt u bepalen waarom de opnamen van de directe toegang niet worden gestart: omdat het contract voor directe toegang geen van de groepen van de gebruiker toestaat, of omdat de opgegeven domeinnaam de korte naam (netBIOS-naam) of de volledige naam moet zijn.

De opname-agent geeft aan met welke Edge Gateways hij verbinding zal kunnen maken om de opname van de sessie van de gebruiker te uploaden.
Ter herinnering: het gaat om de Edge Gateways die in het bestand gateways.xml staan dat tijdens de configuratie van de opname-agent is ingesteld.

47
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local

Daarna volgt het clientcertificaat waarmee de opname-agent zich bij de opnameservice authenticeert.
Standaard zoekt de opname-agent een certificaat waarvan de CN de naam van de RDP-server bevat, tenzij de sleutel MachineName is gedefinieerd.
Vervolgens geeft de opname-agent het geselecteerde certificaat en de gegevens van de certificeringsinstantie die het heeft gegenereerd aan.

48
49
50
51
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA

In het bovenstaande voorbeeld heeft de opname-agent een certificaat gezocht dat my-rds-server bevat en er een gevonden met de CN my-rds-server.domain.local, uitgegeven voor de certificeringsinstantie SUB-CA.

Daarna volgen de logs over de toepassing van de netwerkfilterregels, die verderop op de pagina in een andere informatiesectie worden uitgewerkt.

Een log geeft aan wanneer de opname-agent de verbinding met de Edge Gateway opzet en met welk uniek wachtwoord hij zich daarbij authenticeert.

57
16-06-25 14:49:40.430 [6364] TRACE main.createRecorderProcess launching whith password :DIRECT_33fRBYAwVDEKs8n3bGFwlIgKYd39C2Ubcl4pkLLC0YAouL4Gml

Wanneer de gebruiker tot slot een verbreking van de verbinding initieert, wordt deze door de opname-agent vastgelegd om de opname te beëindigen en eventuele netwerkfilterregels te verwijderen. Dit stemt overeen met de regels 58-61 van het voorbeeldlogbestand:

58
59
60
61
16-06-25 14:49:48.690 [4620] TRACE main.createRecorderProcess Calling logoff.exe 7
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:6
16-06-25 14:49:50.379 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:4
Toepassing van de netwerkfilterregels (regels 31 en 53-56)

Voor elke sessie die de opname-agent detecteert, bepaalt deze of er netwerkfilterregels op de sessie van de gebruiker moeten worden toegepast.

Als er geen netwerkfilterregel hoeft te worden toegepast, geeft de opname-agent Filter not enabled aan.

31
16-06-25 14:49:13.418 [6364] TRACE main.getNetFilterRulesInformation Filter not enabled

Als er netwerkfilterregels moeten worden toegepast, verschijnt het bericht Net filter enabled.
Na deze regel over de activering van de filtering wordt elk van de toegepaste filters aangegeven, één per regel:

53
54
55
56
16-06-25 14:49:40.404 [6364] TRACE main.createRecorderProcess Net filter enabled
16-06-25 14:49:40.426 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168427818 (10.10.1.42) Remote port: 443 Protocol condition: TCP
16-06-25 14:49:40.427 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168432641 (10.10.20.1) Remote port: 53 Protocol condition: UDP
16-06-25 14:49:40.428 [6364] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Application: C:/Program Files (x86)/Systancia/Safe/IpdivaCareRecorder.exe Remote address: 168427791 (10.10.1.15) Remote port: 8443 Protocol condition: TCP

Ter herinnering: als de netwerkfiltering is geactiveerd, wordt standaard al het TCP/UDP-verkeer geblokkeerd. De aangegeven filters zijn dus het enige TCP/UDP-verkeer dat is toegestaan voor de programma's die in de context van de gebruiker worden uitgevoerd.
In het bovenstaande voorbeeld zijn de verbindingen naar TCP 10.10.1.42:443 en UDP 10.10.20.1:53 toegestaan. Naast deze twee door de beheerder toegestane stromen is ook de verbindingsstroom naar de opnameservice open, zodat het programma dat daarvoor verantwoordelijk is de opname van de sessie kan verzenden.

Tip

Als er voor de gebruiker geen enkele stroom is toegestaan, verschijnen alleen de regels die aangeven dat de filtering actief is en dat het opnameproces de opnameservice van de Edge Gateway kan bereiken.

Verbinding met de opnameservice mislukt

Verschillende problemen kunnen ertoe leiden dat de opname-agent geen verbinding kan maken met de opnameservice van een Edge Gateway.

Het eerste is een blokkering van de netwerkstroom. Wanneer de agent in dat geval verbinding probeert te maken met de opnameservice, schrijft hij logs die op deze lijken:

1
2
3
4
18-06-25 15:29:45.805 [2456] TRACE Socket.connect error during select or socket not writable, rc=0
18-06-25 15:29:45.805 [2456] TRACE Socket.raise error not registered: 0
18-06-25 15:29:45.809 [2456] ERROR main.getDirectRecordInformation Could not connect to gateway my-edge-gateway.domain.local Exception :ESocket:errors.cpp:242
18-06-25 15:29:45.809 [2456] ERROR main.getDirectRecordInformation No gateway available

In dit voorbeeld geeft regel 1 aan dat de stroom niet kon worden opgezet, terwijl regel 3 de betreffende Edge Gateway en de mislukte verbinding noemt (let ook op het nummer 242 aan het einde van regel 3, dat kenmerkend is voor dit type probleem).

Het tweede mogelijke probleem is dat de opname-agent, en daarmee de RDP-server, de naam van de Edge Gateway niet kan omzetten:

1
2
3
18-06-25 15:37:07.539 [2456] ERROR Socket.DNSLookup getaddrinfo() Hôte inconnu. 
18-06-25 15:37:07.539 [2456] ERROR main.getNetFilterRulesInformation Could not retrieve netfilter rule with gateway wrong-dns-edge-gateway.domain.local Exception :ESocketLookupFailed:socket2.cpp:232
18-06-25 15:37:07.539 [2456] ERROR main.getNetFilterRulesInformation The gateway may need an upgrade

In dit voorbeeld bevestigt regel 1 het probleem met de DNS-omzetting van de naam van de Edge Gateway.
De tweede regel noemt de mislukte verbinding en de naam van de Edge Gateway. Merk op dat de regel bij een fout in de DNS-omzetting eindigt op het nummer 232.

Het derde mogelijke probleem is een verbinding met een dienst die geen opnameservice is, bijvoorbeeld een webserver die op poort 8443 luistert. In dat geval krijgt men de volgende logs:

1
2
3
18-06-25 15:38:33.607 [2456] TRACE IO.read problem when read data
18-06-25 15:38:33.608 [2456] ERROR main.getNetFilterRulesInformation Could not retrieve netfilter rule with gateway wrong-server.domain.local Exception :IOException:io.cpp:140
18-06-25 15:38:33.608 [2456] ERROR main.getNetFilterRulesInformation The gateway may need an upgrade

Regel 1 wijst op een probleem met de uitgewisselde gegevens, regel 2 bevestigt het verbindingsprobleem en noemt aan het einde van de regel de fout 140.

Geen enkel contract voor directe toegang staat toe de opname van de directe sessie te starten.

Bij directe toegang hoeven niet noodzakelijk alle gebruikers te worden opgenomen. Is dat het geval, dan krijgt men de volgende logs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel
16-06-25 14:49:40.179 [6364] TRACE main.wtssessionchange prog :
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA
16-06-25 14:49:40.404 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:40.406 [6364] TRACE main.createRecorderProcess no need to record

De verkregen logs beginnen zoals bij elke directe sessie die door de opname-agent wordt vastgelegd. Zodra de verbinding met de opnameservice van de Edge Gateway echter tot stand is gebracht, geeft deze aan de opname-agent de informatie terug dat de verbonden gebruiker niet aan opname onderworpen is.
De opname-agent geeft dan aan dat de sessie van de gebruiker niet hoeft te worden opgenomen (regel 14 van het bovenstaande voorbeeld).

Regel 7 somt alle groepen op die de opname-agent voor de verbonden gebruiker heeft opgehaald.
Aan de hand van deze gegevens kan worden bepaald waarom de opnamen van de directe toegang niet worden gestart: omdat het contract voor directe toegang geen van de groepen van de gebruiker toestaat, of omdat de opgegeven domeinnaam de korte naam (netBIOS-naam) of de volledige naam moet zijn.