Exec-Program-Wait not working

Alan DeKok aland at deployingradius.com
Wed Jun 19 19:08:58 CEST 2019


On Jun 19, 2019, at 12:55 PM, Gianni Costanzi <gianni.costanzi at gmail.com> wrote:
> Auth-Type reject is forced by the default entry, which is examined because
> the user entry was not matched with Exec-Program-Wait = "xxxx"

  No, that's not true.  Exec-Program-Wait doesn't affect how a "users" file entry is matched.

  So the problem isn't with Exec-Program-Wait.  It's with matching entries in the "users" file.

  Describing the problem *correctly* will let us help you.  Giving wrong information is a waste of everyones time.

> (basically I
> need
> to reject the user if it receives an access accept but it is not matched by
> a specific entry in the users file).

  That's the default behaviour.  You don't need to add rules to do that.

> Now I tried with a simpler user, which
> is not authenticated
> on another realm and has a simple cleartext password. This time the entry
> for testgianni user is matched, but the program is not invoked:
> 
> testgianni Cleartext-Password := "test123", Exec-Program-Wait :=
> "/opt/script/radius/bin/check_operator_access.sh %{NAS-IP-Address}
> %{User-Name} %{Realm}"
>        Service-Type := Login-User,
>        cisco-avpair = "shell:priv-lvl=2"
> 
> DEFAULT         Realm == imp, Auth-Type := reject
> 
> (1) suffix: No '@' in User-Name = "testgianni", looking up realm NULL
> (1) suffix: No such realm "NULL"
> (1)     [suffix] = noop
> (1) files: EXPAND /opt/script/radius/bin/check_operator_access.sh
> %{NAS-IP-Address} %{User-Name} %{Realm}
> (1) files:    --> /opt/script/radius/bin/check_operator_access.sh
> 10.122.159.2 testgianni
> (1) files: users: Matched entry testgianni at line 512
> (1)     [files] = ok
> [...]
> (1) Found Auth-Type = PAP
> (1) # Executing group from file /etc/raddb/sites-enabled/default
> (1)   Auth-Type PAP {
> (1) pap: Login attempt with password
> (1) pap: Comparing with "known good" Cleartext-Password
> (1) pap: User authenticated successfully
> (1)     [pap] = ok
> (1)   } # Auth-Type PAP = ok
> (1) # Executing section post-auth from file /etc/raddb/sites-enabled/default
> (1)   post-auth {
> (1)     update {
> (1)       No attributes updated
> (1)     } # update = noop
> (1)     [exec] = noop

  The "exec" module implements the Exec-Program-Wait functionality.  If it's returning "noop", that's because the module doesn't see Exec-Program-Wait.

  At this point, just use the "exec" module.  See the "echo" module for examples of running a custom program.

  Alan DeKok.




More information about the Freeradius-Users mailing list