Issues with post-auth not running in inner-tunnel/proxy-inner-tunnel

Chris Griffin cgriffin352 at gmail.com
Fri Aug 12 16:05:42 UTC 2022


Hi Alan,
  I found a few things.

1. The rad_postauth wasn't being called because
"proxy_tunneled_request_as_eap" was commented out.  I had made the wrong
assumption about what the default was.  I uncommented it and set it to no
and rad_postauth was correctly called.  That was set to no in my production
3.2 platform but not this test instance.

2. Digging into the auth.c:

Based on this code:

       /*
         *      If a method was chosen, use that.
         */
        if (vp) {
                postauth_type = vp->vp_integer;
                RDEBUG2("Using Post-Auth-Type %s",
                        dict_valnamebyattr(PW_POST_AUTH_TYPE, 0,
postauth_type));
        }

It is setting the postauth_type to "Challenge" and I am getting this
feedback in the debugs:

(8) eap: EAP session adding &reply:State = 0x784b1b4e799f01a6
(8)     [eap] = ok
(8)   } # post-proxy = ok
(8) Using Post-Auth-Type Challenge
(8) Post-Auth-Type sub-section not found.  Ignoring.

It seems that it is only looking for a Post-Auth-Type Challenge section in
post-auth and if it doesn't have it, the section is ignored.  Just as a
test I changed it it:

if (0) {....

To avoid setting the postauth_type and the post-auth section is now
properly called:

(8) # Executing section post-auth from file
/opt/freeradius-test/etc/raddb/sites-enabled/proxy-inner-tunnel
(8)   post-auth {

In my very brief testing, everything seems to work now, but this feels
"very wrong" as a solution.  Do you have any feedback as to the correct
thing to do?  Should I just put everything for post-auth in a challenge
section or is that being mis-set somewhere and causing this result?

Tnx!
Chris

On Fri, Aug 12, 2022 at 9:00 AM Alan DeKok <aland at deployingradius.com>
wrote:

> On Aug 12, 2022, at 8:51 AM, Chris Griffin <cgriffin352 at gmail.com> wrote:
> >  I did a little debugging inside the code and found that
> > 'request_data_get' returns NULL so we never pass the conditional which
> > allows rad_postauth to be called.  Any other debug information that would
> > help?
>
>   You can try editing peap.c:
>
>                         /*
>                          *      We're not proxying it as EAP, so we've got
>                          *      to do the callback later.
>                          */
>                         if ((fake->options & RAD_REQUEST_OPTION_PROXY_EAP)
> != 0) {
>
>
>   just change that if
>
>                 if (1) {
>
>   And that *should* help.  Hopefully it doesn't break anything else.
>
>   Alan DeKok.
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html
>


More information about the Freeradius-Users mailing list