cancel
Showing results for 
Search instead for 
Did you mean: 

Need iRule for logging all LDAPS requests to HSL Splunk

Hi DevCentral-

We have a VS for loadbalancing our Domain Controllers. I need an iRule to log all LDAPS requests coming in to the VS and send to our HSL logging pool which used UDP port 514. Any h

1 ACCEPTED SOLUTION

xuwen
Cirrostratus
Cirrostratus

if ssl offload work on bigip(clientside ssl profile, client ldap), you can use CLIENTSSL_HANDSHAKE, CLIENTSSL_DATA irules event to collect decrypt payload

when CLIENTSSL_HANDSHAKE {
   # log local0. "[IP::client_addr]:[TCP::client_port]: SSL handshake completed, collecting SSL payload"
   set hsl [HSL::open -proto UDP -pool syslogvip_pool]
   SSL::collect
}
when CLIENTSSL_DATA {
   # log local0. "[IP::client_addr]:[TCP::client_port]: Collected bytes [SSL::payload length], releasing payload"
   # log local0. "\[SSL::payload\]: [SSL::payload]"
   HSL::send $hsl "DCreqlogging Client connect from [IP::client_addr]:[TCP::client_port]"
   HSL::send $hsl "DCreqlogging SSL Payload [SSL::payload]"
   SSL::release
}

 

View solution in original post

4 REPLIES 4

Hello @steve_michaels,

You have an example here

https://support.f5.com/csp/article/K50040950

 

Regards,
Dario.

Here is some more info. I have this iRule setup on the VIP which uses ldaps (tcp/636) to conect to our pool of Domain Comain contollers:

when CLIENT_ACCEPTED {
TCP::collect
set hsl [HSL::open -proto UDP -pool syslogvip_pool]
HSL::send $hsl "DCreqlogging Client connect from [IP::client_addr]:[TCP::client_port]"
HSL::send $hsl "DCreqlogging TCP Payload [TCP::payload]"
TCP::release
}

It is logging the client IP and port to the Splunk system but i am not seeing anything on the TCP payload that is of use. Is encrypted. Is there any way I can log the ldaps traffic so I can see all the fields like (User=Administrator) or any other of the fields in the ldaps requests? Thanks.

xuwen
Cirrostratus
Cirrostratus

if ssl offload work on bigip(clientside ssl profile, client ldap), you can use CLIENTSSL_HANDSHAKE, CLIENTSSL_DATA irules event to collect decrypt payload

when CLIENTSSL_HANDSHAKE {
   # log local0. "[IP::client_addr]:[TCP::client_port]: SSL handshake completed, collecting SSL payload"
   set hsl [HSL::open -proto UDP -pool syslogvip_pool]
   SSL::collect
}
when CLIENTSSL_DATA {
   # log local0. "[IP::client_addr]:[TCP::client_port]: Collected bytes [SSL::payload length], releasing payload"
   # log local0. "\[SSL::payload\]: [SSL::payload]"
   HSL::send $hsl "DCreqlogging Client connect from [IP::client_addr]:[TCP::client_port]"
   HSL::send $hsl "DCreqlogging SSL Payload [SSL::payload]"
   SSL::release
}

 

Thanks @xuwen . i tested with the local logging and it is showing the Bind DN of the LDAPS request. Just what we need.