Release of Version 3.0.2
Version 3.0.2 is late due to some last minute issues. We're sorry for the delay. I think we're good to release 3.0.2 this week. Alan DeKok.
On Sun, Mar 09, 2014 at 09:16:46AM -0400, Alan DeKok wrote:
Version 3.0.2 is late due to some last minute issues. We're sorry for the delay.
I think we're good to release 3.0.2 this week.
I've just tried DHCP again... some good news and some bad. Good news is that assigning a static IP (just one static IP) now will serve that one IP to anything that asks :) This is 100% improvement on last time I tried! Trying to use mac2ip is giving me a "double free or corruption (fasttop)" error. I'll try and reduce to minimal config (which this nearly is...) and post the backtrace. Also something that's making me think I'm going stupid... Received DHCP-Discover of id a035ab0e from 0.0.0.0:68 to 255.255.255.255:67 DHCP-Opcode = Client-Message ... DHCP-Client-Hardware-Address = 84:51:81:af:c6:09 ... Trying sub-section dhcp DHCP-Discover {...} (0) dhcp DHCP-Discover { (0) update reply { (0) DHCP-Message-Type = DHCP-Offer (0) } # update reply = noop (0) ? if (DHCP-Client-Hardware-Address == "84:51:81:af:c6:09") (0) ? if (DHCP-Client-Hardware-Address == "84:51:81:af:c6:09") -> FALSE (0) update reply { False why? This is default config, with just this in the DHCP discover/request sections: if (DHCP-Client-Hardware-Address == "84:51:81:af:c6:09") { update reply { DHCP-Your-IP-Address := "10.0.0.120" } } (full debug below) Cheers, Matthew radiusd: FreeRADIUS Version 3.0.2 (git #6cebeea), for host x86_64-unknown-linux-gnu, built on Mar 10 2014 at 21:18:23 Copyright (C) 1999-2014 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 For more information about these matters, see the file named COPYRIGHT Starting - reading configuration files ... including dictionary file /opt/fr3/share/freeradius/dictionary including dictionary file /opt/fr3/etc/raddb/dictionary including configuration file /opt/fr3/etc/raddb/radiusd.conf including configuration file /opt/fr3/etc/raddb/proxy.conf including configuration file /opt/fr3/etc/raddb/clients.conf including files in directory /opt/fr3/etc/raddb/mods-enabled/ including configuration file /opt/fr3/etc/raddb/mods-enabled/unix including configuration file /opt/fr3/etc/raddb/mods-enabled/echo including configuration file /opt/fr3/etc/raddb/mods-enabled/dhcp including configuration file /opt/fr3/etc/raddb/mods-enabled/cache_eap including configuration file /opt/fr3/etc/raddb/mods-enabled/dynamic_clients including configuration file /opt/fr3/etc/raddb/mods-enabled/ntlm_auth including configuration file /opt/fr3/etc/raddb/mods-enabled/always including configuration file /opt/fr3/etc/raddb/mods-enabled/soh including configuration file /opt/fr3/etc/raddb/mods-enabled/logintime including configuration file /opt/fr3/etc/raddb/mods-enabled/replicate including configuration file /opt/fr3/etc/raddb/mods-enabled/radutmp including configuration file /opt/fr3/etc/raddb/mods-enabled/attr_filter including configuration file /opt/fr3/etc/raddb/mods-enabled/pap including configuration file /opt/fr3/etc/raddb/mods-enabled/passwd including configuration file /opt/fr3/etc/raddb/mods-enabled/utf8 including configuration file /opt/fr3/etc/raddb/mods-enabled/expiration including configuration file /opt/fr3/etc/raddb/mods-enabled/expr including configuration file /opt/fr3/etc/raddb/mods-enabled/realm including configuration file /opt/fr3/etc/raddb/mods-enabled/eap including configuration file /opt/fr3/etc/raddb/mods-enabled/linelog including configuration file /opt/fr3/etc/raddb/mods-enabled/preprocess including configuration file /opt/fr3/etc/raddb/mods-enabled/digest including configuration file /opt/fr3/etc/raddb/mods-enabled/detail including configuration file /opt/fr3/etc/raddb/mods-enabled/files including configuration file /opt/fr3/etc/raddb/mods-enabled/exec including configuration file /opt/fr3/etc/raddb/mods-enabled/sradutmp including configuration file /opt/fr3/etc/raddb/mods-enabled/detail.log including configuration file /opt/fr3/etc/raddb/mods-enabled/chap including configuration file /opt/fr3/etc/raddb/mods-enabled/mschap including files in directory /opt/fr3/etc/raddb/policy.d/ including configuration file /opt/fr3/etc/raddb/policy.d/operator-name including configuration file /opt/fr3/etc/raddb/policy.d/canonicalization including configuration file /opt/fr3/etc/raddb/policy.d/dhcp including configuration file /opt/fr3/etc/raddb/policy.d/cui including configuration file /opt/fr3/etc/raddb/policy.d/filter including configuration file /opt/fr3/etc/raddb/policy.d/eap including configuration file /opt/fr3/etc/raddb/policy.d/control including configuration file /opt/fr3/etc/raddb/policy.d/accounting including files in directory /opt/fr3/etc/raddb/sites-enabled/ including configuration file /opt/fr3/etc/raddb/sites-enabled/dhcp main { security { allow_core_dumps = no } } main { name = "radiusd" prefix = "/opt/fr3" localstatedir = "/opt/fr3/var" sbindir = "/opt/fr3/sbin" logdir = "/opt/fr3/var/log/radius" run_dir = "/opt/fr3/var/run/radiusd" libdir = "/opt/fr3/lib" radacctdir = "/opt/fr3/var/log/radius/radacct" hostname_lookups = no max_request_time = 30 cleanup_delay = 5 max_requests = 1024 pidfile = "/opt/fr3/var/run/radiusd/radiusd.pid" checkrad = "/opt/fr3/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes } 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 = <<< secret >>> response_window = 20 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 num_answers_to_alive = 3 revive_interval = 120 status_check_timeout = 4 coa { irt = 2 mrt = 16 mrc = 5 mrd = 30 } limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } } 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 = <<< secret >>> nas_type = "other" proto = "*" limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } radiusd: #### Instantiating modules #### instantiate { } modules { # Loaded module rlm_unix # Instantiating module "unix" from file /opt/fr3/etc/raddb/mods-enabled/unix unix { radwtmp = "/opt/fr3/var/log/radius/radwtmp" } # Loaded module rlm_exec # Instantiating module "echo" from file /opt/fr3/etc/raddb/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_dhcp # Instantiating module "dhcp" from file /opt/fr3/etc/raddb/mods-enabled/dhcp # Loaded module rlm_cache # Instantiating module "cache_eap" from file /opt/fr3/etc/raddb/mods-enabled/cache_eap cache cache_eap { key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 16384 epoch = 0 add_stats = no } # Loaded module rlm_dynamic_clients # Instantiating module "dynamic_clients" from file /opt/fr3/etc/raddb/mods-enabled/dynamic_clients # Instantiating module "ntlm_auth" from file /opt/fr3/etc/raddb/mods-enabled/ntlm_auth exec ntlm_auth { wait = yes program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN --username=%{mschap:User-Name} --password=%{User-Password}" shell_escape = yes } # Loaded module rlm_always # Instantiating module "reject" from file /opt/fr3/etc/raddb/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Instantiating module "fail" from file /opt/fr3/etc/raddb/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Instantiating module "ok" from file /opt/fr3/etc/raddb/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Instantiating module "handled" from file /opt/fr3/etc/raddb/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Instantiating module "invalid" from file /opt/fr3/etc/raddb/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Instantiating module "userlock" from file /opt/fr3/etc/raddb/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Instantiating module "notfound" from file /opt/fr3/etc/raddb/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Instantiating module "noop" from file /opt/fr3/etc/raddb/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Instantiating module "updated" from file /opt/fr3/etc/raddb/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_soh # Instantiating module "soh" from file /opt/fr3/etc/raddb/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_logintime # Instantiating module "logintime" from file /opt/fr3/etc/raddb/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_replicate # Instantiating module "replicate" from file /opt/fr3/etc/raddb/mods-enabled/replicate # Loaded module rlm_radutmp # Instantiating module "radutmp" from file /opt/fr3/etc/raddb/mods-enabled/radutmp radutmp { filename = "/opt/fr3/var/log/radius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_attr_filter # Instantiating module "attr_filter.post-proxy" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/accounting_response # Loaded module rlm_pap # Instantiating module "pap" from file /opt/fr3/etc/raddb/mods-enabled/pap pap { auto_header = no normalise = yes } # Loaded module rlm_passwd # Instantiating module "etc_passwd" from file /opt/fr3/etc/raddb/mods-enabled/passwd passwd etc_passwd { filename = "/etc/passwd" format = "*User-Name:Crypt-Password:" delimiter = ":" ignore_nislike = no ignore_empty = yes allow_multiple_keys = no hash_size = 100 } rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Loaded module rlm_utf8 # Instantiating module "utf8" from file /opt/fr3/etc/raddb/mods-enabled/utf8 # Loaded module rlm_expiration # Instantiating module "expiration" from file /opt/fr3/etc/raddb/mods-enabled/expiration # Loaded module rlm_expr # Instantiating module "expr" from file /opt/fr3/etc/raddb/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /" } # Loaded module rlm_realm # Instantiating module "IPASS" from file /opt/fr3/etc/raddb/mods-enabled/realm realm IPASS { format = "prefix" delimiter = "/" ignore_default = no ignore_null = no } # Instantiating module "suffix" from file /opt/fr3/etc/raddb/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Instantiating module "realmpercent" from file /opt/fr3/etc/raddb/mods-enabled/realm realm realmpercent { format = "suffix" delimiter = "%" ignore_default = no ignore_null = no } # Instantiating module "ntdomain" from file /opt/fr3/etc/raddb/mods-enabled/realm realm ntdomain { format = "prefix" delimiter = "\" ignore_default = no ignore_null = no } # Loaded module rlm_eap # Instantiating module "eap" from file /opt/fr3/etc/raddb/mods-enabled/eap eap { default_eap_type = "md5" timer_expire = 60 ignore_unknown_eap_types = no mod_accounting_username_bug = no max_sessions = 4096 } # Linked to sub-module rlm_eap_md5 # Linked to sub-module rlm_eap_leap # Linked to sub-module rlm_eap_gtc gtc { challenge = "Password: " auth_type = "PAP" } # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { rsa_key_exchange = no dh_key_exchange = yes rsa_key_length = 512 dh_key_length = 512 verify_depth = 0 ca_path = "/opt/fr3/etc/raddb/certs" pem_file_type = yes private_key_file = "/opt/fr3/etc/raddb/certs/server.pem" certificate_file = "/opt/fr3/etc/raddb/certs/server.pem" ca_file = "/opt/fr3/etc/raddb/certs/ca.pem" private_key_password = <<< secret >>> dh_file = "/opt/fr3/etc/raddb/certs/dh" fragment_size = 1024 include_length = yes check_crl = no cipher_list = "DEFAULT" ecdh_curve = "prime256v1" cache { enable = yes lifetime = 24 max_entries = 255 } verify { } ocsp { enable = no override_cert_url = yes url = "http://127.0.0.1/ocsp/" use_nonce = yes timeout = 0 softfail = yes } } # Linked to sub-module rlm_eap_ttls ttls { tls = "tls-common" default_eap_type = "md5" copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" include_length = yes require_client_cert = no } Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_peap peap { tls = "tls-common" default_method = "mschapv2" copy_request_to_tunnel = no use_tunneled_reply = no proxy_tunneled_request_as_eap = yes virtual_server = "inner-tunnel" soh = no require_client_cert = no } Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_mschapv2 mschapv2 { with_ntdomain_hack = no send_error = no } # Loaded module rlm_linelog # Instantiating module "linelog" from file /opt/fr3/etc/raddb/mods-enabled/linelog linelog { filename = "/opt/fr3/var/log/radius/linelog" permissions = 384 format = "This is a log message for %{User-Name}" reference = "%{%{Packet-Type}:-format}" } # Loaded module rlm_preprocess # Instantiating module "preprocess" from file /opt/fr3/etc/raddb/mods-enabled/preprocess preprocess { huntgroups = "/opt/fr3/etc/raddb/mods-config/preprocess/huntgroups" hints = "/opt/fr3/etc/raddb/mods-config/preprocess/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 } reading pairlist file /opt/fr3/etc/raddb/mods-config/preprocess/huntgroups reading pairlist file /opt/fr3/etc/raddb/mods-config/preprocess/hints # Loaded module rlm_digest # Instantiating module "digest" from file /opt/fr3/etc/raddb/mods-enabled/digest # Loaded module rlm_detail # Instantiating module "detail" from file /opt/fr3/etc/raddb/mods-enabled/detail detail { filename = "/opt/fr3/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d" header = "%t" permissions = 384 dir_permissions = 493 locking = no log_packet_header = no } # Loaded module rlm_files # Instantiating module "files" from file /opt/fr3/etc/raddb/mods-enabled/files files { filename = "/opt/fr3/etc/raddb/mods-config/files/authorize" usersfile = "/opt/fr3/etc/raddb/mods-config/files/authorize" acctusersfile = "/opt/fr3/etc/raddb/mods-config/files/accounting" preproxy_usersfile = "/opt/fr3/etc/raddb/mods-config/files/pre-proxy" compat = "no" } reading pairlist file /opt/fr3/etc/raddb/mods-config/files/authorize reading pairlist file /opt/fr3/etc/raddb/mods-config/files/authorize reading pairlist file /opt/fr3/etc/raddb/mods-config/files/accounting reading pairlist file /opt/fr3/etc/raddb/mods-config/files/pre-proxy # Instantiating module "exec" from file /opt/fr3/etc/raddb/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Instantiating module "sradutmp" from file /opt/fr3/etc/raddb/mods-enabled/sradutmp radutmp sradutmp { filename = "/opt/fr3/var/log/radius/sradutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 420 caller_id = no } # Instantiating module "auth_log" from file /opt/fr3/etc/raddb/mods-enabled/detail.log detail auth_log { filename = "/opt/fr3/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d" header = "%t" permissions = 384 dir_permissions = 493 locking = no log_packet_header = no } rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail output # Instantiating module "reply_log" from file /opt/fr3/etc/raddb/mods-enabled/detail.log detail reply_log { filename = "/opt/fr3/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d" header = "%t" permissions = 384 dir_permissions = 493 locking = no log_packet_header = no } # Instantiating module "pre_proxy_log" from file /opt/fr3/etc/raddb/mods-enabled/detail.log detail pre_proxy_log { filename = "/opt/fr3/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d" header = "%t" permissions = 384 dir_permissions = 493 locking = no log_packet_header = no } # Instantiating module "post_proxy_log" from file /opt/fr3/etc/raddb/mods-enabled/detail.log detail post_proxy_log { filename = "/opt/fr3/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d" header = "%t" permissions = 384 dir_permissions = 493 locking = no log_packet_header = no } # Loaded module rlm_chap # Instantiating module "chap" from file /opt/fr3/etc/raddb/mods-enabled/chap # Loaded module rlm_mschap # Instantiating module "mschap" from file /opt/fr3/etc/raddb/mods-enabled/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = yes passchange { } allow_retry = yes } } # modules radiusd: #### Loading Virtual Servers #### server { # from file /opt/fr3/etc/raddb/radiusd.conf } # server server dhcp { # from file /opt/fr3/etc/raddb/sites-enabled/dhcp # Loading dictionary.dhcp # Loading dhcp DHCP-Discover {...} # Loading dhcp DHCP-Request {...} # Loading dhcp {...} } # server dhcp radiusd: #### Opening IP addresses and Ports #### listen { type = "dhcp" ipaddr = 0.0.0.0 port = 67 } Listening on dhcp interface br0 address * port 67 as server dhcp Opening new proxy socket 'proxy address * port 0' Listening on proxy address * port 47763 Ready to process requests. Received DHCP-Discover of id a035ab0e from 0.0.0.0:68 to 255.255.255.255:67 DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 2687871758 DHCP-Number-of-Seconds = 12 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 = 0.0.0.0 DHCP-Client-Hardware-Address = 84:51:81:af:c6:09 DHCP-Message-Type += DHCP-Discover DHCP-DHCP-Maximum-Msg-Size += 1500 DHCP-Vendor-Class-Identifier += 'dhcpcd-5.5.6' DHCP-Hostname += 'android-4a8418b114cc23c9' DHCP-Parameter-Request-List += DHCP-Subnet-Mask DHCP-Parameter-Request-List += DHCP-Static-Routes DHCP-Parameter-Request-List += DHCP-Router-Address DHCP-Parameter-Request-List += DHCP-Domain-Name-Server DHCP-Parameter-Request-List += DHCP-Domain-Name DHCP-Parameter-Request-List += DHCP-Broadcast-Address DHCP-Parameter-Request-List += DHCP-IP-Address-Lease-Time DHCP-Parameter-Request-List += DHCP-Renewal-Time DHCP-Parameter-Request-List += DHCP-Rebinding-Time Trying sub-section dhcp DHCP-Discover {...} (0) dhcp DHCP-Discover { (0) update reply { (0) DHCP-Message-Type = DHCP-Offer (0) } # update reply = noop (0) ? if (DHCP-Client-Hardware-Address == "84:51:81:af:c6:09") (0) ? if (DHCP-Client-Hardware-Address == "84:51:81:af:c6:09") -> FALSE (0) update reply { (0) DHCP-Domain-Name-Server = 10.0.0.99 (0) DHCP-Subnet-Mask = 255.255.255.192 (0) DHCP-Router-Address = 10.0.0.100 (0) DHCP-IP-Address-Lease-Time = 120 (0) DHCP-DHCP-Server-Identifier = 10.0.0.101 (0) } # update reply = noop (0) [ok] = ok (0) } # dhcp DHCP-Discover = ok DHCP: Failed to find DHCP-Your-IP-Address for request. Encoding DHCP-Offer of id a035ab0e from 0.0.0.0:67 to 0.0.0.0:68 DHCP-Opcode = Server-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 2687871758 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 = 10.0.0.101 DHCP-Gateway-IP-Address = 0.0.0.0 DHCP-Client-Hardware-Address = 84:51:81:af:c6:09 DHCP-Server-Host-Name = '' DHCP-Boot-Filename = '' DHCP-Subnet-Mask = 255.255.255.192 DHCP-Router-Address = 10.0.0.100 DHCP-Domain-Name-Server = 10.0.0.99 DHCP-IP-Address-Lease-Time = 120 DHCP-DHCP-Server-Identifier = 10.0.0.101 DHCP-DHCP-Maximum-Msg-Size += 1500 Sending DHCP-Offer of id a035ab0e from 0.0.0.0:67 to 0.0.0.0:68 (0) Finished request 0. Waking up in 0.3 seconds. Waking up in 4.6 seconds. (0) Cleaning up request packet ID 2687871758 with timestamp +14 Ready to process requests. -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Specialist, Infrastructure Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
Hi, OK, this was easier to trigger than I thought. Completely clean install of 3.0.x HEAD, default config. Debian wheezy 7.4, gcc 4.7.2. # cd raddb/ # ln -s ../mods-available/mac2ip mods-enabled/mac2ip # mkdir mods-config/passwd # echo "01:02:03:04:05:06,10.0.0.100" >> mods-config/passwd/mac2ip # /opt/fr3/sbin/radiusd -X radiusd: FreeRADIUS Version 3.0.2 (git #6cebeea), for host x86_64-unknown-linux-gnu, built on Mar 10 2014 at 21:18:23 Copyright (C) 1999-2014 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 For more information about these matters, see the file named COPYRIGHT Starting - reading configuration files ... including dictionary file /opt/fr3/share/freeradius/dictionary including dictionary file /opt/fr3/etc/raddb/dictionary including configuration file /opt/fr3/etc/raddb/radiusd.conf including configuration file /opt/fr3/etc/raddb/proxy.conf including configuration file /opt/fr3/etc/raddb/clients.conf including files in directory /opt/fr3/etc/raddb/mods-enabled/ including configuration file /opt/fr3/etc/raddb/mods-enabled/unix including configuration file /opt/fr3/etc/raddb/mods-enabled/echo including configuration file /opt/fr3/etc/raddb/mods-enabled/dhcp including configuration file /opt/fr3/etc/raddb/mods-enabled/cache_eap including configuration file /opt/fr3/etc/raddb/mods-enabled/dynamic_clients including configuration file /opt/fr3/etc/raddb/mods-enabled/ntlm_auth including configuration file /opt/fr3/etc/raddb/mods-enabled/always including configuration file /opt/fr3/etc/raddb/mods-enabled/soh including configuration file /opt/fr3/etc/raddb/mods-enabled/logintime including configuration file /opt/fr3/etc/raddb/mods-enabled/replicate including configuration file /opt/fr3/etc/raddb/mods-enabled/radutmp including configuration file /opt/fr3/etc/raddb/mods-enabled/attr_filter including configuration file /opt/fr3/etc/raddb/mods-enabled/pap including configuration file /opt/fr3/etc/raddb/mods-enabled/passwd including configuration file /opt/fr3/etc/raddb/mods-enabled/mac2ip including configuration file /opt/fr3/etc/raddb/mods-enabled/utf8 including configuration file /opt/fr3/etc/raddb/mods-enabled/expiration including configuration file /opt/fr3/etc/raddb/mods-enabled/expr including configuration file /opt/fr3/etc/raddb/mods-enabled/realm including configuration file /opt/fr3/etc/raddb/mods-enabled/eap including configuration file /opt/fr3/etc/raddb/mods-enabled/linelog including configuration file /opt/fr3/etc/raddb/mods-enabled/preprocess including configuration file /opt/fr3/etc/raddb/mods-enabled/digest including configuration file /opt/fr3/etc/raddb/mods-enabled/detail including configuration file /opt/fr3/etc/raddb/mods-enabled/files including configuration file /opt/fr3/etc/raddb/mods-enabled/exec including configuration file /opt/fr3/etc/raddb/mods-enabled/sradutmp including configuration file /opt/fr3/etc/raddb/mods-enabled/detail.log including configuration file /opt/fr3/etc/raddb/mods-enabled/chap including configuration file /opt/fr3/etc/raddb/mods-enabled/mschap including files in directory /opt/fr3/etc/raddb/policy.d/ including configuration file /opt/fr3/etc/raddb/policy.d/operator-name including configuration file /opt/fr3/etc/raddb/policy.d/canonicalization including configuration file /opt/fr3/etc/raddb/policy.d/dhcp including configuration file /opt/fr3/etc/raddb/policy.d/cui including configuration file /opt/fr3/etc/raddb/policy.d/filter including configuration file /opt/fr3/etc/raddb/policy.d/eap including configuration file /opt/fr3/etc/raddb/policy.d/control including configuration file /opt/fr3/etc/raddb/policy.d/accounting including files in directory /opt/fr3/etc/raddb/sites-enabled/ including configuration file /opt/fr3/etc/raddb/sites-enabled/default including configuration file /opt/fr3/etc/raddb/sites-enabled/inner-tunnel main { security { allow_core_dumps = no } } main { name = "radiusd" prefix = "/opt/fr3" localstatedir = "/opt/fr3/var" sbindir = "/opt/fr3/sbin" logdir = "/opt/fr3/var/log/radius" run_dir = "/opt/fr3/var/run/radiusd" libdir = "/opt/fr3/lib" radacctdir = "/opt/fr3/var/log/radius/radacct" hostname_lookups = no max_request_time = 30 cleanup_delay = 5 max_requests = 1024 pidfile = "/opt/fr3/var/run/radiusd/radiusd.pid" checkrad = "/opt/fr3/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes } 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 = <<< secret >>> response_window = 20 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 num_answers_to_alive = 3 revive_interval = 120 status_check_timeout = 4 coa { irt = 2 mrt = 16 mrc = 5 mrd = 30 } limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } } 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 = <<< secret >>> nas_type = "other" proto = "*" limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } radiusd: #### Instantiating modules #### instantiate { } modules { # Loaded module rlm_unix # Instantiating module "unix" from file /opt/fr3/etc/raddb/mods-enabled/unix unix { radwtmp = "/opt/fr3/var/log/radius/radwtmp" } # Loaded module rlm_exec # Instantiating module "echo" from file /opt/fr3/etc/raddb/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_dhcp # Instantiating module "dhcp" from file /opt/fr3/etc/raddb/mods-enabled/dhcp # Loaded module rlm_cache # Instantiating module "cache_eap" from file /opt/fr3/etc/raddb/mods-enabled/cache_eap cache cache_eap { key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 16384 epoch = 0 add_stats = no } # Loaded module rlm_dynamic_clients # Instantiating module "dynamic_clients" from file /opt/fr3/etc/raddb/mods-enabled/dynamic_clients # Instantiating module "ntlm_auth" from file /opt/fr3/etc/raddb/mods-enabled/ntlm_auth exec ntlm_auth { wait = yes program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN --username=%{mschap:User-Name} --password=%{User-Password}" shell_escape = yes } # Loaded module rlm_always # Instantiating module "reject" from file /opt/fr3/etc/raddb/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Instantiating module "fail" from file /opt/fr3/etc/raddb/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Instantiating module "ok" from file /opt/fr3/etc/raddb/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Instantiating module "handled" from file /opt/fr3/etc/raddb/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Instantiating module "invalid" from file /opt/fr3/etc/raddb/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Instantiating module "userlock" from file /opt/fr3/etc/raddb/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Instantiating module "notfound" from file /opt/fr3/etc/raddb/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Instantiating module "noop" from file /opt/fr3/etc/raddb/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Instantiating module "updated" from file /opt/fr3/etc/raddb/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_soh # Instantiating module "soh" from file /opt/fr3/etc/raddb/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_logintime # Instantiating module "logintime" from file /opt/fr3/etc/raddb/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_replicate # Instantiating module "replicate" from file /opt/fr3/etc/raddb/mods-enabled/replicate # Loaded module rlm_radutmp # Instantiating module "radutmp" from file /opt/fr3/etc/raddb/mods-enabled/radutmp radutmp { filename = "/opt/fr3/var/log/radius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_attr_filter # Instantiating module "attr_filter.post-proxy" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /opt/fr3/etc/raddb/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/opt/fr3/etc/raddb/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } reading pairlist file /opt/fr3/etc/raddb/mods-config/attr_filter/accounting_response # Loaded module rlm_pap # Instantiating module "pap" from file /opt/fr3/etc/raddb/mods-enabled/pap pap { auto_header = no normalise = yes } # Loaded module rlm_passwd # Instantiating module "etc_passwd" from file /opt/fr3/etc/raddb/mods-enabled/passwd passwd etc_passwd { filename = "/etc/passwd" format = "*User-Name:Crypt-Password:" delimiter = ":" ignore_nislike = no ignore_empty = yes allow_multiple_keys = no hash_size = 100 } rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Instantiating module "mac2ip" from file /opt/fr3/etc/raddb/mods-enabled/mac2ip passwd mac2ip { filename = "/opt/fr3/etc/raddb/mods-config/passwd/mac2ip" format = "*DHCP-Client-Hardware-Address:=DHCP-Your-IP-Address" delimiter = "," ignore_nislike = yes ignore_empty = yes allow_multiple_keys = no hash_size = 100 } rlm_passwd: unable to resolve attribute: DHCP-Client-Hardware-Address /opt/fr3/etc/raddb/mods-enabled/mac2ip[21]: Instantiation failed for module "mac2ip" *** glibc detected *** /opt/fr3/sbin/radiusd: double free or corruption (fasttop): 0x0000000000af9990 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x76d76)[0x7f88061cdd76] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x7f88061d2b1c] /opt/fr3/lib/rlm_passwd.so(+0x1448)[0x7f88042e9448] /opt/fr3/lib/rlm_passwd.so(+0x2428)[0x7f88042ea428] /usr/lib/x86_64-linux-gnu/libtalloc.so.2(+0x72d9)[0x7f880780c2d9] /usr/lib/x86_64-linux-gnu/libtalloc.so.2(_talloc_free+0x113)[0x7f88078088b3] /opt/fr3/sbin/radiusd(find_module_instance+0x38c)[0x421050] /opt/fr3/sbin/radiusd(setup_modules+0x49f)[0x4231bd] /opt/fr3/sbin/radiusd(read_mainconfig+0x90d)[0x41fd34] /opt/fr3/sbin/radiusd(main+0x64c)[0x428a07] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x7f8806175ead] /opt/fr3/sbin/radiusd[0x40d699] ======= Memory map: ======== 00400000-00464000 r-xp 00000000 fd:00 132243 /opt/fr3/sbin/radiusd 00664000-0066a000 rw-p 00064000 fd:00 132243 /opt/fr3/sbin/radiusd 0066a000-0066b000 rw-p 00000000 00:00 0 008ec000-00afd000 rw-p 00000000 00:00 0 [heap] 7f8800000000-7f8800021000 rw-p 00000000 00:00 0 7f8800021000-7f8804000000 ---p 00000000 00:00 0 7f88040d2000-7f88040e7000 r-xp 00000000 fd:00 131627 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f88040e7000-7f88042e7000 ---p 00015000 fd:00 131627 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f88042e7000-7f88042e8000 rw-p 00015000 fd:00 131627 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f88042e8000-7f88042ec000 r-xp 00000000 fd:00 131778 /opt/fr3/lib/rlm_passwd.so 7f88042ec000-7f88044eb000 ---p 00004000 fd:00 131778 /opt/fr3/lib/rlm_passwd.so 7f88044eb000-7f88044ec000 rw-p 00003000 fd:00 131778 /opt/fr3/lib/rlm_passwd.so 7f88044ec000-7f88044f1000 r-xp 00000000 fd:00 131774 /opt/fr3/lib/rlm_pap.so 7f88044f1000-7f88046f1000 ---p 00005000 fd:00 131774 /opt/fr3/lib/rlm_pap.so 7f88046f1000-7f88046f2000 rw-p 00005000 fd:00 131774 /opt/fr3/lib/rlm_pap.so 7f88046f2000-7f88046f4000 r-xp 00000000 fd:00 131657 /opt/fr3/lib/rlm_attr_filter.so 7f88046f4000-7f88048f4000 ---p 00002000 fd:00 131657 /opt/fr3/lib/rlm_attr_filter.so 7f88048f4000-7f88048f5000 rw-p 00002000 fd:00 131657 /opt/fr3/lib/rlm_attr_filter.so 7f88048f5000-7f88048f9000 r-xp 00000000 fd:00 131803 /opt/fr3/lib/rlm_radutmp.so 7f88048f9000-7f8804af8000 ---p 00004000 fd:00 131803 /opt/fr3/lib/rlm_radutmp.so 7f8804af8000-7f8804af9000 rw-p 00003000 fd:00 131803 /opt/fr3/lib/rlm_radutmp.so 7f8804af9000-7f8804afb000 r-xp 00000000 fd:00 131811 /opt/fr3/lib/rlm_replicate.so 7f8804afb000-7f8804cfb000 ---p 00002000 fd:00 131811 /opt/fr3/lib/rlm_replicate.so 7f8804cfb000-7f8804cfc000 rw-p 00002000 fd:00 131811 /opt/fr3/lib/rlm_replicate.so 7f8804cfc000-7f8804cff000 r-xp 00000000 fd:00 131757 /opt/fr3/lib/rlm_logintime.so 7f8804cff000-7f8804efe000 ---p 00003000 fd:00 131757 /opt/fr3/lib/rlm_logintime.so 7f8804efe000-7f8804eff000 rw-p 00002000 fd:00 131757 /opt/fr3/lib/rlm_logintime.so 7f8804eff000-7f8804f01000 r-xp 00000000 fd:00 131976 /opt/fr3/lib/rlm_soh.so 7f8804f01000-7f8805100000 ---p 00002000 fd:00 131976 /opt/fr3/lib/rlm_soh.so 7f8805100000-7f8805101000 rw-p 00001000 fd:00 131976 /opt/fr3/lib/rlm_soh.so 7f8805101000-7f8805103000 r-xp 00000000 fd:00 131654 /opt/fr3/lib/rlm_always.so 7f8805103000-7f8805302000 ---p 00002000 fd:00 131654 /opt/fr3/lib/rlm_always.so 7f8805302000-7f8805303000 rw-p 00001000 fd:00 131654 /opt/fr3/lib/rlm_always.so 7f8805303000-7f8805305000 r-xp 00000000 fd:00 131684 /opt/fr3/lib/rlm_dynamic_clients.so 7f8805305000-7f8805504000 ---p 00002000 fd:00 131684 /opt/fr3/lib/rlm_dynamic_clients.so 7f8805504000-7f8805505000 rw-p 00001000 fd:00 131684 /opt/fr3/lib/rlm_dynamic_clients.so 7f8805505000-7f880550a000 r-xp 00000000 fd:00 131660 /opt/fr3/lib/rlm_cache.so 7f880550a000-7f8805709000 ---p 00005000 fd:00 131660 /opt/fr3/lib/rlm_cache.so 7f8805709000-7f880570a000 rw-p 00004000 fd:00 131660 /opt/fr3/lib/rlm_cache.so 7f880570a000-7f8805711000 r-xp 00000000 fd:00 132235 /opt/fr3/lib/rlm_dhcp.so 7f8805711000-7f8805910000 ---p 00007000 fd:00 132235 /opt/fr3/lib/rlm_dhcp.so 7f8805910000-7f8805911000 rw-p 00006000 fd:00 132235 /opt/fr3/lib/rlm_dhcp.so 7f8805911000-7f8805914000 r-xp 00000000 fd:00 131724 /opt/fr3/lib/rlm_exec.so 7f8805914000-7f8805b13000 ---p 00003000 fd:00 131724 /opt/fr3/lib/rlm_exec.so 7f8805b13000-7f8805b14000 rw-p 00002000 fd:00 131724 /opt/fr3/lib/rlm_exec.so 7f8805b14000-7f8805b17000 r-xp 00000000 fd:00 132138 /opt/fr3/lib/rlm_unix.so 7f8805b17000-7f8805d16000 ---p 00003000 fd:00 132138 /opt/fr3/lib/rlm_unix.so 7f8805d16000-7f8805d17000 rw-p 00002000 fd:00 132138 /opt/fr3/lib/rlm_unix.so 7f8805d17000-7f8805d3c000 r-xp 00000000 fd:00 131119 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f8805d3c000-7f8805f3b000 ---p 00025000 fd:00 131119 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f8805f3b000-7f8805f3f000 r--p 00024000 fd:00 131119 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f8805f3f000-7f8805f40000 rw-p 00028000 fd:00 131119 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f8805f40000-7f8805f56000 r-xp 00000000 fd:00 131449 /lib/x86_64-linux-gnu/libz.so.1.2.7 7f8805f56000-7f8806155000 ---p 00016000 fd:00 131449 /lib/x86_64-linux-gnu/libz.so.1.2.7 7f8806155000-7f8806156000 r--p 00015000 fd:00 131449 /lib/x86_64-linux-gnu/libz.so.1.2.7 7f8806156000-7f8806157000 rw-p 00016000 fd:00 131449 /lib/x86_64-linux-gnu/libz.so.1.2.7 7f8806157000-7f88062d9000 r-xp 00000000 fd:00 131934 /lib/x86_64-linux-gnu/libc-2.13.so 7f88062d9000-7f88064d8000 ---p 00182000 fd:00 131934 /lib/x86_64-linux-gnu/libc-2.13.so 7f88064d8000-7f88064dc000 r--p 00181000 fd:00 131934 /lib/x86_64-linux-gnu/libc-2.13.so 7f88064dc000-7f88064dd000 rw-p 00185000 fd:00 131934 /lib/x86_64-linux-gnu/libc-2.13.so 7f88064dd000-7f88064e2000 rw-p 00000000 00:00 0 7f88064e2000-7f88064ea000 r-xp 00000000 fd:00 131943 /lib/x86_64-linux-gnu/libcrypt-2.13.so 7f88064ea000-7f88066e9000 ---p 00008000 fd:00 131943 /lib/x86_64-linux-gnu/libcrypt-2.13.so 7f88066e9000-7f88066ea000 r--p 00007000 fd:00 131943 /lib/x86_64-linux-gnu/libcrypt-2.13.so 7f88066ea000-7f88066eb000 rw-p 00008000 fd:00 131943 /lib/x86_64-linux-gnu/libcrypt-2.13.so 7f88066eb000-7f8806719000 rw-p 00000000 00:00 0 7f8806719000-7f880676f000 r-xp 00000000 fd:0c 138231 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 7f880676f000-7f880696f000 ---p 00056000 fd:0c 138231 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 7f880696f000-7f8806972000 r--p 00056000 fd:0c 138231 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 7f8806972000-7f8806979000 rw-p 00059000 fd:0c 138231 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 7f8806979000-7f88069b6000 r-xp 00000000 fd:00 131209 /lib/x86_64-linux-gnu/libreadline.so.6.2 7f88069b6000-7f8806bb6000 ---p 0003d000 fd:00 131209 /lib/x86_64-linux-gnu/libreadline.so.6.2 7f8806bb6000-7f8806bb8000 r--p 0003d000 fd:00 131209 /lib/x86_64-linux-gnu/libreadline.so.6.2 7f8806bb8000-7f8806bbe000 rw-p 0003f000 fd:00 131209 /lib/x86_64-linux-gnu/libreadline.so.6.2 7f8806bbe000-7f8806bc0000 rw-p 00000000 00:00 0 7f8806bc0000-7f8806bd7000 r-xp 00000000 fd:00 131960 /lib/x86_64-linux-gnu/libpthread-2.13.so 7f8806bd7000-7f8806dd6000 ---p 00017000 fd:00 131960 /lib/x86_64-linux-gnu/libpthread-2.13.so 7f8806dd6000-7f8806dd7000 r--p 00016000 fd:00 131960 /lib/x86_64-linux-gnu/libpthread-2.13.so 7f8806dd7000-7f8806dd8000 rw-p 00017000 fd:00 131960 /lib/x86_64-linux-gnu/libpthread-2.13.so 7f8806dd8000-7f8806ddc000 rw-p 00000000 00:00 0 7f8806ddc000-7f8806dde000 r-xp 00000000 fd:00 131955 /lib/x86_64-linux-gnu/libdl-2.13.so 7f8806dde000-7f8806fde000 ---p 00002000 fd:00 131955 /lib/x86_64-linux-gnu/libdl-2.13.so 7f8806fde000-7f8806fdf000 r--p 00002000 fd:00 131955 /lib/x86_64-linux-gnu/libdl-2.13.so 7f8806fdf000-7f8806fe0000 rw-p 00003000 fd:00 131955 /lib/x86_64-linux-gnu/libdl-2.13.so 7f8806fe0000-7f8806ff3000 r-xp 00000000 fd:00 131938 /lib/x86_64-linux-gnu/libresolv-2.13.so 7f8806ff3000-7f88071f2000 ---p 00013000 fd:00 131938 /lib/x86_64-linux-gnu/libresolv-2.13.so 7f88071f2000-7f88071f3000 r--p 00012000 fd:00 131938 /lib/x86_64-linux-gnu/libresolv-2.13.so 7f88071f3000-7f88071f4000 rw-p 00013000 fd:00 131938 /lib/x86_64-linux-gnu/libresolv-2.13.so 7f88071f4000-7f88071f6000 rw-p 00000000 00:00 0 7f88071f6000-7f880720b000 r-xp 00000000 fd:00 131951 /lib/x86_64-linux-gnu/libnsl-2.13.so 7f880720b000-7f880740a000 ---p 00015000 fd:00 131951 /lib/x86_64-linux-gnu/libnsl-2.13.so 7f880740a000-7f880740b000 r--p 00014000 fd:00 131951 /lib/x86_64-linux-gnu/libnsl-2.13.so 7f880740b000-7f880740c000 rw-p 00015000 fd:00 131951 /lib/x86_64-linux-gnu/libnsl-2.13.so 7f880740c000-7f880740e000 rw-p 00000000 00:00 0 7f880740e000-7f88075d8000 r-xp 00000000 fd:0c 137902 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7f88075d8000-7f88077d7000 ---p 001ca000 fd:0c 137902 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7f88077d7000-7f88077f2000 r--p 001c9000 fd:0c 137902 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7f88077f2000-7f8807801000 rw-p 001e4000 fd:0c 137902 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7f8807801000-7f8807805000 rw-p 00000000 00:00 0 7f8807805000-7f8807810000 r-xp 00000000 fd:0c 162232 /usr/lib/x86_64-linux-gnu/libtalloc.so.2.0.7 7f8807810000-7f8807a0f000 ---p 0000b000 fd:0c 162232 /usr/lib/x86_64-linux-gnu/libtalloc.so.2.0.7 7f8807a0f000-7f8807a10000 rw-p 0000a000 fd:0c 162232 /usr/lib/x86_64-linux-gnu/libtalloc.so.2.0.7 7f8807a10000-7f8807a12000 r-xp 00000000 fd:0c 132621 /usr/lib/x86_64-linux-gnu/libpcreposix.so.3.13.1 7f8807a12000-7f8807c11000 ---p 00002000 fd:0c 132621 /usr/lib/x86_64-linux-gnu/libpcreposix.so.3.13.1 7f8807c11000-7f8807c12000 rw-p 00001000 fd:0c 132621 /usr/lib/x86_64-linux-gnu/libpcreposix.so.3.13.1 7f8807c12000-7f8807c4e000 r-xp 00000000 fd:00 132283 /lib/x86_64-linux-gnu/libpcre.so.3.13.1 7f8807c4e000-7f8807e4e000 ---p 0003c000 fd:00 132283 /lib/x86_64-linux-gnu/libpcre.so.3.13.1 7f8807e4e000-7f8807e4f000 rw-p 0003c000 fd:00 132283 /lib/x86_64-linux-gnu/libpcre.so.3.13.1 7f8807e4f000-7f8807e5a000 r-xp 00000000 fd:00 131687 /opt/fr3/lib/libfreeradius-eap.so 7f8807e5a000-7f8808059000 ---p 0000b000 fd:00 131687 /opt/fr3/lib/libfreeradius-eap.so 7f8808059000-7f880805a000 rw-p 0000a000 fd:00 131687 /opt/fr3/lib/libfreeradius-eap.so 7f880805a000-7f8808094000 r-xp 00000000 fd:00 131649 /opt/fr3/lib/libfreeradius-radius.so 7f8808094000-7f8808294000 ---p 0003a000 fd:00 131649 /opt/fr3/lib/libfreeradius-radius.so 7f8808294000-7f8808296000 rw-p 0003a000 fd:00 131649 /opt/fr3/lib/libfreeradius-radius.so 7f8808296000-7f8808297000 rw-p 00000000 00:00 0 7f8808297000-7f88082bf000 r-xp 00000000 fd:00 132277 /opt/fr3/lib/libfreeradius-server.so 7f88082bf000-7f88084be000 ---p 00028000 fd:00 132277 /opt/fr3/lib/libfreeradius-server.so 7f88084be000-7f88084c0000 rw-p 00027000 fd:00 132277 /opt/fr3/lib/libfreeradius-server.so 7f88084c0000-7f88084e0000 r-xp 00000000 fd:00 131964 /lib/x86_64-linux-gnu/ld-2.13.so 7f88086b0000-7f88086b8000 rw-p 00000000 00:00 0 7f88086dc000-7f88086df000 rw-p 00000000 00:00 0 7f88086df000-7f88086e0000 r--p 0001f000 fd:00 131964 /lib/x86_64-linux-gnu/ld-2.13.so 7f88086e0000-7f88086e1000 rw-p 00020000 fd:00 131964 /lib/x86_64-linux-gnu/ld-2.13.so 7f88086e1000-7f88086e2000 rw-p 00000000 00:00 0 7fff5c8b4000-7fff5c8d5000 rw-p 00000000 00:00 0 [stack] 7fff5c9ff000-7fff5ca00000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] FATAL SIGNAL: Aborted Backtrace of last 17 frames: /opt/fr3/lib/libfreeradius-radius.so(fr_fault+0x72) [0x7f8808063a59] /lib/x86_64-linux-gnu/libpthread.so.0(+0xf030) [0x7f8806bcf030] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f8806189475] /lib/x86_64-linux-gnu/libc.so.6(abort+0x180) [0x7f880618c6f0] /lib/x86_64-linux-gnu/libc.so.6(+0x6d52b) [0x7f88061c452b] /lib/x86_64-linux-gnu/libc.so.6(+0x76d76) [0x7f88061cdd76] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c) [0x7f88061d2b1c] /opt/fr3/lib/rlm_passwd.so(+0x1448) [0x7f88042e9448] /opt/fr3/lib/rlm_passwd.so(+0x2428) [0x7f88042ea428] /usr/lib/x86_64-linux-gnu/libtalloc.so.2(+0x72d9) [0x7f880780c2d9] /usr/lib/x86_64-linux-gnu/libtalloc.so.2(_talloc_free+0x113) [0x7f88078088b3] /opt/fr3/sbin/radiusd(find_module_instance+0x38c) [0x421050] /opt/fr3/sbin/radiusd(setup_modules+0x49f) [0x4231bd] /opt/fr3/sbin/radiusd(read_mainconfig+0x90d) [0x41fd34] /opt/fr3/sbin/radiusd(main+0x64c) [0x428a07] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f8806175ead] /opt/fr3/sbin/radiusd() [0x40d699] No panic action set _EXIT CALLED /home/mcn/git/freeradius-server/src/lib/debug.c[262]: 1: # DHCP-Client-Hardware-Address is definitely there, so I'm not entirely sure what rlm_passwd is complaining about: # grep DHCP-Client-Hardware-Address /opt/fr3/share/freeradius/dictionary.dhcp ATTRIBUTE DHCP-Client-Hardware-Address 267 ether # 16 octets # Backtrace from gdb: Program received signal SIGABRT, Aborted. 0x00007ffff5aa6475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007ffff5aa6475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007ffff5aa96f0 in *__GI_abort () at abort.c:92 #2 0x00007ffff5ae152b in __libc_message (do_abort=<optimized out>, fmt=<optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189 #3 0x00007ffff5aead76 in malloc_printerr (action=3, str=0x7ffff5bc4840 "double free or corruption (fasttop)", ptr=<optimized out>) at malloc.c:6312 #4 0x00007ffff5aefb1c in *__GI___libc_free (mem=<optimized out>) at malloc.c:3738 #5 0x00007ffff3c06448 in release_ht (ht=0x87abe0) at /home/mcn/git/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:153 #6 0x00007ffff3c07428 in mod_detach (instance=0x879e80) at /home/mcn/git/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:515 #7 0x00007ffff71292d9 in ?? () from /usr/lib/x86_64-linux-gnu/libtalloc.so.2 #8 0x00007ffff71258b3 in _talloc_free () from /usr/lib/x86_64-linux-gnu/libtalloc.so.2 #9 0x0000000000421050 in find_module_instance (modules=0x8048b0, askedname=0x819040 "mac2ip", do_link=1) at /home/mcn/git/freeradius-server/src/main/modules.c:656 #10 0x00000000004231bd in setup_modules (reload=0, config=0x6890e0) at /home/mcn/git/freeradius-server/src/main/modules.c:1710 #11 0x000000000041fd34 in read_mainconfig (reload=0) at /home/mcn/git/freeradius-server/src/main/mainconfig.c:977 #12 0x0000000000428a07 in main (argc=2, argv=0x7fffffffec18) at /home/mcn/git/freeradius-server/src/main/radiusd.c:324 (gdb) Cheers, Matthew -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Specialist, Infrastructure Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
Matthew Newton wrote:
# cd raddb/ # ln -s ../mods-available/mac2ip mods-enabled/mac2ip # mkdir mods-config/passwd # echo "01:02:03:04:05:06,10.0.0.100" >> mods-config/passwd/mac2ip
I've pushed a fix for rlm_passwd. It was freeing things, but not setting the pointer to NULL... and then trying to free them again. That only happened in the v3 branch, so v2 is OK. And rlm_passwd is... horrific in it's code "quality". Oh well. It now complains "unable to resolve attribute: DHCP-Client-Hardware-Address" without crashing, which is a step ahead. I'll have to think about how to fix that one. I may have to push a fix tomorrow. Alan DeKok.
On Mon, Mar 10, 2014 at 06:44:57PM -0400, Alan DeKok wrote:
Matthew Newton wrote:
# cd raddb/ # ln -s ../mods-available/mac2ip mods-enabled/mac2ip # mkdir mods-config/passwd # echo "01:02:03:04:05:06,10.0.0.100" >> mods-config/passwd/mac2ip
I've pushed a fix for rlm_passwd. It was freeing things, but not setting the pointer to NULL... and then trying to free them again.
Heh, I just did a pull request. Oh well.
And rlm_passwd is... horrific in it's code "quality". Oh well.
Yeah, I saw the comments...
It now complains "unable to resolve attribute: DHCP-Client-Hardware-Address" without crashing, which is a step ahead.
Wondering if that's the same thing that is causing DHCP-Client-Hardware-Address to not compare correctly in unlang that I'm seeing?
I'll have to think about how to fix that one. I may have to push a fix tomorrow.
No rush here, just trying to test before 3.0.2 gets out the door, unlike last time. Matthew -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Specialist, Infrastructure Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
Matthew Newton wrote:
I'll have to think about how to fix that one. I may have to push a fix tomorrow.
No rush here, just trying to test before 3.0.2 gets out the door, unlike last time.
I've pushed a fic for the unknown attribute error. It now works. Alan DeKok.
On Tue, Mar 11, 2014 at 10:23:16AM -0400, Alan DeKok wrote:
Matthew Newton wrote:
I'll have to think about how to fix that one. I may have to push a fix tomorrow.
No rush here, just trying to test before 3.0.2 gets out the door, unlike last time.
I've pushed a fic for the unknown attribute error. It now works.
Thanks, that looks good. mac2ip will get the IP and send the right DHCP response (the client machine seemed to swallow it OK, so looks good there too, will test further later this evening if I get a chance). Still an issue with unlang. This doesn't work, but I'm pretty sure it should (and the unlang manpage says it should): if (DHCP-Client-Hardware-Address == "02:01:04:05:06:07") { update reply { DHCP-Your-IP-Address := "10.0.0.102" } } (0) ? if (DHCP-Client-Hardware-Address == "02:01:04:05:06:07") (0) ? if (DHCP-Client-Hardware-Address == "02:01:04:05:06:07") -> FALSE (0) [ok] = ok Whereas this does work: if ("%{DHCP-Client-Hardware-Address}" == "02:01:04:05:06:07") { update reply { DHCP-Your-IP-Address := "10.0.0.102" } } (0) ? if ("%{DHCP-Client-Hardware-Address}" == "02:01:04:05:06:07") (0) expand: "%{DHCP-Client-Hardware-Address}" -> '02:01:04:05:06:07' (0) ? if ("%{DHCP-Client-Hardware-Address}" == "02:01:04:05:06:07") -> TRUE (0) if ("%{DHCP-Client-Hardware-Address}" == "02:01:04:05:06:07") { (0) update reply { (0) DHCP-Your-IP-Address := 10.0.0.102 (0) } # update reply = noop (0) } # if ("%{DHCP-Client-Hardware-Address}" == "02:01:04:05:06:07") = noop (0) [ok] = ok Is there a problem with the first comparison, or am I just being silly (won't be the first time!) Cheers, Matthew -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Specialist, Infrastructure Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
participants (2)
-
Alan DeKok -
Matthew Newton