Question about Logging
Aaron Spanik
a.spanik at ns.sympatico.ca
Sat Aug 23 01:00:32 CEST 2008
I apologize in advance if this question is answered in the
documentation, but if it is, I haven't been able to find it.
I have the following setup:
- Client daemon running on host A
- FreeRADIUS 2.0.4 server running on host A proxying auth requests
- Two Remote RADIUS servers serving authentication from a load-balanced
pool
- The client daemon sends authentication requests to the FreeRADIUS
server with a username and password over loopback.
- The FreeRADIUS server receives the Access-Request and proxies it
to the remote RADIUS servers.
- Responses from the RADIUS server are proxied back to the client
daemon for action.
- Accounting records are sent by the client daemon, however they are
"swallowed" by the FreeRADIUS server (always ok) as accounting is not
being used at this point.
The first thing I will mention is that this I do not have any issue
with this configuration; i.e. it works exactly the way it's supposed to.
Recently, however, there has been reason to suspect that the two remote
RADIUS servers are behaving inconsistently with each other (i.e. auth
fails on one and then immediately succeeds on the other).
Unfortunately, I have zero access to the remote RADIUS servers and
limited access to the folks who could tell me whether something is, in
fact, wrong with the remote configuration.
In order to provide statistics on my end or at least look for trends, I
would like to keep track of what remote server a given request is
proxied to, but I can't seem to find an easy way of doing it:
- I have auth_logging turned on so that my radius.log file contains
basic Yay/Nay information about a particular auth request, but the IP
of the server the request was proxied to is not included.
- I have detail configured for auth-detail, pre-proxy-detail,
post-proxy-detail, and reply-detail. All are pretty much stock
except I put the User-Name into the header in a couple of them.
None of these show the IP of the particular home server that a given
request was sent to. I do understand that I can get this information
if I run a full debug trace, however this is a production system and I
don't need all that information, just one little piece, nor do I want
to run a production server outputting to stdout.
I have also peeled through all the dictionary files looking for an
appropriate RADIUS Attribute which I could use. I found
Packet-Src-Ip-Address and Packet-Dst-Ip-Address, which didn't work in
any of the detail sections, as they all returned 127.0.0.1, which makes
some sense to me given the initial source and destination of the
request packets; I'm also pretty sure I shouldn't be using parameters
from dictionary.freeradius.internal this way. I also found
FreeRADIUS-Proxied-To, however it appears that's only for accounting
packets.
So my question is this: short of editing the source to make the
auth_log pop the home server being contacted into the loglines in
radius.log, is there any way to get that information on a per-request
basis? Is there some unlang magic I could work in the pre- or
post-processing phases? It doesn't really matter to me where the
information goes, as long as I can associate it with a particular
request.
Thanks,
/a
--
Aaron Spanik
a.spanik at ns.sympatico.ca
More information about the Freeradius-Users
mailing list