Hi,
We want to put a WAF, which terminates the connections, in front of our WebSEAL for connections coming from the internet. This will now pose several challenges regarding the real IP-address of the client.
There are (at least) 3 places where the IP address is used: logging, POPs and forwarding the address to back-end servers.
Does WebSEAL have a feature like the following from Nginx:
set_real_ip_from w.x.y.z;
real_ip_header X-Forwarded-For;
This would really facilitate our life.
The added challenge in our case is that there will be connections coming through the WAF, where the real IP-address is only accessible via header, and other connections which access WebSEAL directly. The reason for this setup are routing problems if the internal traffic would also pass through the WAF.
Here are the problems and possible solutions:
Logging:
If everything would pass through the WAF it would be easy to log the X-Forwarded-For or similar header. But here we will probably have to log both the header and the real IP-address, which will make log analyzing more difficult. I don't know if our Syslog server would be able to make such a consolidation.
POP:
IP-address restriction will probably have to be checked both on the WAF and on WebSEAL. WebSEAL also has to allow the addresses of the WAF.
forwarding the real IP to back-end servers:
at the moment we use the built-in WebSEAL header to forward the IP-address. We will probably have to change that, which would then also need an adaptation of the back-end applications (of which there are a lot).
We would probably have to add something like this:
client-ip-v4 = +X-Forwarded-For
That way the header would be added and in case the traffic goes through the waf there would be two valued for this header, which of course is also not ideal.
So, what are your thoughts and experiences using a WAF with WebSEAL?
------------------------------
Laurent LA Asselborn
------------------------------