Start FreeRadius 4.0 with rlm_tacacs failed due to segV error

bryan xiang bryanxiang82 at gmail.com
Mon Apr 28 14:59:56 UTC 2025


Thank you Alan for your detailed explanation

Yes, last time's config has some change, so I changed back to the previous
version configuration and set parent.control.Auth-Type in subrequest, then
it finally working, thanks so much!

Right, one thing for my last  config, is it one bug or enhance if set
Auth-Type like below manner?
        recv Access-Request {
            if (User-Name =~ /^testuser1$/) {
                control.Auth-Type := ::TACACS
            }
        authenticate TACACS {
             subrequest @tacacs::Authentication-Start {
                User-Name := parent.request.User-Name
                #User-Password := parent.request.User-Password
                Data := parent.request.User-Password
                Packet.Version-Major := 0xC   # or "Plus" if using VALUE
mapping
                Packet.Version-Minor := 0x1
                Packet.Packet-Type := "Authentication"
                Packet.Sequence-Number := 1
                Packet.Flags := "None"
                Packet.Session-Id := parent.request.Acct-Session-Id
                Packet.Length := 0
                Authentication-Type := "PAP"
                Action := "Login"
                Authentication-Service := "Login"
                tacacs
                if (&reply.Authentication-Status == "Pass") {
                    parent.control.Auth-Type := "Accept"
                 }
                }
      }

with this config, even I set parent.control.Auth-Type in subrequest, login
with right/wrong password, all get Authenticated success
because the subrequest return ok seems so

regards,
Bryan


On Mon, Apr 28, 2025 at 10:16 PM Alan DeKok <aland at deployingradius.com>
wrote:

> On Apr 28, 2025, at 9:39 AM, bryan xiang <bryanxiang82 at gmail.com> wrote:
> > OK, I see  When the child request has finished execution, it is freed
> > but if I can't set it in subrequest, I can't get the attribute:
> > Authentication-Status result from reply
> > so, here the only way I can count on is the tacacs module return
> > code(always return ok regardless auth success/fail)
>
>   You can set "parent.control.Auth-Type" inside of the subrequest.
>
>   My concern here is that the approach I see you taking is largely to make
> random changes.  This is pretty much guaranteed to not make progress.
>
>   Instead, of you understand how things work, it's much easier to see what
> needs to be done.  i.e. If there is a relationship between a parent and
> child request, then you can reference the parent from the child.  But after
> the child has returned, you cannot reference the child from the parent.
>
> > since you are working on the return code of tacacs module, seems this is
> > the only way to decide the auth success or not because Reply attribute in
> > subrequest can't be reused after the subrequest finish execution, the
> > parent can't rely on the Auth-type setting in subrequest.
>
>   The child can do:
>
>         parent.control.Auth_Type := Accept
>
>   At this point, I think I can't answer any more questions.  I've pointed
> you to the documentation, and how to get things done.  Unless you report a
> bug, I'll have to ask you to go through the documentation and follow what
> it says.
>
>   I can't continue to summarize the documentation in emails to this list.
> Everything I'm saying is in the documentation.
>
>   Alan DeKok.
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html
>


More information about the Freeradius-Users mailing list