06-May-2021 07:41
Hi, I have gone through the dev/central site and found an irule capturing VIP client connections . The problem I have is that I don't need to log internal IP space or RFC1918 networks. I want to log all other public IP client connections.
This is the irule I am using. This is my first time working with any programming language and I cant see how the logic will flow.
when HTTP_REQUEST {
log local0. "clientIP:[IP::client_addr] accessed
[HTTP::host][HTTP::uri]"
]
Solved! Go to Solution.
11-May-2021
07:13
- last edited on
21-Nov-2022
16:18
by
JimmyPackets
Thank you Alex for the response. I ended up going with this irule. Initially after applying the irule I was still logging the private networks. What I found is that I had to surround the private_net with quotes. After doing this I only saw public networks.
Now I need to send it to a remote syslog instead of logging local0. I just have to research how those lines of code will look like.
when HTTP_REQUEST {
if { not ([class match [IP::client_addr] equals "private_net"])} {
log local0. "clientIP:[IP::client_addr] accessed
[HTTP::host][HTTP::uri]"}
}
06-May-2021 11:43
First of all, congrats on your first dip in the iRules pool! 🙂
A couple of suggestions;
when HTTP_REQUEST {
if { !([class match [IP::client_addr] equals private_net])} {
log local0. "clientIP:[IP::client_addr] accessed [HTTP::host][HTTP::uri]"
}
}
Hope this helps.
11-May-2021
07:13
- last edited on
21-Nov-2022
16:18
by
JimmyPackets
Thank you Alex for the response. I ended up going with this irule. Initially after applying the irule I was still logging the private networks. What I found is that I had to surround the private_net with quotes. After doing this I only saw public networks.
Now I need to send it to a remote syslog instead of logging local0. I just have to research how those lines of code will look like.
when HTTP_REQUEST {
if { not ([class match [IP::client_addr] equals "private_net"])} {
log local0. "clientIP:[IP::client_addr] accessed
[HTTP::host][HTTP::uri]"}
}
11-May-2021 12:33
Ahyes, sorry I missed that.
Regarding sending to remote log, have a look at HSL logging; https://clouddocs.f5.com/api/irules/HSL__open.html
This is the most efficient way to send logs to remote servers.