Freeradius AS DHCP + rlm_perl

Urazaev Vadim demiurg at tica.com.ua
Fri Jul 30 18:03:21 CEST 2010


Hi everybody.
FreeRadius ver. 2.1.10 from git
My problem is string :
=======================
++[perl] returns reject
========================
from radiusd -X debug
The last strings in perl script that executed :
&radiusd::radlog(L_ERR, " --- RLM_MODULE_OK ---".RLM_MODULE_OK."----") 
if $DEBUG;
return RLM_MODULE_OK;

As you can see from output radiusd -X log message --- RLM_MODULE_OK ---
then I`m expected some thing like that
++[perl] returns ok
I think maybe it`s because I`m using wrong return code
and tried to return 3 , but it didn`t help.
Please give me advice.
Thanks.
radiusd -X output is :
FreeRADIUS Version 2.1.10, for host i386-unknown-freebsd7.2, built on 
Jul 30 2010 at 11:27:44
Copyright (C) 1999-2009 The FreeRADIUS server project and contributors.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License v2.
Starting - reading configuration files ...
including configuration file /usr/local/etc/raddb/radiusd.conf
including configuration file /usr/local/etc/raddb/proxy.conf
including configuration file /usr/local/etc/raddb/clients.conf
including files in directory /usr/local/etc/raddb/modules/
including configuration file /usr/local/etc/raddb/modules/wimax
including configuration file /usr/local/etc/raddb/modules/always
including configuration file /usr/local/etc/raddb/modules/attr_filter
including configuration file /usr/local/etc/raddb/modules/attr_rewrite
including configuration file /usr/local/etc/raddb/modules/chap
including configuration file /usr/local/etc/raddb/modules/checkval
including configuration file /usr/local/etc/raddb/modules/counter
including configuration file /usr/local/etc/raddb/modules/cui
including configuration file /usr/local/etc/raddb/modules/detail
including configuration file /usr/local/etc/raddb/modules/detail.example.com
including configuration file /usr/local/etc/raddb/modules/detail.log
including configuration file /usr/local/etc/raddb/modules/digest
including configuration file /usr/local/etc/raddb/modules/echo
including configuration file /usr/local/etc/raddb/modules/etc_group
including configuration file /usr/local/etc/raddb/modules/exec
including configuration file /usr/local/etc/raddb/modules/expiration
including configuration file /usr/local/etc/raddb/modules/expr
including configuration file /usr/local/etc/raddb/modules/files
including configuration file /usr/local/etc/raddb/modules/inner-eap
including configuration file /usr/local/etc/raddb/modules/ippool
including configuration file /usr/local/etc/raddb/modules/krb5
including configuration file /usr/local/etc/raddb/modules/ldap
including configuration file /usr/local/etc/raddb/modules/linelog
including configuration file /usr/local/etc/raddb/modules/logintime
including configuration file /usr/local/etc/raddb/modules/mac2ip
including configuration file /usr/local/etc/raddb/modules/mschap
including configuration file /usr/local/etc/raddb/modules/mac2vlan
including configuration file /usr/local/etc/raddb/modules/ntlm_auth
including configuration file /usr/local/etc/raddb/modules/otp
including configuration file /usr/local/etc/raddb/modules/pam
including configuration file /usr/local/etc/raddb/modules/pap
including configuration file /usr/local/etc/raddb/modules/passwd
including configuration file /usr/local/etc/raddb/modules/perl
including configuration file /usr/local/etc/raddb/modules/policy
including configuration file /usr/local/etc/raddb/modules/preprocess
including configuration file /usr/local/etc/raddb/modules/radutmp
including configuration file /usr/local/etc/raddb/modules/realm
including configuration file /usr/local/etc/raddb/modules/smbpasswd
including configuration file /usr/local/etc/raddb/modules/smsotp
including configuration file /usr/local/etc/raddb/modules/sql_log
including configuration file 
/usr/local/etc/raddb/modules/sqlcounter_expire_on_login
including configuration file /usr/local/etc/raddb/modules/sradutmp
including configuration file /usr/local/etc/raddb/modules/unix
including configuration file /usr/local/etc/raddb/modules/acct_unique
including configuration file /usr/local/etc/raddb/eap.conf
including configuration file /usr/local/etc/raddb/policy.conf
including files in directory /usr/local/etc/raddb/sites-enabled/
including configuration file /usr/local/etc/raddb/sites-enabled/default
including configuration file /usr/local/etc/raddb/sites-enabled/inner-tunnel
including configuration file 
/usr/local/etc/raddb/sites-enabled/control-socket
including configuration file /usr/local/etc/raddb/sites-enabled/dhcp
main {
         user = "freeradius"
         group = "freeradius"
         allow_core_dumps = no
}
including dictionary file /usr/local/etc/raddb/dictionary
main {
         prefix = "/usr/local"
         localstatedir = "/var"
         logdir = "/var/log"
         libdir = "/usr/local/lib/freeradius-2.1.9"
         radacctdir = "/var/log/radacct"
         hostname_lookups = no
         max_request_time = 30
         cleanup_delay = 5
         max_requests = 1024
         pidfile = "/var/run/radiusd/radiusd.pid"
         checkrad = "/usr/local/sbin/checkrad"
         debug_level = 0
         proxy_requests = yes
  log {
         stripped_names = no
         auth = yes
         auth_badpass = no
         auth_goodpass = no
  }
  security {
         max_attributes = 200
         reject_delay = 1
         status_server = yes
  }
}
radiusd: #### Loading Realms and Home Servers ####
  proxy server {
         retry_delay = 5
         retry_count = 3
         default_fallback = no
         dead_time = 120
         wake_all_if_all_dead = no
  }
  home_server localhost {
         ipaddr = 127.0.0.1
         port = 1812
         type = "auth"
         secret = "testing123"
         response_window = 20
         max_outstanding = 65536
         require_message_authenticator = no
         zombie_period = 40
         status_check = "status-server"
         ping_interval = 30
         check_interval = 30
         num_answers_to_alive = 3
         num_pings_to_alive = 3
         revive_interval = 120
         status_check_timeout = 4
         irt = 2
         mrt = 16
         mrc = 5
         mrd = 30
  }
  home_server_pool my_auth_failover {
         type = fail-over
         home_server = localhost
  }
  realm example.com {
         auth_pool = my_auth_failover
  }
  realm LOCAL {
  }
radiusd: #### Loading Clients ####
  client localhost {
         ipaddr = 127.0.0.1
         require_message_authenticator = no
         secret = "testing123"
         nastype = "other"
  }
radiusd: #### Instantiating modules ####
  instantiate {
  Module: Linked to module rlm_exec
  Module: Instantiating exec
   exec {
         wait = no
         input_pairs = "request"
         shell_escape = yes
   }
  Module: Linked to module rlm_expr
  Module: Instantiating expr
  Module: Linked to module rlm_expiration
  Module: Instantiating expiration
   expiration {
         reply-message = "Password Has Expired  "
   }
  Module: Linked to module rlm_logintime
  Module: Instantiating logintime
   logintime {
         reply-message = "You are calling outside your allowed timespan  "
         minimum-timeout = 60
   }
  }
radiusd: #### Loading Virtual Servers ####
server inner-tunnel {
  modules {
  Module: Checking authenticate {...} for more modules to load
  Module: Linked to module rlm_pap
  Module: Instantiating pap
   pap {
         encryption_scheme = "auto"
         auto_header = no
   }
  Module: Linked to module rlm_chap
  Module: Instantiating chap
  Module: Linked to module rlm_mschap
  Module: Instantiating mschap
   mschap {
         use_mppe = yes
         require_encryption = no
         require_strong = no
         with_ntdomain_hack = no
   }
  Module: Linked to module rlm_unix
  Module: Instantiating unix
   unix {
         radwtmp = "/var/log/radwtmp"
   }
  Module: Linked to module rlm_eap
  Module: Instantiating eap
   eap {
         default_eap_type = "md5"
         timer_expire = 60
         ignore_unknown_eap_types = no
         cisco_accounting_username_bug = no
         max_sessions = 4096
   }
  Module: Linked to sub-module rlm_eap_md5
  Module: Instantiating eap-md5
  Module: Linked to sub-module rlm_eap_leap
  Module: Instantiating eap-leap
  Module: Linked to sub-module rlm_eap_gtc
  Module: Instantiating eap-gtc
    gtc {
         challenge = "Password: "
         auth_type = "PAP"
    }
  Module: Linked to sub-module rlm_eap_tls
  Module: Instantiating eap-tls
    tls {
         rsa_key_exchange = no
         dh_key_exchange = yes
         rsa_key_length = 512
         dh_key_length = 512
         verify_depth = 0
         pem_file_type = yes
         private_key_file = "/usr/local/etc/raddb/certs/server.pem"
         certificate_file = "/usr/local/etc/raddb/certs/server.pem"
         CA_file = "/usr/local/etc/raddb/certs/ca.pem"
         private_key_password = "whatever"
         dh_file = "/usr/local/etc/raddb/certs/dh"
         random_file = "/usr/local/etc/raddb/certs/random"
         fragment_size = 1024
         include_length = yes
         check_crl = no
         cipher_list = "DEFAULT"
         make_cert_command = "/usr/local/etc/raddb/certs/bootstrap"
     cache {
         enable = no
         lifetime = 24
         max_entries = 255
     }
    }
  Module: Linked to sub-module rlm_eap_ttls
  Module: Instantiating eap-ttls
    ttls {
         default_eap_type = "md5"
         copy_request_to_tunnel = no
         use_tunneled_reply = no
         virtual_server = "inner-tunnel"
         include_length = yes
    }
  Module: Linked to sub-module rlm_eap_peap
  Module: Instantiating eap-peap
    peap {
         default_eap_type = "mschapv2"
         copy_request_to_tunnel = no
         use_tunneled_reply = no
         proxy_tunneled_request_as_eap = yes
         virtual_server = "inner-tunnel"
    }
  Module: Linked to sub-module rlm_eap_mschapv2
  Module: Instantiating eap-mschapv2
    mschapv2 {
         with_ntdomain_hack = no
    }
  Module: Checking authorize {...} for more modules to load
  Module: Linked to module rlm_realm
  Module: Instantiating suffix
   realm suffix {
         format = "suffix"
         delimiter = "@"
         ignore_default = no
         ignore_null = no
   }
  Module: Linked to module rlm_files
  Module: Instantiating files
   files {
         usersfile = "/usr/local/etc/raddb/users"
         acctusersfile = "/usr/local/etc/raddb/acct_users"
         preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users"
         compat = "no"
   }
  Module: Checking session {...} for more modules to load
  Module: Linked to module rlm_radutmp
  Module: Instantiating radutmp
   radutmp {
         filename = "/var/log/radutmp"
         username = "%{User-Name}"
         case_sensitive = yes
         check_with_nas = yes
         perm = 384
         callerid = yes
   }
  Module: Checking post-proxy {...} for more modules to load
  Module: Checking post-auth {...} for more modules to load
  Module: Linked to module rlm_attr_filter
  Module: Instantiating attr_filter.access_reject
   attr_filter attr_filter.access_reject {
         attrsfile = "/usr/local/etc/raddb/attrs.access_reject"
         key = "%{User-Name}"
   }
  } # modules
} # server
server dhcp {
  modules {
  Module: Checking dhcp DHCP-Discover {...} for more modules to load
  Module: Linked to module rlm_perl
  Module: Instantiating perl
   perl {
         module = "/usr/local/etc/raddb/example.pl"
         func_authorize = "authorize"
         func_authenticate = "authenticate"
         func_accounting = "accounting"
         func_preacct = "preacct"
         func_checksimul = "checksimul"
         func_detach = "detach"
         func_xlat = "xlat"
         func_pre_proxy = "pre_proxy"
         func_post_proxy = "post_proxy"
         func_post_auth = "post_auth"
         func_recv_coa = "recv_coa"
         func_send_coa = "send_coa"
   }
  Module: Linked to module rlm_always
  Module: Instantiating ok
   always ok {
         rcode = "ok"
         simulcount = 0
         mpp = no
   }
  Module: Checking dhcp DHCP-Request {...} for more modules to load
  Module: Checking dhcp DHCP-Release {...} for more modules to load
  Module: Instantiating handled
   always handled {
         rcode = "handled"
         simulcount = 0
         mpp = no
   }
  Module: Checking dhcp DHCP-Inform {...} for more modules to load
  Module: Checking dhcp (null) {...} for more modules to load
/usr/local/etc/raddb/sites-enabled/dhcp[156]: No name specified for 
Post-Auth-Type block
  } # modules
} # server
server {
  modules {
  Module: Checking authenticate {...} for more modules to load
  Module: Checking authorize {...} for more modules to load
  Module: Linked to module rlm_preprocess
  Module: Instantiating preprocess
   preprocess {
         huntgroups = "/usr/local/etc/raddb/huntgroups"
         hints = "/usr/local/etc/raddb/hints"
         with_ascend_hack = no
         ascend_channels_per_line = 23
         with_ntdomain_hack = no
         with_specialix_jetstream_hack = no
         with_cisco_vsa_hack = no
         with_alvarion_vsa_hack = no
   }
  Module: Checking preacct {...} for more modules to load
  Module: Linked to module rlm_acct_unique
  Module: Instantiating acct_unique
   acct_unique {
         key = "User-Name, Acct-Session-Id, NAS-IP-Address, 
Client-IP-Address, NAS-Port"
   }
  Module: Checking accounting {...} for more modules to load
  Module: Linked to module rlm_detail
  Module: Instantiating detail
   detail {
         detailfile = "/var/log/radacct/%{Client-IP-Address}/detail-%Y%m%d"
         header = "%t"
         detailperm = 384
         dirperm = 493
         locking = no
         log_packet_header = no
   }
  Module: Instantiating attr_filter.accounting_response
   attr_filter attr_filter.accounting_response {
         attrsfile = "/usr/local/etc/raddb/attrs.accounting_response"
         key = "%{User-Name}"
   }
  Module: Checking session {...} for more modules to load
  Module: Checking post-proxy {...} for more modules to load
  Module: Checking post-auth {...} for more modules to load
  } # modules
} # server
radiusd: #### Opening IP addresses and Ports ####
listen {
         type = "auth"
         ipaddr = *
         port = 0
}
listen {
         type = "acct"
         ipaddr = *
         port = 0
}
listen {
         type = "control"
  listen {
         socket = "/var/run/radiusd/radiusd.sock"
  }
}
listen {
         type = "dhcp"
         ipaddr = 192.168.40.5
         port = 67
}
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /var/run/radiusd/radiusd.sock
Listening on dhcp address 192.168.40.5 port 67 as server dhcp
Listening on proxy address * port 1814
Ready to process requests.
Received DHCP-Discover of id d52ca059 from 192.168.40.17:68 to 
192.168.40.5:67
         DHCP-Opcode = Client-Message
         DHCP-Hardware-Type = Ethernet
         DHCP-Hardware-Address-Length = 6
         DHCP-Hop-Count = 1
         DHCP-Transaction-Id = 3576471641
         DHCP-Number-of-Seconds = 0
         DHCP-Flags = 0
         DHCP-Client-IP-Address = 0.0.0.0
         DHCP-Your-IP-Address = 0.0.0.0
         DHCP-Server-IP-Address = 0.0.0.0
         DHCP-Gateway-IP-Address = 192.168.40.17
         DHCP-Client-Hardware-Address = 00:19:db:ee:ce:a6
         DHCP-Message-Type = DHCP-Discover
         DHCP-Requested-IP-Address = 192.168.1.122
         DHCP-Hostname = "urazaev-laptop"
         DHCP-Parameter-Request-List = DHCP-Subnet-Mask
         DHCP-Parameter-Request-List = DHCP-Broadcast-Address
         DHCP-Parameter-Request-List = DHCP-Time-Offset
         DHCP-Parameter-Request-List = DHCP-Router-Address
         DHCP-Parameter-Request-List = DHCP-Domain-Name
         DHCP-Parameter-Request-List = DHCP-Domain-Name-Server
         DHCP-Parameter-Request-List = DHCP-Domain-Search
         DHCP-Parameter-Request-List = DHCP-Hostname
         DHCP-Parameter-Request-List = DHCP-NETBIOS-Name-Servers
         DHCP-Parameter-Request-List = DHCP-NETBIOS
         DHCP-Parameter-Request-List = DHCP-Interface-MTU-Size
         DHCP-Parameter-Request-List = DHCP-Classless-Static-Route
         DHCP-Parameter-Request-List = DHCP-NTP-Servers
         DHCP-Relay-Circuit-Id = 0x000400010101
         DHCP-Relay-Remote-Id = 0x0006001ee5d09d87
server dhcp {
Trying sub-section dhcp DHCP-Discover {...}
+- entering group DHCP-Discover {...}
         expand: %{Packet-Dst-IP-Address} -> 192.168.40.5
++[reply] returns noop
rlm_perl:  --- START ---
rlm_perl:  --- Circuit-ID Found: 0x000400010101
rlm_perl:  --- Switch: 192.168.40.17, Vlan: 1, Port: 1, UIP: 0.0.0.0, 
UMAC: 00:19:db:ee:ce:a6 ---
rlm_perl:  --- DHCP-Packet-Type: DHCP-Discover
rlm_perl:  --- Searching for possible ips in DB ---
rlm_perl:  --- Found 1 possible ips in DB
rlm_perl:  --- Found only one possible IP for this port in DB ---
rlm_perl:  --- IP: 10.128.0.244 MASK: 255.255.255.0 GW: 10.128.0.1 ---
rlm_perl:  --- RAD_REPLY Formed. ---
rlm_perl:  --- RLM_MODULE_OK ---2----
rlm_perl: Added pair DHCP-Your-IP-Address = 0.0.0.0
rlm_perl: Added pair DHCP-Relay-Circuit-Id = 0x000400010101
rlm_perl: Added pair DHCP-Message-Type = DHCP-Discover
rlm_perl: Added pair DHCP-Hop-Count = 1
rlm_perl: Added pair DHCP-Relay-Remote-Id = 0x0006001ee5d09d87
rlm_perl: Added pair DHCP-Number-of-Seconds = 0
rlm_perl: Added pair DHCP-Client-IP-Address = 0.0.0.0
rlm_perl: Added pair DHCP-Gateway-IP-Address = 192.168.40.17
rlm_perl: Added pair DHCP-Hardware-Type = Ethernet
rlm_perl: Added pair DHCP-Flags = 0
rlm_perl: Added pair DHCP-Hardware-Address-Length = 6
rlm_perl: Added pair DHCP-Hostname = urazaev-laptop
rlm_perl: Added pair DHCP-Opcode = Client-Message
rlm_perl: Added pair DHCP-Transaction-Id = 3576471641
rlm_perl: Added pair DHCP-Client-Hardware-Address = 00:19:db:ee:ce:a6
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Subnet-Mask
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Broadcast-Address
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Time-Offset
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Router-Address
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Domain-Name
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Domain-Name-Server
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Domain-Search
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Hostname
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-NETBIOS-Name-Servers
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-NETBIOS
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-Interface-MTU-Size
rlm_perl: Added pair DHCP-Parameter-Request-List = 
DHCP-Classless-Static-Route
rlm_perl: Added pair DHCP-Parameter-Request-List = DHCP-NTP-Servers
rlm_perl: Added pair DHCP-Server-IP-Address = 0.0.0.0
rlm_perl: Added pair DHCP-Requested-IP-Address = 192.168.1.122
rlm_perl: Added pair DHCP-Your-IP-Address = 10.128.0.244
rlm_perl: Added pair DHCP-DHCP-Server-Identifier = 192.168.40.5
rlm_perl: Added pair DHCP-Subnet-Mask = 255.255.255.0
rlm_perl: Added pair DHCP-Domain-Name-Server = 195.64.148.2
rlm_perl: Added pair DHCP-Server-IP-Address = 192.168.40.5
rlm_perl: Added pair DHCP-IP-Address-Lease-Time = 120
rlm_perl: Added pair DHCP-Router-Address = 10.128.0.1
++[perl] returns reject
} # server dhcp
Finished request 0.
Cleaning up request 0 ID -718495655 with timestamp +2
Going to the next request
Ready to process requests.



More information about the Freeradius-Users mailing list