<br>>add perl to the accouting section in whatever virtual server you are running,<br>
>enable the accouting part in the perl config (in experimental.conf) and<br>
>ensure you have an accounting subroutine in your perl module<br>
<br>
>alan<br><br>Hi,<br> I am a new user in freeradius and this is my first time that I am configuring freeradius. As advice by Alan I've done all the possible steps to activate the accounting section.<br>These are the things I've changes<br>
<br>1. I've added an entry "perl" to the accounting sub section on default file.<br>2. Entry included of perl { } in module { } sub section in radiusd.conf.<br>3. And I already had an accounting sub module in my perl script. <br>
<br>Unfortunately I didn't found any execution of my queries (start_accounting_query and stop_accounting_query),<br>please tell me the simplest way of how to test my accounting queries to make it work. or please provide me the simplest accounting query to check the accounting module if possible.<br>
<br><b><i>here is the log output when it runs in debug mode</i></b><br><br>FreeRADIUS Version 2.0.3, for host i686-pc-linux-gnu, built on May 7 2008 at 16:45:53<br>Copyright (C) 1999-2008 The FreeRADIUS server project and contributors.<br>
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A<br>PARTICULAR PURPOSE.<br>You may redistribute copies of FreeRADIUS under the terms of the<br>GNU General Public License.<br>Starting - reading configuration files ...<br>
including configuration file /usr/local/etc/raddb/radiusd.conf<br>including configuration file /usr/local/etc/raddb/clients.conf<br>including configuration file /usr/local/etc/raddb/snmp.conf<br>including configuration file /usr/local/etc/raddb/eap.conf<br>
including configuration file /usr/local/etc/raddb/sql.conf<br>including configuration file /usr/local/etc/raddb/policy.conf<br>including files in directory /usr/local/etc/raddb/sites-enabled/<br>including configuration file /usr/local/etc/raddb/sites-enabled/default<br>
including dictionary file /usr/local/etc/raddb/dictionary<br>main {<br> prefix = "/usr/local"<br> localstatedir = "/usr/local/var"<br> logdir = "/usr/local/var/log/radius"<br>
libdir = "/usr/local/lib"<br> radacctdir = "/usr/local/var/log/radius/radacct"<br> hostname_lookups = no<br> max_request_time = 30<br> cleanup_delay = 5<br> max_requests = 1024<br>
allow_core_dumps = no<br> pidfile = "/usr/local/var/run/radiusd/radiusd.pid"<br> checkrad = "/usr/local/sbin/checkrad"<br> debug_level = 0<br> proxy_requests = yes<br>
security {<br> max_attributes = 200<br> reject_delay = 1<br> status_server = yes<br> }<br>}<br> client localhost {<br> ipaddr = <a href="http://127.0.0.1">127.0.0.1</a><br> require_message_authenticator = no<br>
secret = "testing123"<br> shortname = "localhost"<br> nastype = "other"<br> }<br> client <a href="http://192.168.1.227">192.168.1.227</a> {<br> require_message_authenticator = no<br>
secret = "johnson"<br> }<br>radiusd: #### Loading Realms and Home Servers ####<br>radiusd: #### Instantiating modules ####<br> instantiate {<br> Module: Linked to module rlm_exec<br> Module: Instantiating exec<br>
exec {<br> wait = yes<br> input_pairs = "request"<br> shell_escape = yes<br> }<br> Module: Linked to module rlm_expr<br> Module: Instantiating expr<br> Module: Linked to module rlm_expiration<br>
Module: Instantiating expiration<br> expiration {<br> reply-message = "Password Has Expired "<br> }<br> Module: Linked to module rlm_logintime<br> Module: Instantiating logintime<br> logintime {<br> reply-message = "You are calling outside your allowed timespan "<br>
minimum-timeout = 60<br> }<br> }<br>radiusd: #### Loading Virtual Servers ####<br>server {<br> modules {<br> Module: Checking authenticate {...} for more modules to load<br> Module: Linked to module rlm_perl<br> Module: Instantiating perl<br>
perl {<br> module = "/usr/local/etc/raddb/myperltemp.pl"<br> func_authorize = "authorize"<br> func_authenticate = "authenticate"<br> func_accounting = "accounting"<br>
func_preacct = "preacct"<br> func_checksimul = "checksimul"<br> func_detach = "detach"<br> func_xlat = "xlat"<br> func_pre_proxy = "pre_proxy"<br>
func_post_proxy = "post_proxy"<br> func_post_auth = "post_auth"<br> }<br> perl {<br> max_clones = 32<br> start_clones = 32<br> min_spare_clones = 0<br> max_spare_clones = 32<br>
cleanup_delay = 5<br> max_request_per_clone = 0<br> }<br> Module: Linked to module rlm_digest<br> Module: Instantiating digest<br> Module: Checking authorize {...} for more modules to load<br> Module: Linked to module rlm_preprocess<br>
Module: Instantiating preprocess<br> preprocess {<br> huntgroups = "/usr/local/etc/raddb/huntgroups"<br> hints = "/usr/local/etc/raddb/hints"<br> with_ascend_hack = no<br> ascend_channels_per_line = 23<br>
with_ntdomain_hack = no<br> with_specialix_jetstream_hack = no<br> with_cisco_vsa_hack = no<br> with_alvarion_vsa_hack = no<br> }<br> Module: Linked to module rlm_realm<br> Module: Instantiating suffix<br>
realm suffix {<br> format = "suffix"<br> delimiter = "@"<br> ignore_default = no<br> ignore_null = no<br> }<br> Module: Linked to module rlm_eap<br> Module: Instantiating eap<br>
eap {<br> default_eap_type = "md5"<br> timer_expire = 60<br> ignore_unknown_eap_types = no<br> cisco_accounting_username_bug = no<br> }<br> Module: Linked to sub-module rlm_eap_md5<br>
Module: Instantiating eap-md5<br> Module: Linked to sub-module rlm_eap_leap<br> Module: Instantiating eap-leap<br> Module: Linked to sub-module rlm_eap_gtc<br> Module: Instantiating eap-gtc<br> gtc {<br> challenge = "Password: "<br>
auth_type = "PAP"<br> }<br> Module: Linked to sub-module rlm_eap_tls<br> Module: Instantiating eap-tls<br> tls {<br> rsa_key_exchange = no<br> dh_key_exchange = yes<br> rsa_key_length = 512<br>
dh_key_length = 512<br> verify_depth = 0<br> pem_file_type = yes<br> private_key_file = "/usr/local/etc/raddb/certs/server.pem"<br> certificate_file = "/usr/local/etc/raddb/certs/server.pem"<br>
CA_file = "/usr/local/etc/raddb/certs/ca.pem"<br> private_key_password = "whatever"<br> dh_file = "/usr/local/etc/raddb/certs/dh"<br> random_file = "/usr/local/etc/raddb/certs/random"<br>
fragment_size = 1024<br> include_length = yes<br> check_crl = no<br> cipher_list = "DEFAULT"<br> make_cert_command = "/usr/local/etc/raddb/certs/bootstrap"<br> }<br>
Module: Linked to sub-module rlm_eap_ttls<br> Module: Instantiating eap-ttls<br> ttls {<br> default_eap_type = "md5"<br> copy_request_to_tunnel = no<br> use_tunneled_reply = no<br> }<br>
Module: Linked to sub-module rlm_eap_peap<br> Module: Instantiating eap-peap<br> peap {<br> default_eap_type = "mschapv2"<br> copy_request_to_tunnel = no<br> use_tunneled_reply = no<br> proxy_tunneled_request_as_eap = yes<br>
}<br> Module: Linked to sub-module rlm_eap_mschapv2<br> Module: Instantiating eap-mschapv2<br> mschapv2 {<br> with_ntdomain_hack = no<br> }<br> Module: Linked to module rlm_files<br> Module: Instantiating files<br>
files {<br> usersfile = "/usr/local/etc/raddb/users"<br> acctusersfile = "/usr/local/etc/raddb/acct_users"<br> preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users"<br>
compat = "no"<br> }<br> Module: Checking preacct {...} for more modules to load<br> Module: Linked to module rlm_acct_unique<br> Module: Instantiating acct_unique<br> acct_unique {<br> key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"<br>
}<br> Module: Checking accounting {...} for more modules to load<br> Module: Linked to module rlm_detail<br> Module: Instantiating detail<br> detail {<br> detailfile = "/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d"<br>
header = "%t"<br> detailperm = 384<br> dirperm = 493<br> locking = no<br> log_packet_header = no<br> }<br> Module: Linked to module rlm_radutmp<br> Module: Instantiating radutmp<br>
radutmp {<br> filename = "/usr/local/var/log/radius/radutmp"<br> username = "%{User-Name}"<br> case_sensitive = yes<br> check_with_nas = yes<br> perm = 384<br> callerid = yes<br>
}<br> Module: Linked to module rlm_attr_filter<br> Module: Instantiating attr_filter.accounting_response<br> attr_filter attr_filter.accounting_response {<br> attrsfile = "/usr/local/etc/raddb/attrs.accounting_response"<br>
key = "%{User-Name}"<br> }<br> Module: Checking session {...} for more modules to load<br> Module: Checking post-proxy {...} for more modules to load<br> Module: Checking post-auth {...} for more modules to load<br>
Module: Instantiating attr_filter.access_reject<br> attr_filter attr_filter.access_reject {<br> attrsfile = "/usr/local/etc/raddb/attrs.access_reject"<br> key = "%{User-Name}"<br> }<br>
}<br>}<br>radiusd: #### Opening IP addresses and Ports ####<br>listen {<br> type = "auth"<br> ipaddr = *<br> port = 0<br>}<br>listen {<br> type = "acct"<br> ipaddr = *<br>
port = 0<br>}<br>main {<br> snmp = no<br> smux_password = ""<br> snmp_write_access = no<br>}<br>Listening on authentication address * port 1812<br>Listening on accounting address * port 1813<br>
Listening on proxy address * port 1814<br>Ready to process requests.<br><br>Sorry for the long post.<br><br><br><br>With regards,<br>Elangbam Johnson<br><br>