Hi ,
I am trying to use
the mod exec command to pass the request list parameters to an external program
when there is a accounting request start is recived.
The below
steps i have followed.
1) in the Acct_users
files below statement are given.
DEFAULT
Acct-Status-Type == Start
Exec-Program = "/usr/bin/exec-program-wait"
Exec-Program = "/usr/bin/exec-program-wait"
2) In the
radiusd.conf file
exec
exec-program-wait
{
wait = yes
wait = yes
program = "exec-program-wait %{WaterCove-Bearer-Type}"
input_pairs = request
output_pairs = reply
}
3) in the
instantiate section called the below module
instantiate
{
exec exec-program-wait
exec exec-program-wait
4) Ensured
the script is available in /usr/bin/exec-program-wait
5) Below is the
script definition
# For
'acct_users':
#
DEFAULT Acct-Status-Type == Start
Exec-Program="/home/shankarganesh/freeradius-1.1.2/scripts/exec-program-wait"
DEFAULT Acct-Status-Type == Stop
Exec-Program="/home/shankarganesh/freeradius-1.1.2/scripts/exec-program-wait"
printenv > /tmp/exec-program-wait
echo "Reply-Message += \"Hello, %u\","
echo "Reply-Message += \"PATH=$PATH\","
echo Framed-IP-Address = 255.255.255.255
echo "The prameter list of $* "
WaterCove-Bearer-Type = WATERCOVE_BEARER_TYPE
exit 0
#
DEFAULT Acct-Status-Type == Start
Exec-Program="/home/shankarganesh/freeradius-1.1.2/scripts/exec-program-wait"
DEFAULT Acct-Status-Type == Stop
Exec-Program="/home/shankarganesh/freeradius-1.1.2/scripts/exec-program-wait"
printenv > /tmp/exec-program-wait
echo "Reply-Message += \"Hello, %u\","
echo "Reply-Message += \"PATH=$PATH\","
echo Framed-IP-Address = 255.255.255.255
echo "The prameter list of $* "
WaterCove-Bearer-Type = WATERCOVE_BEARER_TYPE
exit 0
6) When i try to run
the server below error message is logged in the server , which could not
find the environment variables .
Ready to process
requests.
rad_recv: Accounting-Request packet from host 10.45.2.42:1230, id=0, length=223
User-Name = "steve"
Acct-Status-Type = Start
Acct-Session-Id = "0"
NAS-IP-Address = 10.45.2.34
Framed-IP-Address = 10.45.2.33
Called-Station-Id = "1234"
Calling-Station-Id = "4546"
3GPP-IMSI = "12345"
3GPP-NSAPI = "asdfgh"
3GPP-Charging-ID = 123
3GPP-GPRS-Negotiated-QoS-profile = ""
3GPP-GGSN-Address = 255.255.255.255
3GPP-SGSN-Address = 255.255.255.255
WaterCove-Bearer-Type = WLAN
WaterCove-HTTP-URL = ""
WaterCove-FlowTemplate-Name = "23453255"
WaterCove-ServiceClass-Name = "sgdfsfgd"
WaterCove-FlowTemplate-ID = 325454
WaterCove-ServiceClass-ID = 32534254
Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 0
modcall[preacct]: module "preprocess" returns noop for request 0
rlm_acct_unique: WARNING: Attribute NAS-Port was not found in request, unique ID MAY be inconsistent
rlm_acct_unique: Hashing ',Client-IP-Address = 10.45.2.42,NAS-IP-Address = 10.45.2.34,Acct-Session-Id = "0",User-Name = "steve"'
rlm_acct_unique: Acct-Unique-Session-ID = "a488c9e5208ecdb9".
modcall[preacct]: module "acct_unique" returns ok for request 0
rlm_realm: No '@' in User-Name = "steve", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 0
acct_users: Matched entry DEFAULT at line 7
modcall[preacct]: module "files" returns ok for request 0
modcall: leaving group preacct (returns ok) for request 0
Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 0
radius_xlat: '/usr/local/radius/var/log/radius/radacct/10.45.2.42/detail-20060823'
rlm_detail: /usr/local/radius/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/local/radius/var/log/radius/radacct/10.45.2.42/detail-20060823
modcall[accounting]: module "detail" returns ok for request 0
modcall[accounting]: module "unix" returns noop for request 0
radius_xlat: '/usr/local/radius/var/log/radius/radutmp'
radius_xlat: 'steve'
rlm_radutmp: No NAS-Port seen. Cannot do anything.
rlm_radumtp: WARNING: checkrad will probably not work!
modcall[accounting]: module "radutmp" returns noop for request 0
modcall: leaving group accounting (returns ok) for request 0
radius_xlat: '/usr/bin/exec-program-wait'
Exec-Program: /usr/bin/exec-program-wait
/usr/bin/exec-program-wait: printenv: not found
Sending Accounting-Response of id 0 to 10.45.2.42 port 1230
Finished request 0
Going to the next request
rad_recv: Accounting-Request packet from host 10.45.2.42:1230, id=0, length=223
User-Name = "steve"
Acct-Status-Type = Start
Acct-Session-Id = "0"
NAS-IP-Address = 10.45.2.34
Framed-IP-Address = 10.45.2.33
Called-Station-Id = "1234"
Calling-Station-Id = "4546"
3GPP-IMSI = "12345"
3GPP-NSAPI = "asdfgh"
3GPP-Charging-ID = 123
3GPP-GPRS-Negotiated-QoS-profile = ""
3GPP-GGSN-Address = 255.255.255.255
3GPP-SGSN-Address = 255.255.255.255
WaterCove-Bearer-Type = WLAN
WaterCove-HTTP-URL = ""
WaterCove-FlowTemplate-Name = "23453255"
WaterCove-ServiceClass-Name = "sgdfsfgd"
WaterCove-FlowTemplate-ID = 325454
WaterCove-ServiceClass-ID = 32534254
Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 0
modcall[preacct]: module "preprocess" returns noop for request 0
rlm_acct_unique: WARNING: Attribute NAS-Port was not found in request, unique ID MAY be inconsistent
rlm_acct_unique: Hashing ',Client-IP-Address = 10.45.2.42,NAS-IP-Address = 10.45.2.34,Acct-Session-Id = "0",User-Name = "steve"'
rlm_acct_unique: Acct-Unique-Session-ID = "a488c9e5208ecdb9".
modcall[preacct]: module "acct_unique" returns ok for request 0
rlm_realm: No '@' in User-Name = "steve", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 0
acct_users: Matched entry DEFAULT at line 7
modcall[preacct]: module "files" returns ok for request 0
modcall: leaving group preacct (returns ok) for request 0
Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 0
radius_xlat: '/usr/local/radius/var/log/radius/radacct/10.45.2.42/detail-20060823'
rlm_detail: /usr/local/radius/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/local/radius/var/log/radius/radacct/10.45.2.42/detail-20060823
modcall[accounting]: module "detail" returns ok for request 0
modcall[accounting]: module "unix" returns noop for request 0
radius_xlat: '/usr/local/radius/var/log/radius/radutmp'
radius_xlat: 'steve'
rlm_radutmp: No NAS-Port seen. Cannot do anything.
rlm_radumtp: WARNING: checkrad will probably not work!
modcall[accounting]: module "radutmp" returns noop for request 0
modcall: leaving group accounting (returns ok) for request 0
radius_xlat: '/usr/bin/exec-program-wait'
Exec-Program: /usr/bin/exec-program-wait
/usr/bin/exec-program-wait: printenv: not found
Sending Accounting-Response of id 0 to 10.45.2.42 port 1230
Finished request 0
Going to the next request
Pls let me know
where i am doing wrong.
Thanks and
rgds
Shankar
ganesh
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html