External shell script return value for inner-tunnel

Trevor Jennings tjennings at gmail.com
Sat Aug 24 02:27:59 CEST 2019


Hello,

 We have been using FreeRadius for a long time and now we are in the
process of doing dynamic vlan assignments for EAP clients based on a custom
AD attribute "persontype".

I created a new module called bowdpersontype which does a LDAP search for
the user to pull their persontype attribute, then placed this under eap in
the inner tunnel. Testing vlan assignment works here, however I want to
base their vlan on what their attribute is, for example staff, faculty,
admin. This part is easy, however I'm not sure on how I use the value
returned in the external script.

My module looks like this:-
---
exec bowdpersontype {
  wait = yes
  output_pairs = reply
  shell_escape = yes
  program = "/etc/freeradius/testldap.sh %{Stripped-User-Name}"
}
---

This test script will output:-

echo "UserType=$bowdpersontype"

And the inner tunnel:-

---
      bowdpersontype

      if (UserType =~ /STAFF/) {
          update reply {
              .....
              .....
           }
     }
---

The debug output does show me the result from the external script and 'ok'
message. How do I read the value to be used after the call?

Cheers,

 - Trevor


More information about the Freeradius-Users mailing list