Hello, I've got two different authentication issues. The server is meant to service both mac-based authentication (using authorized_macs file) and eap-tls using certificates. This is for a production environment where I have done my best to mimic our old setup which is working but on EOL software. In the logs I get "invalid user" for the mac-based auth and "eap_tls: ERROR: TLS alert werite:fatal:internal error. I've attached below the output of "freeradius -X", minus all the clients we have and with only one attempted auth per type of error. Let me know if you need any other data. Thanks, David le Roux FreeRADIUS Version 3.0.21 Copyright (C) 1999-2019 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 /usr/share/freeradius/dictionary including dictionary file /usr/share/freeradius/dictionary.dhcp including dictionary file /usr/share/freeradius/dictionary.vqp including dictionary file /etc/freeradius/3.0/dictionary including configuration file /etc/freeradius/3.0/radiusd.conf including configuration file /etc/freeradius/3.0/proxy.conf including configuration file /etc/freeradius/3.0/clients.conf including configuration file /etc/freeradius/3.0/mwanclients.conf including files in directory /etc/freeradius/3.0/mods-enabled/ including configuration file /etc/freeradius/3.0/mods-enabled/unpack including configuration file /etc/freeradius/3.0/mods-enabled/detail.log including configuration file /etc/freeradius/3.0/mods-enabled/detail including configuration file /etc/freeradius/3.0/mods-enabled/cache_eap including configuration file /etc/freeradius/3.0/mods-enabled/logintime including configuration file /etc/freeradius/3.0/mods-enabled/files including configuration file /etc/freeradius/3.0/mods-enabled/ntlm_auth including configuration file /etc/freeradius/3.0/mods-enabled/replicate including configuration file /etc/freeradius/3.0/mods-enabled/pap including configuration file /etc/freeradius/3.0/mods-enabled/sradutmp including configuration file /etc/freeradius/3.0/mods-enabled/linelog including configuration file /etc/freeradius/3.0/mods-enabled/realm including configuration file /etc/freeradius/3.0/mods-enabled/preprocess including configuration file /etc/freeradius/3.0/mods-enabled/exec including configuration file /etc/freeradius/3.0/mods-enabled/expr including configuration file /etc/freeradius/3.0/mods-enabled/echo including configuration file /etc/freeradius/3.0/mods-enabled/digest including configuration file /etc/freeradius/3.0/mods-enabled/dynamic_clients including configuration file /etc/freeradius/3.0/mods-enabled/radutmp including configuration file /etc/freeradius/3.0/mods-enabled/utf8 including configuration file /etc/freeradius/3.0/mods-enabled/passwd including configuration file /etc/freeradius/3.0/mods-enabled/unix including configuration file /etc/freeradius/3.0/mods-enabled/eap including configuration file /etc/freeradius/3.0/mods-enabled/attr_filter including configuration file /etc/freeradius/3.0/mods-enabled/expiration including configuration file /etc/freeradius/3.0/mods-enabled/soh including configuration file /etc/freeradius/3.0/mods-enabled/always including configuration file /etc/freeradius/3.0/mods-enabled/mschap including configuration file /etc/freeradius/3.0/mods-enabled/chap including files in directory /etc/freeradius/3.0/policy.d/ including configuration file /etc/freeradius/3.0/policy.d/control including configuration file /etc/freeradius/3.0/policy.d/dhcp including configuration file /etc/freeradius/3.0/policy.d/debug including configuration file /etc/freeradius/3.0/policy.d/operator-name including configuration file /etc/freeradius/3.0/policy.d/filter including configuration file /etc/freeradius/3.0/policy.d/cui including configuration file /etc/freeradius/3.0/policy.d/canonicalization including configuration file /etc/freeradius/3.0/policy.d/abfab-tr including configuration file /etc/freeradius/3.0/policy.d/moonshot-targeted-ids including configuration file /etc/freeradius/3.0/policy.d/rfc7542 including configuration file /etc/freeradius/3.0/policy.d/accounting including configuration file /etc/freeradius/3.0/policy.d/eap including files in directory /etc/freeradius/3.0/sites-enabled/ including configuration file /etc/freeradius/3.0/sites-enabled/inner-tunnel including configuration file /etc/freeradius/3.0/sites-enabled/mh-site main { security { user = "freerad" group = "freerad" allow_core_dumps = no } name = "freeradius" prefix = "/usr" localstatedir = "/var" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" } main { name = "freeradius" prefix = "/usr" localstatedir = "/var" sbindir = "/usr/sbin" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/freeradius/radacct" hostname_lookups = no max_request_time = 120 cleanup_delay = 10 max_requests = 80000 pidfile = "/var/run/freeradius/freeradius.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes msg_denied = "You are already logged in - access denied" } resources { } security { max_attributes = 200 reject_delay = 1.000000 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.000000 response_timeouts = 1 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 revive_interval = 120 limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } coa { 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 127.0.0.1 { ipaddr = 127.0.0.1 require_message_authenticator = no secret = <<< secret >>> shortname = "localhost" limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } } Debugger not attached systemd watchdog is disabled # Creating Auth-Type = mschap # Creating Auth-Type = eap # Creating Auth-Type = PAP # Creating Auth-Type = CHAP # Creating Auth-Type = MS-CHAP radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /etc/freeradius/3.0/mods-enabled/unpack # Loaded module rlm_detail # Loading module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail auth_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail reply_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail pre_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail post_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "detail" from file /etc/freeradius/3.0/mods-enabled/detail detail { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loaded module rlm_cache # Loading module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap cache cache_eap { driver = "rlm_cache_rbtree" key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 0 epoch = 0 add_stats = no } # Loaded module rlm_logintime # Loading module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_files # Loading module "files" from file /etc/freeradius/3.0/mods-enabled/files files { filename = "/etc/freeradius/3.0/mods-config/files/authorize" acctusersfile = "/etc/freeradius/3.0/mods-config/files/accounting" preproxy_usersfile = "/etc/freeradius/3.0/mods-config/files/pre-proxy" } # Loading module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files files authorized_macs { usersfile = "/etc/freeradius/3.0/authorized_macs" key = "%{Calling-Station-ID}" } # Loaded module rlm_exec # Loading module "ntlm_auth" from file /etc/freeradius/3.0/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_replicate # Loading module "replicate" from file /etc/freeradius/3.0/mods-enabled/replicate # Loaded module rlm_pap # Loading module "pap" from file /etc/freeradius/3.0/mods-enabled/pap pap { normalise = yes } # Loaded module rlm_radutmp # Loading module "sradutmp" from file /etc/freeradius/3.0/mods-enabled/sradutmp radutmp sradutmp { filename = "/var/log/freeradius/sradutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 420 caller_id = no } # Loaded module rlm_linelog # Loading module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog linelog { filename = "/var/log/freeradius/linelog" escape_filenames = no syslog_severity = "info" permissions = 384 format = "This is a log message for %{User-Name}" reference = "messages.%{%{reply:Packet-Type}:-default}" } # Loading module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog linelog log_accounting { filename = "/var/log/freeradius/linelog-accounting" escape_filenames = no syslog_severity = "info" permissions = 384 format = "" reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}" } # Loaded module rlm_realm # Loading module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm realm IPASS { format = "prefix" delimiter = "/" ignore_default = no ignore_null = no } # Loading module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Loading module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm realm bangpath { format = "prefix" delimiter = "!" ignore_default = no ignore_null = no } # Loading module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm realm realmpercent { format = "suffix" delimiter = "%" ignore_default = no ignore_null = no } # Loading module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm realm ntdomain { format = "prefix" delimiter = "\\" ignore_default = no ignore_null = no } # Loaded module rlm_preprocess # Loading module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess preprocess { huntgroups = "/etc/freeradius/3.0/mods-config/preprocess/huntgroups" hints = "/etc/freeradius/3.0/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 } # Loading module "exec" from file /etc/freeradius/3.0/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Loaded module rlm_expr # Loading module "expr" from file /etc/freeradius/3.0/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loading module "echo" from file /etc/freeradius/3.0/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_digest # Loading module "digest" from file /etc/freeradius/3.0/mods-enabled/digest # Loaded module rlm_dynamic_clients # Loading module "dynamic_clients" from file /etc/freeradius/3.0/mods-enabled/dynamic_clients # Loading module "radutmp" from file /etc/freeradius/3.0/mods-enabled/radutmp radutmp { filename = "/var/log/freeradius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_utf8 # Loading module "utf8" from file /etc/freeradius/3.0/mods-enabled/utf8 # Loaded module rlm_passwd # Loading module "etc_passwd" from file /etc/freeradius/3.0/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 } # Loaded module rlm_unix # Loading module "unix" from file /etc/freeradius/3.0/mods-enabled/unix unix { radwtmp = "/var/log/freeradius/radwtmp" } Creating attribute Unix-Group # Loaded module rlm_eap # Loading module "eap" from file /etc/freeradius/3.0/mods-enabled/eap eap { default_eap_type = "tls" timer_expire = 600 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 80000 } # Loaded module rlm_attr_filter # Loading module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/etc/freeradius/3.0/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } # Loaded module rlm_expiration # Loading module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Loaded module rlm_soh # Loading module "soh" from file /etc/freeradius/3.0/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_always # Loading module "reject" from file /etc/freeradius/3.0/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Loading module "fail" from file /etc/freeradius/3.0/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Loading module "ok" from file /etc/freeradius/3.0/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Loading module "handled" from file /etc/freeradius/3.0/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Loading module "invalid" from file /etc/freeradius/3.0/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Loading module "userlock" from file /etc/freeradius/3.0/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Loading module "notfound" from file /etc/freeradius/3.0/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Loading module "noop" from file /etc/freeradius/3.0/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Loading module "updated" from file /etc/freeradius/3.0/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_mschap # Loading module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = yes passchange { } allow_retry = yes winbind_retry_with_normalised_username = no } # Loaded module rlm_chap # Loading module "chap" from file /etc/freeradius/3.0/mods-enabled/chap instantiate { } # Instantiating module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail output # Instantiating module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "detail" from file /etc/freeradius/3.0/mods-enabled/detail # Instantiating module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree) loaded and linked # Instantiating module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime # Instantiating module "files" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/mods-config/files/authorize reading pairlist file /etc/freeradius/3.0/mods-config/files/accounting reading pairlist file /etc/freeradius/3.0/mods-config/files/pre-proxy # Instantiating module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/authorized_macs # Instantiating module "pap" from file /etc/freeradius/3.0/mods-enabled/pap # Instantiating module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/huntgroups reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/hints # Instantiating module "etc_passwd" from file /etc/freeradius/3.0/mods-enabled/passwd rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Instantiating module "eap" from file /etc/freeradius/3.0/mods-enabled/eap # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { verify_depth = 0 ca_path = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/" pem_file_type = yes private_key_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.key" certificate_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.pem" ca_file = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/ca_and_crl.pem" dh_file = "/etc/freeradius/3.0/certs/dh" fragment_size = 1024 include_length = yes auto_chain = yes check_crl = no check_all_crl = no check_cert_cn = "%{Cert-CN}" cipher_list = "DEFAULT" cipher_server_preference = no check_cert_issuer = "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" ecdh_curve = "prime256v1" tls_max_version = "1.2" tls_min_version = "1.2" cache { enable = no lifetime = 24 max_entries = 255 } verify { skip_if_ocsp_ok = no } ocsp { enable = no override_cert_url = yes url = "http://127.0.0.1/ocsp/" use_nonce = yes timeout = 0 softfail = no } } # 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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_peap peap { tls = "tls-common" default_eap_type = "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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_mschapv2 mschapv2 { with_ntdomain_hack = no send_error = no } # Instantiating module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/accounting_response # Instantiating module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Instantiating module "reject" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "fail" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "ok" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "handled" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "invalid" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "userlock" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "notfound" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "noop" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "updated" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap rlm_mschap (mschap): using internal authentication } # modules radiusd: #### Loading Virtual Servers #### server { # from file /etc/freeradius/3.0/radiusd.conf } # server server inner-tunnel { # from file /etc/freeradius/3.0/sites-enabled/inner-tunnel # Loading authenticate {...} # Loading authorize {...} Ignoring "sql" (see raddb/mods-available/README.rst) Ignoring "ldap" (see raddb/mods-available/README.rst) # Loading session {...} # Loading post-proxy {...} # Loading post-auth {...} # Skipping contents of 'if' as it is always 'false' -- /etc/freeradius/3.0/sites-enabled/inner-tunnel:336 } # server inner-tunnel server mh-site { # from file /etc/freeradius/3.0/sites-enabled/mh-site # Loading authenticate {...} # Loading authorize {...} # Loading post-proxy {...} } # server mh-site radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = 127.0.0.1 port = 18120 } listen { type = "auth" ipaddr = 10.10.251.2 port = 1812 } Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address 10.10.251.2 port 1812 bound to server mh-site Listening on proxy address * port 37879 Ready to process requests (0) Received Access-Request Id 38 from 10.40.80.11:1812 to 10.10.251.2:1812 length 367 (0) Framed-MTU = 1480 (0) NAS-IP-Address = 10.40.80.11 (0) NAS-Identifier = "no-sw01" (0) User-Name = "host/mh301435.millerextra.com" (0) Service-Type = Framed-User (0) Framed-Protocol = PPP (0) NAS-Port = 10 (0) NAS-Port-Type = Ethernet (0) NAS-Port-Id = "10" (0) Called-Station-Id = "a0-b3-cc-36-17-40" (0) Calling-Station-Id = "d8-9e-f3-a0-2e-3c" (0) Connect-Info = "CONNECT Ethernet 100Mbps Full duplex" (0) Tunnel-Type:0 = VLAN (0) Tunnel-Medium-Type:0 = IEEE-802 (0) Tunnel-Private-Group-Id:0 = "2" (0) EAP-Message = 0x025e002201686f73742f6d683330313433352e6d696c6c657265787472612e636f6d (0) Message-Authenticator = 0x20656ac2b36c0cac3359a1e27c6ca340 (0) MS-RAS-Vendor = 11 (0) HP-Capability-Advert = 0x011a0000000b28 (0) HP-Capability-Advert = 0x011a0000000b2e (0) HP-Capability-Advert = 0x011a0000000b30 (0) HP-Capability-Advert = 0x011a0000000b3d (0) HP-Capability-Advert = 0x0138 (0) HP-Capability-Advert = 0x013a (0) HP-Capability-Advert = 0x0140 (0) HP-Capability-Advert = 0x0141 (0) HP-Capability-Advert = 0x0151 (0) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (0) authorize { (0) policy filter_username { (0) if (&User-Name) { (0) if (&User-Name) -> TRUE (0) if (&User-Name) { (0) if (&User-Name =~ / /) { (0) if (&User-Name =~ / /) -> FALSE (0) if (&User-Name =~ /@[^@]*@/ ) { (0) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (0) if (&User-Name =~ /\.\./ ) { (0) if (&User-Name =~ /\.\./ ) -> FALSE (0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (0) if (&User-Name =~ /\.$/) { (0) if (&User-Name =~ /\.$/) -> FALSE (0) if (&User-Name =~ /@\./) { (0) if (&User-Name =~ /@\./) -> FALSE (0) } # if (&User-Name) = notfound (0) } # policy filter_username = notfound (0) [preprocess] = ok (0) [chap] = noop (0) eap: Peer sent EAP Response (code 2) ID 94 length 34 (0) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (0) [eap] = ok (0) } # authorize = ok (0) Found Auth-Type = eap (0) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (0) authenticate { (0) eap: Peer sent packet with method EAP Identity (1) (0) eap: Calling submodule eap_tls to process data (0) eap_tls: Initiating new TLS session (0) eap_tls: Setting verify mode to require certificate from client (0) eap_tls: [eaptls start] = request (0) eap: Sending EAP Request (code 1) ID 95 length 6 (0) eap: EAP session adding &reply:State = 0x6f3168c46f6e65fa (0) [eap] = handled (0) } # authenticate = handled (0) Using Post-Auth-Type Challenge (0) Post-Auth-Type sub-section not found. Ignoring. (0) Sent Access-Challenge Id 38 from 10.10.251.2:1812 to 10.40.80.11:1812 length 0 (0) EAP-Message = 0x015f00060d20 (0) Message-Authenticator = 0x00000000000000000000000000000000 (0) State = 0x6f3168c46f6e65fab733058fe658559c (0) Finished request Waking up in 9.9 seconds. (1) Received Access-Request Id 6 from 10.51.80.11:1812 to 10.10.251.2:1812 length 353 (1) Framed-MTU = 1466 (1) NAS-IP-Address = 10.51.80.11 (1) NAS-Identifier = "yo-sw01" (1) User-Name = "08-00-0f-82-5f-fb" (1) Service-Type = Call-Check (1) Framed-Protocol = PPP (1) NAS-Port = 18 (1) NAS-Port-Type = Ethernet (1) NAS-Port-Id = "18" (1) Called-Station-Id = "ec-9a-74-19-ec-6e" (1) Calling-Station-Id = "08-00-0f-82-5f-fb" (1) Connect-Info = "CONNECT Ethernet 100Mbps Full duplex" (1) CHAP-Password = 0x1e8f88798a9393fec47d97801b4dbb8f8b (1) Message-Authenticator = 0x1ed0a0a02f652f3ea8b045e5d3e28559 (1) MS-RAS-Vendor = 11 (1) HP-Capability-Advert = 0x011a0000000b28 (1) HP-Capability-Advert = 0x011a0000000b2e (1) HP-Capability-Advert = 0x011a0000000b30 (1) HP-Capability-Advert = 0x011a0000000b3d (1) HP-Capability-Advert = 0x011a0000000b18 (1) HP-Capability-Advert = 0x011a0000000b19 (1) HP-Capability-Advert = 0x0138 (1) HP-Capability-Advert = 0x013a (1) HP-Capability-Advert = 0x0140 (1) HP-Capability-Advert = 0x0141 (1) HP-Capability-Advert = 0x0151 (1) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authorize { (1) policy filter_username { (1) if (&User-Name) { (1) if (&User-Name) -> TRUE (1) if (&User-Name) { (1) if (&User-Name =~ / /) { (1) if (&User-Name =~ / /) -> FALSE (1) if (&User-Name =~ /@[^@]*@/ ) { (1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (1) if (&User-Name =~ /\.\./ ) { (1) if (&User-Name =~ /\.\./ ) -> FALSE (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (1) if (&User-Name =~ /\.$/) { (1) if (&User-Name =~ /\.$/) -> FALSE (1) if (&User-Name =~ /@\./) { (1) if (&User-Name =~ /@\./) -> FALSE (1) } # if (&User-Name) = notfound (1) } # policy filter_username = notfound (1) [preprocess] = ok (1) chap: &control:Auth-Type := CHAP (1) [chap] = ok (1) eap: No EAP-Message, not doing EAP (1) [eap] = noop (1) files: users: Matched entry DEFAULT at line 167 (1) [files] = ok (1) [expiration] = noop (1) [logintime] = noop (1) policy rewrite_calling_station_id { (1) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (1) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (1) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (1) update request { (1) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (1) --> 08-00-0F-82-5F-FB (1) &Calling-Station-Id := 08-00-0F-82-5F-FB (1) } # update request = noop (1) [updated] = updated (1) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (1) ... skipping else: Preceding "if" was taken (1) } # policy rewrite_calling_station_id = updated (1) if (!EAP-Message) { (1) if (!EAP-Message) -> TRUE (1) if (!EAP-Message) { (1) authorized_macs: EXPAND %{Calling-Station-ID} (1) authorized_macs: --> 08-00-0F-82-5F-FB (1) [authorized_macs] = noop (1) if (!ok) { (1) if (!ok) -> TRUE (1) if (!ok) { (1) [reject] = reject (1) } # if (!ok) = reject (1) } # if (!EAP-Message) = reject (1) } # authorize = reject (1) Invalid user: [08-00-0f-82-5f-fb] (from client yo-sw01 port 18 cli 08-00-0F-82-5F-FB) (1) Using Post-Auth-Type Reject (1) Post-Auth-Type sub-section not found. Ignoring. (1) Delaying response for 1.000000 seconds ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On May 31, 2022, at 9:49 AM, David le Roux <david.leroux@miller.co.uk> wrote:
I've got two different authentication issues. The server is meant to service both mac-based authentication (using authorized_macs file) and eap-tls using certificates. This is for a production environment where I have done my best to mimic our old setup which is working but on EOL software.
In the logs I get "invalid user" for the mac-based auth and "eap_tls: ERROR: TLS alert werite:fatal:internal error.
I don't see the TLS error in the logs. What I do see is that FreeRADIUS sends an Access-Challenge, the client doesn't respond. This is almost always because of certificate issues. The client doesn't know / trust the certificates presented by FreeRADIUS. The "invalid user" message is correct. The MAC address in the User-Name isn't found in the "authorized_macs" list. Note that it does it's lookup by exact string match. So check that the MAC address is listed, and has exactly the same format. That's why it prints everything in debug mode... so you can check the printed MAC against what's in the file, and verify for yourself that it should / should not work.
FreeRADIUS Version 3.0.21
I'd upgrade to 3.2.0. it has many fixes and enhancements. Alan DeKok.
Hi Alan,
The "invalid user" message is correct. The MAC address in the User-Name isn't found in the "authorized_macs" list. Note that it does it's lookup by exact string match. So check that the MAC address is listed, and has exactly the same format.
I've checked an the mac is certainly there in lower case. However I notice this in the debug:
(2) update request { (2) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> 08-00-0F-82-64-F0
I can't find anywhere in the config a command to make it upper case (though several "to lower"). Do I need to make my entire list upper case or am I missing a config option? Kind regards, David le Roux -----Original Message----- From: Freeradius-Users <freeradius-users-bounces+david.leroux=miller.co.uk@lists.freeradius.org> On Behalf Of Alan DeKok Sent: 31 May 2022 14:58 To: FreeRadius users mailing list <freeradius-users@lists.freeradius.org> Subject: Re: Authentication issues On May 31, 2022, at 9:49 AM, David le Roux <david.leroux@miller.co.uk> wrote:
I've got two different authentication issues. The server is meant to service both mac-based authentication (using authorized_macs file) and eap-tls using certificates. This is for a production environment where I have done my best to mimic our old setup which is working but on EOL software.
In the logs I get "invalid user" for the mac-based auth and "eap_tls: ERROR: TLS alert werite:fatal:internal error.
I don't see the TLS error in the logs. What I do see is that FreeRADIUS sends an Access-Challenge, the client doesn't respond. This is almost always because of certificate issues. The client doesn't know / trust the certificates presented by FreeRADIUS. The "invalid user" message is correct. The MAC address in the User-Name isn't found in the "authorized_macs" list. Note that it does it's lookup by exact string match. So check that the MAC address is listed, and has exactly the same format. That's why it prints everything in debug mode... so you can check the printed MAC against what's in the file, and verify for yourself that it should / should not work.
FreeRADIUS Version 3.0.21
I'd upgrade to 3.2.0. it has many fixes and enhancements. Alan DeKok. ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 3, 2022, at 10:43 AM, David le Roux <david.leroux@miller.co.uk> wrote:
The "invalid user" message is correct. The MAC address in the User-Name isn't found in the "authorized_macs" list. Note that it does it's lookup by exact string match. So check that the MAC address is listed, and has exactly the same format.
I've checked an the mac is certainly there in lower case.
OK, that's good.
However I notice this in the debug:
(2) update request { (2) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> 08-00-0F-82-64-F0
I can't find anywhere in the config a command to make it upper case (though several "to lower"). Do I need to make my entire list upper case or am I missing a config option?
"tolower" works instead of "toupper". Just edit the rewrite_calling_station_id policy (policy.d/canonicalize) to use "tolower" instead of "toupper" Whatever you choose, you MUST choose a consistent setup. The lookups in the "authorized_macs" list are doing an exact string match. So you need to ensure that all of the entries are all either lowercase, or all uppercase. And then use the rewrite_calling_station_id policy to mash the attribute in the packet to the matching case. Oh, and that policy is there because NAS vendors send MAC addresses in a variety of formats. 00:01:02:04:04:04, or using dashes, or just hex all mashed together. The policy re-writes that to a sane format (00-01-03-04...). Again, you have to ensure that the authorized_macs file contains this exact format. That way when you either buy a new NAS (which uses a different format), or the NAS firmware updates (and changes to a different format), you won't run into this issue again. The policy will just automagically fix things, and it will be fine. Alan DeKok.
Thanks, I hadn't looked in policy.d/canonicalize. David le Roux -----Original Message----- From: Freeradius-Users <freeradius-users-bounces+david.leroux=miller.co.uk@lists.freeradius.org> On Behalf Of Alan DeKok Sent: 03 June 2022 15:52 To: FreeRadius users mailing list <freeradius-users@lists.freeradius.org> Subject: Re: Authentication issues On Jun 3, 2022, at 10:43 AM, David le Roux <david.leroux@miller.co.uk> wrote:
The "invalid user" message is correct. The MAC address in the User-Name isn't found in the "authorized_macs" list. Note that it does it's lookup by exact string match. So check that the MAC address is listed, and has exactly the same format.
I've checked an the mac is certainly there in lower case.
OK, that's good.
However I notice this in the debug:
(2) update request { (2) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> 08-00-0F-82-64-F0
I can't find anywhere in the config a command to make it upper case (though several "to lower"). Do I need to make my entire list upper case or am I missing a config option?
"tolower" works instead of "toupper". Just edit the rewrite_calling_station_id policy (policy.d/canonicalize) to use "tolower" instead of "toupper" Whatever you choose, you MUST choose a consistent setup. The lookups in the "authorized_macs" list are doing an exact string match. So you need to ensure that all of the entries are all either lowercase, or all uppercase. And then use the rewrite_calling_station_id policy to mash the attribute in the packet to the matching case. Oh, and that policy is there because NAS vendors send MAC addresses in a variety of formats. 00:01:02:04:04:04, or using dashes, or just hex all mashed together. The policy re-writes that to a sane format (00-01-03-04...). Again, you have to ensure that the authorized_macs file contains this exact format. That way when you either buy a new NAS (which uses a different format), or the NAS firmware updates (and changes to a different format), you won't run into this issue again. The policy will just automagically fix things, and it will be fine. Alan DeKok. - List info/subscribe/unsubscribe? See https://gbr01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freeradius.org%2Flist%2Fusers.html&data=05%7C01%7Cdavid.leroux%40miller.co.uk%7C76b48fb8011d42ee778208da4570ad3b%7Ca5609eb2409545a8bb4668573bbb0f92%7C1%7C0%7C637898647482974306%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Jqc1FI5APq9zkLVJ2RLkCiIw1s5IsTsupiehBGmE5gM%3D&reserved=0 ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 3, 2022, at 11:10 AM, David le Roux <david.leroux@miller.co.uk> wrote:
Thanks, I hadn't looked in policy.d/canonicalize.
It was all printed out in debug mode. What policy was being run, and what the policy was doing. That's why we have debug mode, and why we recommend that people read it. Because it solves problems. Alan DeKok.
Hello, I am still getting eap-tls authentication issues. I am using the same certificates as our old radius server (which is running fine, just very old now). What am I doing wrong? I've looked at the debug log all morning and can't figure it out. Kind regards, David le Roux ATTACHED RADIUS.LOG EXTRACT Mon Jun 20 20:07:11 2022 : Auth: tls: Certificate CN (mh300649.millerextra.com) does not match specified value (host/mh300649.millerextra.com)! Mon Jun 20 20:07:11 2022 : ERROR: (8) eap_tls: ERROR: TLS Alert write:fatal:internal error Mon Jun 20 20:07:11 2022 : Error: tls: TLS_accept: Error in error ATTACHED DEBUG LOG Starting - reading configuration files ... including dictionary file /usr/share/freeradius/dictionary including dictionary file /usr/share/freeradius/dictionary.dhcp including dictionary file /usr/share/freeradius/dictionary.vqp including dictionary file /etc/freeradius/3.0/dictionary including configuration file /etc/freeradius/3.0/radiusd.conf including configuration file /etc/freeradius/3.0/proxy.conf including configuration file /etc/freeradius/3.0/clients.conf including configuration file /etc/freeradius/3.0/mwanclients.conf including files in directory /etc/freeradius/3.0/mods-enabled/ including configuration file /etc/freeradius/3.0/mods-enabled/unpack including configuration file /etc/freeradius/3.0/mods-enabled/detail.log including configuration file /etc/freeradius/3.0/mods-enabled/detail including configuration file /etc/freeradius/3.0/mods-enabled/cache_eap including configuration file /etc/freeradius/3.0/mods-enabled/logintime including configuration file /etc/freeradius/3.0/mods-enabled/files including configuration file /etc/freeradius/3.0/mods-enabled/ntlm_auth including configuration file /etc/freeradius/3.0/mods-enabled/replicate including configuration file /etc/freeradius/3.0/mods-enabled/pap including configuration file /etc/freeradius/3.0/mods-enabled/sradutmp including configuration file /etc/freeradius/3.0/mods-enabled/linelog including configuration file /etc/freeradius/3.0/mods-enabled/realm including configuration file /etc/freeradius/3.0/mods-enabled/preprocess including configuration file /etc/freeradius/3.0/mods-enabled/exec including configuration file /etc/freeradius/3.0/mods-enabled/expr including configuration file /etc/freeradius/3.0/mods-enabled/echo including configuration file /etc/freeradius/3.0/mods-enabled/digest including configuration file /etc/freeradius/3.0/mods-enabled/dynamic_clients including configuration file /etc/freeradius/3.0/mods-enabled/radutmp including configuration file /etc/freeradius/3.0/mods-enabled/utf8 including configuration file /etc/freeradius/3.0/mods-enabled/passwd including configuration file /etc/freeradius/3.0/mods-enabled/unix including configuration file /etc/freeradius/3.0/mods-enabled/eap including configuration file /etc/freeradius/3.0/mods-enabled/attr_filter including configuration file /etc/freeradius/3.0/mods-enabled/expiration including configuration file /etc/freeradius/3.0/mods-enabled/soh including configuration file /etc/freeradius/3.0/mods-enabled/always including configuration file /etc/freeradius/3.0/mods-enabled/mschap including configuration file /etc/freeradius/3.0/mods-enabled/chap including files in directory /etc/freeradius/3.0/policy.d/ including configuration file /etc/freeradius/3.0/policy.d/control including configuration file /etc/freeradius/3.0/policy.d/dhcp including configuration file /etc/freeradius/3.0/policy.d/debug including configuration file /etc/freeradius/3.0/policy.d/operator-name including configuration file /etc/freeradius/3.0/policy.d/filter including configuration file /etc/freeradius/3.0/policy.d/cui including configuration file /etc/freeradius/3.0/policy.d/canonicalization including configuration file /etc/freeradius/3.0/policy.d/abfab-tr including configuration file /etc/freeradius/3.0/policy.d/moonshot-targeted-ids including configuration file /etc/freeradius/3.0/policy.d/rfc7542 including configuration file /etc/freeradius/3.0/policy.d/accounting including configuration file /etc/freeradius/3.0/policy.d/eap including files in directory /etc/freeradius/3.0/sites-enabled/ including configuration file /etc/freeradius/3.0/sites-enabled/inner-tunnel including configuration file /etc/freeradius/3.0/sites-enabled/mh-site main { security { user = "freerad" group = "freerad" allow_core_dumps = no } name = "freeradius" prefix = "/usr" localstatedir = "/var" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" } main { name = "freeradius" prefix = "/usr" localstatedir = "/var" sbindir = "/usr/sbin" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/freeradius/radacct" hostname_lookups = no max_request_time = 120 cleanup_delay = 10 max_requests = 80000 pidfile = "/var/run/freeradius/freeradius.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes msg_denied = "You are already logged in - access denied" } resources { } security { max_attributes = 200 reject_delay = 1.000000 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.000000 response_timeouts = 1 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 revive_interval = 120 limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } coa { 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 #### ... Debugger not attached systemd watchdog is disabled # Creating Auth-Type = mschap # Creating Auth-Type = eap # Creating Auth-Type = PAP # Creating Auth-Type = CHAP # Creating Auth-Type = MS-CHAP radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /etc/freeradius/3.0/mods-enabled/unpack # Loaded module rlm_detail # Loading module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail auth_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail reply_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail pre_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail post_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "detail" from file /etc/freeradius/3.0/mods-enabled/detail detail { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loaded module rlm_cache # Loading module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap cache cache_eap { driver = "rlm_cache_rbtree" key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 0 epoch = 0 add_stats = no } # Loaded module rlm_logintime # Loading module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_files # Loading module "files" from file /etc/freeradius/3.0/mods-enabled/files files { filename = "/etc/freeradius/3.0/mods-config/files/authorize" acctusersfile = "/etc/freeradius/3.0/mods-config/files/accounting" preproxy_usersfile = "/etc/freeradius/3.0/mods-config/files/pre-proxy" } # Loading module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files files authorized_macs { usersfile = "/etc/freeradius/3.0/authorized_macs" key = "%{Calling-Station-ID}" } # Loaded module rlm_exec # Loading module "ntlm_auth" from file /etc/freeradius/3.0/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_replicate # Loading module "replicate" from file /etc/freeradius/3.0/mods-enabled/replicate # Loaded module rlm_pap # Loading module "pap" from file /etc/freeradius/3.0/mods-enabled/pap pap { normalise = yes } # Loaded module rlm_radutmp # Loading module "sradutmp" from file /etc/freeradius/3.0/mods-enabled/sradutmp radutmp sradutmp { filename = "/var/log/freeradius/sradutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 420 caller_id = no } # Loaded module rlm_linelog # Loading module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog linelog { filename = "/var/log/freeradius/linelog" escape_filenames = no syslog_severity = "info" permissions = 384 format = "This is a log message for %{User-Name}" reference = "messages.%{%{reply:Packet-Type}:-default}" } # Loading module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog linelog log_accounting { filename = "/var/log/freeradius/linelog-accounting" escape_filenames = no syslog_severity = "info" permissions = 384 format = "" reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}" } # Loaded module rlm_realm # Loading module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm realm IPASS { format = "prefix" delimiter = "/" ignore_default = no ignore_null = no } # Loading module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Loading module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm realm bangpath { format = "prefix" delimiter = "!" ignore_default = no ignore_null = no } # Loading module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm realm realmpercent { format = "suffix" delimiter = "%" ignore_default = no ignore_null = no } # Loading module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm realm ntdomain { format = "prefix" delimiter = "\\" ignore_default = no ignore_null = no } # Loaded module rlm_preprocess # Loading module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess preprocess { huntgroups = "/etc/freeradius/3.0/mods-config/preprocess/huntgroups" hints = "/etc/freeradius/3.0/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 } # Loading module "exec" from file /etc/freeradius/3.0/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Loaded module rlm_expr # Loading module "expr" from file /etc/freeradius/3.0/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loading module "echo" from file /etc/freeradius/3.0/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_digest # Loading module "digest" from file /etc/freeradius/3.0/mods-enabled/digest # Loaded module rlm_dynamic_clients # Loading module "dynamic_clients" from file /etc/freeradius/3.0/mods-enabled/dynamic_clients # Loading module "radutmp" from file /etc/freeradius/3.0/mods-enabled/radutmp radutmp { filename = "/var/log/freeradius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_utf8 # Loading module "utf8" from file /etc/freeradius/3.0/mods-enabled/utf8 # Loaded module rlm_passwd # Loading module "etc_passwd" from file /etc/freeradius/3.0/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 } # Loaded module rlm_unix # Loading module "unix" from file /etc/freeradius/3.0/mods-enabled/unix unix { radwtmp = "/var/log/freeradius/radwtmp" } Creating attribute Unix-Group # Loaded module rlm_eap # Loading module "eap" from file /etc/freeradius/3.0/mods-enabled/eap eap { default_eap_type = "tls" timer_expire = 600 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 80000 } # Loaded module rlm_attr_filter # Loading module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/etc/freeradius/3.0/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } # Loaded module rlm_expiration # Loading module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Loaded module rlm_soh # Loading module "soh" from file /etc/freeradius/3.0/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_always # Loading module "reject" from file /etc/freeradius/3.0/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Loading module "fail" from file /etc/freeradius/3.0/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Loading module "ok" from file /etc/freeradius/3.0/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Loading module "handled" from file /etc/freeradius/3.0/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Loading module "invalid" from file /etc/freeradius/3.0/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Loading module "userlock" from file /etc/freeradius/3.0/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Loading module "notfound" from file /etc/freeradius/3.0/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Loading module "noop" from file /etc/freeradius/3.0/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Loading module "updated" from file /etc/freeradius/3.0/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_mschap # Loading module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = yes passchange { } allow_retry = yes winbind_retry_with_normalised_username = no } # Loaded module rlm_chap # Loading module "chap" from file /etc/freeradius/3.0/mods-enabled/chap instantiate { } # Instantiating module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail output # Instantiating module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "detail" from file /etc/freeradius/3.0/mods-enabled/detail # Instantiating module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree) loaded and linked # Instantiating module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime # Instantiating module "files" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/mods-config/files/authorize reading pairlist file /etc/freeradius/3.0/mods-config/files/accounting reading pairlist file /etc/freeradius/3.0/mods-config/files/pre-proxy # Instantiating module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/authorized_macs # Instantiating module "pap" from file /etc/freeradius/3.0/mods-enabled/pap # Instantiating module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/huntgroups reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/hints # Instantiating module "etc_passwd" from file /etc/freeradius/3.0/mods-enabled/passwd rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Instantiating module "eap" from file /etc/freeradius/3.0/mods-enabled/eap # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { verify_depth = 0 ca_path = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/" pem_file_type = yes private_key_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.key" certificate_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.pem" ca_file = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/ca_and_crl.pem" dh_file = "/etc/freeradius/3.0/certs/dh" random_file = "/dev/urandom" fragment_size = 1024 include_length = yes auto_chain = yes check_crl = yes check_all_crl = no check_cert_cn = "%{User-Name}" cipher_list = "DEFAULT" cipher_server_preference = no check_cert_issuer = "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" ecdh_curve = "prime256v1" tls_max_version = "1.2" tls_min_version = "1.2" cache { enable = no lifetime = 24 max_entries = 255 } verify { skip_if_ocsp_ok = no } ocsp { enable = no override_cert_url = yes url = "http://127.0.0.1/ocsp/" use_nonce = yes timeout = 0 softfail = no } } # 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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_peap peap { tls = "tls-common" default_eap_type = "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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_mschapv2 mschapv2 { with_ntdomain_hack = no send_error = no } # Instantiating module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/accounting_response # Instantiating module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Instantiating module "reject" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "fail" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "ok" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "handled" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "invalid" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "userlock" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "notfound" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "noop" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "updated" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap rlm_mschap (mschap): using internal authentication } # modules radiusd: #### Loading Virtual Servers #### server { # from file /etc/freeradius/3.0/radiusd.conf } # server server inner-tunnel { # from file /etc/freeradius/3.0/sites-enabled/inner-tunnel # Loading authenticate {...} # Loading authorize {...} Ignoring "sql" (see raddb/mods-available/README.rst) Ignoring "ldap" (see raddb/mods-available/README.rst) # Loading session {...} # Loading post-proxy {...} # Loading post-auth {...} # Skipping contents of 'if' as it is always 'false' -- /etc/freeradius/3.0/sites-enabled/inner-tunnel:336 } # server inner-tunnel server mh-site { # from file /etc/freeradius/3.0/sites-enabled/mh-site # Loading authenticate {...} # Loading authorize {...} # Loading post-proxy {...} } # server mh-site radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = 127.0.0.1 port = 18120 } listen { type = "auth" ipaddr = 10.10.251.2 port = 1812 } Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address 10.10.251.2 port 1812 bound to server mh-site Listening on proxy address * port 33320 Ready to process requests (1) Received Access-Request Id 0 from 10.225.186.1:55407 to 10.10.251.2:1812 length 306 (1) User-Name = "host/mh300416.millerextra.com" (1) NAS-IP-Address = 0.0.0.0 (1) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (1) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (1) NAS-Port-Type = Wireless-802.11 (1) Service-Type = Framed-User (1) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (1) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (1) Acct-Session-Id = "D574672A277DD053" (1) Acct-Multi-Session-Id = "7C418D59D18B05C5" (1) WLAN-Pairwise-Cipher = 1027076 (1) WLAN-Group-Cipher = 1027076 (1) WLAN-AKM-Suite = 1027073 (1) Framed-MTU = 1400 (1) EAP-Message = 0x02e3002201686f73742f6d683330303431362e6d696c6c657265787472612e636f6d (1) Message-Authenticator = 0x787944a8a1c6c210ccab0867ac99d70f (1) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authorize { (1) policy filter_username { (1) if (&User-Name) { (1) if (&User-Name) -> TRUE (1) if (&User-Name) { (1) if (&User-Name =~ / /) { (1) if (&User-Name =~ / /) -> FALSE (1) if (&User-Name =~ /@[^@]*@/ ) { (1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (1) if (&User-Name =~ /\.\./ ) { (1) if (&User-Name =~ /\.\./ ) -> FALSE (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (1) if (&User-Name =~ /\.$/) { (1) if (&User-Name =~ /\.$/) -> FALSE (1) if (&User-Name =~ /@\./) { (1) if (&User-Name =~ /@\./) -> FALSE (1) } # if (&User-Name) = notfound (1) } # policy filter_username = notfound (1) [preprocess] = ok (1) [chap] = noop (1) eap: Peer sent EAP Response (code 2) ID 227 length 34 (1) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (1) [eap] = ok (1) } # authorize = ok (1) Found Auth-Type = eap (1) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authenticate { (1) eap: Peer sent packet with method EAP Identity (1) (1) eap: Calling submodule eap_tls to process data (1) eap_tls: Initiating new TLS session (1) eap_tls: Setting verify mode to require certificate from client (1) eap_tls: [eaptls start] = request (1) eap: Sending EAP Request (code 1) ID 228 length 6 (1) eap: EAP session adding &reply:State = 0x9aa27e309a467356 (1) [eap] = handled (1) } # authenticate = handled (1) Using Post-Auth-Type Challenge (1) Post-Auth-Type sub-section not found. Ignoring. (1) Sent Access-Challenge Id 0 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (1) EAP-Message = 0x01e400060d20 (1) Message-Authenticator = 0x00000000000000000000000000000000 (1) State = 0x9aa27e309a467356d285c4b385eaaf56 (1) Finished request Waking up in 9.9 seconds. (2) Received Access-Request Id 1 from 10.225.186.1:55407 to 10.10.251.2:1812 length 456 (2) User-Name = "host/mh300416.millerextra.com" (2) NAS-IP-Address = 0.0.0.0 (2) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (2) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (2) NAS-Port-Type = Wireless-802.11 (2) Service-Type = Framed-User (2) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (2) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (2) Acct-Session-Id = "D574672A277DD053" (2) Acct-Multi-Session-Id = "7C418D59D18B05C5" (2) WLAN-Pairwise-Cipher = 1027076 (2) WLAN-Group-Cipher = 1027076 (2) WLAN-AKM-Suite = 1027073 (2) Framed-MTU = 1400 (2) EAP-Message = 0x02e400a60d800000009c160303009701000093030362b0c5b590cd2daed0060639396fe1729b9fa20792efe35d3a89d224e61952ea00002ac02cc02bc030c02f009f009ec024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a01000040000500050100000000000a00080006001d00170018000b00020100000d001400120401050102010403050302030202060106030023000000170000ff01000100 (2) State = 0x9aa27e309a467356d285c4b385eaaf56 (2) Message-Authenticator = 0x547dbbe6b031745b3902f4c1890540e5 (2) session-state: No cached attributes (2) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authorize { (2) policy filter_username { (2) if (&User-Name) { (2) if (&User-Name) -> TRUE (2) if (&User-Name) { (2) if (&User-Name =~ / /) { (2) if (&User-Name =~ / /) -> FALSE (2) if (&User-Name =~ /@[^@]*@/ ) { (2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (2) if (&User-Name =~ /\.\./ ) { (2) if (&User-Name =~ /\.\./ ) -> FALSE (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (2) if (&User-Name =~ /\.$/) { (2) if (&User-Name =~ /\.$/) -> FALSE (2) if (&User-Name =~ /@\./) { (2) if (&User-Name =~ /@\./) -> FALSE (2) } # if (&User-Name) = notfound (2) } # policy filter_username = notfound (2) [preprocess] = ok (2) [chap] = noop (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) [files] = noop (2) [expiration] = noop (2) [logintime] = noop (2) policy rewrite_calling_station_id { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) update request { (2) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> b4-b0-24-d4-df-7e (2) &Calling-Station-Id := b4-b0-24-d4-df-7e (2) } # update request = noop (2) [updated] = updated (2) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (2) ... skipping else: Preceding "if" was taken (2) } # policy rewrite_calling_station_id = updated (2) if (!EAP-Message) { (2) if (!EAP-Message) -> FALSE (2) else { (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) } # else = updated (2) } # authorize = updated (2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (2) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authenticate { (2) eap: Expiring EAP session with state 0x9aa27e309a467356 (2) eap: Finished EAP session with state 0x9aa27e309a467356 (2) eap: Previous EAP request found for state 0x9aa27e309a467356, released from the list (2) eap: Peer sent packet with method EAP TLS (13) (2) eap: Calling submodule eap_tls to process data (2) eap_tls: Continuing EAP-TLS (2) eap_tls: Peer indicated complete TLS record size will be 156 bytes (2) eap_tls: Got complete TLS record (156 bytes) (2) eap_tls: [eaptls verify] = length included (2) eap_tls: (other): before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: <<< recv TLS 1.3 [length 0097] (2) eap_tls: TLS_accept: SSLv3/TLS read client hello (2) eap_tls: >>> send TLS 1.2 [length 003d] (2) eap_tls: TLS_accept: SSLv3/TLS write server hello (2) eap_tls: >>> send TLS 1.2 [length 0bd1] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate (2) eap_tls: >>> send TLS 1.2 [length 00cd] (2) eap_tls: TLS_accept: SSLv3/TLS write key exchange (2) eap_tls: >>> send TLS 1.2 [length 00ed] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate request (2) eap_tls: >>> send TLS 1.2 [length 0004] (2) eap_tls: TLS_accept: SSLv3/TLS write server done (2) eap_tls: TLS_accept: Need to read more data: SSLv3/TLS write server done (2) eap_tls: TLS - In Handshake Phase (2) eap_tls: TLS - got 3557 bytes of data (2) eap_tls: [eaptls process] = handled (2) eap: Sending EAP Request (code 1) ID 229 length 1004 (2) eap: EAP session adding &reply:State = 0x9aa27e309b477356 (2) [eap] = handled (2) } # authenticate = handled (2) Using Post-Auth-Type Challenge (2) Post-Auth-Type sub-section not found. Ignoring. (2) Sent Access-Challenge Id 1 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (2) EAP-Message = 0x01e503ec0dc000000de5160303003d020000390303f9bcef1481f18c7ad5b5fd43f1e3bad67edfc4f46bf133d2b474d0e70469b25400c030000011ff01000100000b000403000102001700001603030bd10b000bcd000bca000698308206943082057ca00302010202142a0a15f6668df41777abc4b01cc71913d3621cea300d06092a864886f70d0101050500302e3110300e060355040a14074d475f54524545311a3018060355040b13114f7267616e697a6174696f6e616c204341301e170d3231313231323139313130305a170d3336303230333233353830305a308184310b300906035504061302554b31123010060355040813094564696e627572676831123010060355040713094564696e627572676831193017060355040a13104d696c6c657220486f6d6573204c74643111300f060355040b1308486f6d6573204954311f301d060355040313167261646975732e6d696c6c657265787472612e636f6d30819f300d06092a864886f70d010101050003 (2) Message-Authenticator = 0x00000000000000000000000000000000 (2) State = 0x9aa27e309b477356d285c4b385eaaf56 (2) Finished request Waking up in 9.6 seconds. (8) Received Access-Request Id 7 from 10.225.186.1:55407 to 10.10.251.2:1812 length 603 (8) User-Name = "host/mh300416.millerextra.com" (8) NAS-IP-Address = 0.0.0.0 (8) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (8) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (8) NAS-Port-Type = Wireless-802.11 (8) Service-Type = Framed-User (8) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (8) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 47, Channel: 48" (8) Acct-Session-Id = "D574672A277DD053" (8) Acct-Multi-Session-Id = "7C418D59D18B05C5" (8) WLAN-Pairwise-Cipher = 1027076 (8) WLAN-Group-Cipher = 1027076 (8) WLAN-AKM-Suite = 1027073 (8) Framed-MTU = 1400 (8) EAP-Message = 0x02ea01370d0066f40dc882989fe808d306dd03141e11299fa8afbd50a078ccd70b3f9450d6db5f43be6169840e1646d3ef71046af30c29d41b534db51a7ea637a7d6c4330e1d95611ea1cb0296601df2fde7a09a5e8fb588908ac48cf532ea011e599f8e401fe810ec8e87081523761458f8db7db030695974d577d6b4831859bd599a0177690640e31ae85e20d142f177207318f2def9dc0339e231aa9b903dbdfa97c6329575ba31b356d9b67d2e5b006c055e3ce90cf28962a36a60db541224af2f25b61b1ffccea8c75c0859b98d4e981cfeeeba20dc62a157958efcf353fdfa32dfc12a32e1de60bbf955d54cb28fbe663e3d7df912aac619b334c2e969935522a214030300010116030300280000000000000000cea056ca00f182f82e95c87a21f60a2e2758282a78f9b7d3f9bae85c3af3affc (8) State = 0x9aa27e309c487356d285c4b385eaaf56 (8) Message-Authenticator = 0x8078b462fcf2db13ae497a3f33785060 (8) session-state: No cached attributes (8) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authorize { (8) policy filter_username { (8) if (&User-Name) { (8) if (&User-Name) -> TRUE (8) if (&User-Name) { (8) if (&User-Name =~ / /) { (8) if (&User-Name =~ / /) -> FALSE (8) if (&User-Name =~ /@[^@]*@/ ) { (8) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (8) if (&User-Name =~ /\.\./ ) { (8) if (&User-Name =~ /\.\./ ) -> FALSE (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (8) if (&User-Name =~ /\.$/) { (8) if (&User-Name =~ /\.$/) -> FALSE (8) if (&User-Name =~ /@\./) { (8) if (&User-Name =~ /@\./) -> FALSE (8) } # if (&User-Name) = notfound (8) } # policy filter_username = notfound (8) [preprocess] = ok (8) [chap] = noop (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) [files] = noop (8) [expiration] = noop (8) [logintime] = noop (8) policy rewrite_calling_station_id { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) update request { (8) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (8) --> b4-b0-24-d4-df-7e (8) &Calling-Station-Id := b4-b0-24-d4-df-7e (8) } # update request = noop (8) [updated] = updated (8) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (8) ... skipping else: Preceding "if" was taken (8) } # policy rewrite_calling_station_id = updated (8) if (!EAP-Message) { (8) if (!EAP-Message) -> FALSE (8) else { (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) } # else = updated (8) } # authorize = updated (8) Found Auth-Type = eap (8) Found Auth-Type = eap (8) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (8) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authenticate { (8) eap: Expiring EAP session with state 0x9aa27e309c487356 (8) eap: Finished EAP session with state 0x9aa27e309c487356 (8) eap: Previous EAP request found for state 0x9aa27e309c487356, released from the list (8) eap: Peer sent packet with method EAP TLS (13) (8) eap: Calling submodule eap_tls to process data (8) eap_tls: Continuing EAP-TLS (8) eap_tls: Got final TLS record fragment (305 bytes) (8) eap_tls: [eaptls verify] = ok (8) eap_tls: Done initial handshake (8) eap_tls: TLS_accept: SSLv3/TLS write server done (8) eap_tls: <<< recv TLS 1.2 [length 0b43] (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Cert-Expiration := "360203235800Z" (8) eap_tls: TLS-Cert-Valid-Since := "111215110200Z" (8) eap_tls: TLS-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Cert-Issuer := "/O=MG_TREE/OU=Organizational CA" (8) eap_tls: TLS-Cert-Common-Name := "Intermediate CA" (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Client-Cert-Serial := "4a25" (8) eap_tls: TLS-Client-Cert-Expiration := "361029154426Z" (8) eap_tls: TLS-Client-Cert-Valid-Since := "161103154426Z" (8) eap_tls: TLS-Client-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-Issuer := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Client-Cert-Common-Name := "mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web Client Authentication" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID += "1.3.6.1.5.5.7.3.2" (8) eap_tls: EXPAND %{User-Name} (8) eap_tls: --> host/mh300416.millerextra.com (8) eap_tls: checking certificate CN (mh300416.millerextra.com) with xlat'ed value (host/mh300416.millerextra.com) tls: Certificate CN (mh300416.millerextra.com) does not match specified value (host/mh300416.millerextra.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error (8) eap_tls: ERROR: Failed in __FUNCTION__ (SSL_read): error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed (8) eap_tls: ERROR: System call (I/O) error (-1) (8) eap_tls: ERROR: TLS receive handshake failed during operation (8) eap_tls: ERROR: [eaptls process] = fail (8) eap: (8) eap: Sending EAP Failure (code 4) ID 234 length 4 (8) eap: Failed in EAP select (8) [eap] = invalid (8) } # authenticate = invalid (8) Failed to authenticate the user (8) Using Post-Auth-Type Reject (8) Post-Auth-Type sub-section not found. Ignoring. (8) Delaying response for 1.000000 seconds ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On 21.06.22 11:48, David le Roux wrote:
Hello,
I am still getting eap-tls authentication issues. I am using the same certificates as our old radius server (which is running fine, just very old now). What am I doing wrong? I've looked at the debug log all morning and can't figure it out.
Kind regards,
David le Roux
ATTACHED RADIUS.LOG EXTRACT
Mon Jun 20 20:07:11 2022 : Auth: tls: Certificate CN (mh300649.millerextra.com) does not match specified value (host/mh300649.millerextra.com)! Mon Jun 20 20:07:11 2022 : ERROR: (8) eap_tls: ERROR: TLS Alert write:fatal:internal error Mon Jun 20 20:07:11 2022 : Error: tls: TLS_accept: Error in error
ATTACHED DEBUG LOG
Starting - reading configuration files ... including dictionary file /usr/share/freeradius/dictionary including dictionary file /usr/share/freeradius/dictionary.dhcp including dictionary file /usr/share/freeradius/dictionary.vqp including dictionary file /etc/freeradius/3.0/dictionary including configuration file /etc/freeradius/3.0/radiusd.conf including configuration file /etc/freeradius/3.0/proxy.conf including configuration file /etc/freeradius/3.0/clients.conf including configuration file /etc/freeradius/3.0/mwanclients.conf including files in directory /etc/freeradius/3.0/mods-enabled/ including configuration file /etc/freeradius/3.0/mods-enabled/unpack including configuration file /etc/freeradius/3.0/mods-enabled/detail.log including configuration file /etc/freeradius/3.0/mods-enabled/detail including configuration file /etc/freeradius/3.0/mods-enabled/cache_eap including configuration file /etc/freeradius/3.0/mods-enabled/logintime including configuration file /etc/freeradius/3.0/mods-enabled/files including configuration file /etc/freeradius/3.0/mods-enabled/ntlm_auth including configuration file /etc/freeradius/3.0/mods-enabled/replicate including configuration file /etc/freeradius/3.0/mods-enabled/pap including configuration file /etc/freeradius/3.0/mods-enabled/sradutmp including configuration file /etc/freeradius/3.0/mods-enabled/linelog including configuration file /etc/freeradius/3.0/mods-enabled/realm including configuration file /etc/freeradius/3.0/mods-enabled/preprocess including configuration file /etc/freeradius/3.0/mods-enabled/exec including configuration file /etc/freeradius/3.0/mods-enabled/expr including configuration file /etc/freeradius/3.0/mods-enabled/echo including configuration file /etc/freeradius/3.0/mods-enabled/digest including configuration file /etc/freeradius/3.0/mods-enabled/dynamic_clients including configuration file /etc/freeradius/3.0/mods-enabled/radutmp including configuration file /etc/freeradius/3.0/mods-enabled/utf8 including configuration file /etc/freeradius/3.0/mods-enabled/passwd including configuration file /etc/freeradius/3.0/mods-enabled/unix including configuration file /etc/freeradius/3.0/mods-enabled/eap including configuration file /etc/freeradius/3.0/mods-enabled/attr_filter including configuration file /etc/freeradius/3.0/mods-enabled/expiration including configuration file /etc/freeradius/3.0/mods-enabled/soh including configuration file /etc/freeradius/3.0/mods-enabled/always including configuration file /etc/freeradius/3.0/mods-enabled/mschap including configuration file /etc/freeradius/3.0/mods-enabled/chap including files in directory /etc/freeradius/3.0/policy.d/ including configuration file /etc/freeradius/3.0/policy.d/control including configuration file /etc/freeradius/3.0/policy.d/dhcp including configuration file /etc/freeradius/3.0/policy.d/debug including configuration file /etc/freeradius/3.0/policy.d/operator-name including configuration file /etc/freeradius/3.0/policy.d/filter including configuration file /etc/freeradius/3.0/policy.d/cui including configuration file /etc/freeradius/3.0/policy.d/canonicalization including configuration file /etc/freeradius/3.0/policy.d/abfab-tr including configuration file /etc/freeradius/3.0/policy.d/moonshot-targeted-ids including configuration file /etc/freeradius/3.0/policy.d/rfc7542 including configuration file /etc/freeradius/3.0/policy.d/accounting including configuration file /etc/freeradius/3.0/policy.d/eap including files in directory /etc/freeradius/3.0/sites-enabled/ including configuration file /etc/freeradius/3.0/sites-enabled/inner-tunnel including configuration file /etc/freeradius/3.0/sites-enabled/mh-site main { security { user = "freerad" group = "freerad" allow_core_dumps = no } name = "freeradius" prefix = "/usr" localstatedir = "/var" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" } main { name = "freeradius" prefix = "/usr" localstatedir = "/var" sbindir = "/usr/sbin" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/freeradius/radacct" hostname_lookups = no max_request_time = 120 cleanup_delay = 10 max_requests = 80000 pidfile = "/var/run/freeradius/freeradius.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes msg_denied = "You are already logged in - access denied" } resources { } security { max_attributes = 200 reject_delay = 1.000000 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.000000 response_timeouts = 1 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 revive_interval = 120 limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } coa { 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 ####
...
Debugger not attached systemd watchdog is disabled # Creating Auth-Type = mschap # Creating Auth-Type = eap # Creating Auth-Type = PAP # Creating Auth-Type = CHAP # Creating Auth-Type = MS-CHAP radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /etc/freeradius/3.0/mods-enabled/unpack # Loaded module rlm_detail # Loading module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail auth_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail reply_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail pre_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail post_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "detail" from file /etc/freeradius/3.0/mods-enabled/detail detail { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loaded module rlm_cache # Loading module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap cache cache_eap { driver = "rlm_cache_rbtree" key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 0 epoch = 0 add_stats = no } # Loaded module rlm_logintime # Loading module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_files # Loading module "files" from file /etc/freeradius/3.0/mods-enabled/files files { filename = "/etc/freeradius/3.0/mods-config/files/authorize" acctusersfile = "/etc/freeradius/3.0/mods-config/files/accounting" preproxy_usersfile = "/etc/freeradius/3.0/mods-config/files/pre-proxy" } # Loading module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files files authorized_macs { usersfile = "/etc/freeradius/3.0/authorized_macs" key = "%{Calling-Station-ID}" } # Loaded module rlm_exec # Loading module "ntlm_auth" from file /etc/freeradius/3.0/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_replicate # Loading module "replicate" from file /etc/freeradius/3.0/mods-enabled/replicate # Loaded module rlm_pap # Loading module "pap" from file /etc/freeradius/3.0/mods-enabled/pap pap { normalise = yes } # Loaded module rlm_radutmp # Loading module "sradutmp" from file /etc/freeradius/3.0/mods-enabled/sradutmp radutmp sradutmp { filename = "/var/log/freeradius/sradutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 420 caller_id = no } # Loaded module rlm_linelog # Loading module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog linelog { filename = "/var/log/freeradius/linelog" escape_filenames = no syslog_severity = "info" permissions = 384 format = "This is a log message for %{User-Name}" reference = "messages.%{%{reply:Packet-Type}:-default}" } # Loading module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog linelog log_accounting { filename = "/var/log/freeradius/linelog-accounting" escape_filenames = no syslog_severity = "info" permissions = 384 format = "" reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}" } # Loaded module rlm_realm # Loading module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm realm IPASS { format = "prefix" delimiter = "/" ignore_default = no ignore_null = no } # Loading module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Loading module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm realm bangpath { format = "prefix" delimiter = "!" ignore_default = no ignore_null = no } # Loading module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm realm realmpercent { format = "suffix" delimiter = "%" ignore_default = no ignore_null = no } # Loading module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm realm ntdomain { format = "prefix" delimiter = "\\" ignore_default = no ignore_null = no } # Loaded module rlm_preprocess # Loading module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess preprocess { huntgroups = "/etc/freeradius/3.0/mods-config/preprocess/huntgroups" hints = "/etc/freeradius/3.0/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 } # Loading module "exec" from file /etc/freeradius/3.0/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Loaded module rlm_expr # Loading module "expr" from file /etc/freeradius/3.0/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loading module "echo" from file /etc/freeradius/3.0/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_digest # Loading module "digest" from file /etc/freeradius/3.0/mods-enabled/digest # Loaded module rlm_dynamic_clients # Loading module "dynamic_clients" from file /etc/freeradius/3.0/mods-enabled/dynamic_clients # Loading module "radutmp" from file /etc/freeradius/3.0/mods-enabled/radutmp radutmp { filename = "/var/log/freeradius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_utf8 # Loading module "utf8" from file /etc/freeradius/3.0/mods-enabled/utf8 # Loaded module rlm_passwd # Loading module "etc_passwd" from file /etc/freeradius/3.0/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 } # Loaded module rlm_unix # Loading module "unix" from file /etc/freeradius/3.0/mods-enabled/unix unix { radwtmp = "/var/log/freeradius/radwtmp" } Creating attribute Unix-Group # Loaded module rlm_eap # Loading module "eap" from file /etc/freeradius/3.0/mods-enabled/eap eap { default_eap_type = "tls" timer_expire = 600 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 80000 } # Loaded module rlm_attr_filter # Loading module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/etc/freeradius/3.0/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } # Loaded module rlm_expiration # Loading module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Loaded module rlm_soh # Loading module "soh" from file /etc/freeradius/3.0/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_always # Loading module "reject" from file /etc/freeradius/3.0/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Loading module "fail" from file /etc/freeradius/3.0/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Loading module "ok" from file /etc/freeradius/3.0/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Loading module "handled" from file /etc/freeradius/3.0/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Loading module "invalid" from file /etc/freeradius/3.0/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Loading module "userlock" from file /etc/freeradius/3.0/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Loading module "notfound" from file /etc/freeradius/3.0/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Loading module "noop" from file /etc/freeradius/3.0/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Loading module "updated" from file /etc/freeradius/3.0/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_mschap # Loading module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = yes passchange { } allow_retry = yes winbind_retry_with_normalised_username = no } # Loaded module rlm_chap # Loading module "chap" from file /etc/freeradius/3.0/mods-enabled/chap instantiate { } # Instantiating module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail output # Instantiating module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "detail" from file /etc/freeradius/3.0/mods-enabled/detail # Instantiating module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree) loaded and linked # Instantiating module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime # Instantiating module "files" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/mods-config/files/authorize reading pairlist file /etc/freeradius/3.0/mods-config/files/accounting reading pairlist file /etc/freeradius/3.0/mods-config/files/pre-proxy # Instantiating module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/authorized_macs # Instantiating module "pap" from file /etc/freeradius/3.0/mods-enabled/pap # Instantiating module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/huntgroups reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/hints # Instantiating module "etc_passwd" from file /etc/freeradius/3.0/mods-enabled/passwd rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Instantiating module "eap" from file /etc/freeradius/3.0/mods-enabled/eap # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { verify_depth = 0 ca_path = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/" pem_file_type = yes private_key_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.key" certificate_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.pem" ca_file = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/ca_and_crl.pem" dh_file = "/etc/freeradius/3.0/certs/dh" random_file = "/dev/urandom" fragment_size = 1024 include_length = yes auto_chain = yes check_crl = yes check_all_crl = no check_cert_cn = "%{User-Name}" cipher_list = "DEFAULT" cipher_server_preference = no check_cert_issuer = "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" ecdh_curve = "prime256v1" tls_max_version = "1.2" tls_min_version = "1.2" cache { enable = no lifetime = 24 max_entries = 255 } verify { skip_if_ocsp_ok = no } ocsp { enable = no override_cert_url = yes url = "http://127.0.0.1/ocsp/" use_nonce = yes timeout = 0 softfail = no } } # 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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_peap peap { tls = "tls-common" default_eap_type = "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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_mschapv2 mschapv2 { with_ntdomain_hack = no send_error = no } # Instantiating module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/accounting_response # Instantiating module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Instantiating module "reject" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "fail" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "ok" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "handled" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "invalid" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "userlock" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "notfound" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "noop" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "updated" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap rlm_mschap (mschap): using internal authentication } # modules radiusd: #### Loading Virtual Servers #### server { # from file /etc/freeradius/3.0/radiusd.conf } # server server inner-tunnel { # from file /etc/freeradius/3.0/sites-enabled/inner-tunnel # Loading authenticate {...} # Loading authorize {...} Ignoring "sql" (see raddb/mods-available/README.rst) Ignoring "ldap" (see raddb/mods-available/README.rst) # Loading session {...} # Loading post-proxy {...} # Loading post-auth {...} # Skipping contents of 'if' as it is always 'false' -- /etc/freeradius/3.0/sites-enabled/inner-tunnel:336 } # server inner-tunnel server mh-site { # from file /etc/freeradius/3.0/sites-enabled/mh-site # Loading authenticate {...} # Loading authorize {...} # Loading post-proxy {...} } # server mh-site radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = 127.0.0.1 port = 18120 } listen { type = "auth" ipaddr = 10.10.251.2 port = 1812 } Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address 10.10.251.2 port 1812 bound to server mh-site Listening on proxy address * port 33320 Ready to process requests (1) Received Access-Request Id 0 from 10.225.186.1:55407 to 10.10.251.2:1812 length 306 (1) User-Name = "host/mh300416.millerextra.com" (1) NAS-IP-Address = 0.0.0.0 (1) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (1) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (1) NAS-Port-Type = Wireless-802.11 (1) Service-Type = Framed-User (1) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (1) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (1) Acct-Session-Id = "D574672A277DD053" (1) Acct-Multi-Session-Id = "7C418D59D18B05C5" (1) WLAN-Pairwise-Cipher = 1027076 (1) WLAN-Group-Cipher = 1027076 (1) WLAN-AKM-Suite = 1027073 (1) Framed-MTU = 1400 (1) EAP-Message = 0x02e3002201686f73742f6d683330303431362e6d696c6c657265787472612e636f6d (1) Message-Authenticator = 0x787944a8a1c6c210ccab0867ac99d70f (1) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authorize { (1) policy filter_username { (1) if (&User-Name) { (1) if (&User-Name) -> TRUE (1) if (&User-Name) { (1) if (&User-Name =~ / /) { (1) if (&User-Name =~ / /) -> FALSE (1) if (&User-Name =~ /@[^@]*@/ ) { (1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (1) if (&User-Name =~ /\.\./ ) { (1) if (&User-Name =~ /\.\./ ) -> FALSE (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (1) if (&User-Name =~ /\.$/) { (1) if (&User-Name =~ /\.$/) -> FALSE (1) if (&User-Name =~ /@\./) { (1) if (&User-Name =~ /@\./) -> FALSE (1) } # if (&User-Name) = notfound (1) } # policy filter_username = notfound (1) [preprocess] = ok (1) [chap] = noop (1) eap: Peer sent EAP Response (code 2) ID 227 length 34 (1) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (1) [eap] = ok (1) } # authorize = ok (1) Found Auth-Type = eap (1) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authenticate { (1) eap: Peer sent packet with method EAP Identity (1) (1) eap: Calling submodule eap_tls to process data (1) eap_tls: Initiating new TLS session (1) eap_tls: Setting verify mode to require certificate from client (1) eap_tls: [eaptls start] = request (1) eap: Sending EAP Request (code 1) ID 228 length 6 (1) eap: EAP session adding &reply:State = 0x9aa27e309a467356 (1) [eap] = handled (1) } # authenticate = handled (1) Using Post-Auth-Type Challenge (1) Post-Auth-Type sub-section not found. Ignoring. (1) Sent Access-Challenge Id 0 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (1) EAP-Message = 0x01e400060d20 (1) Message-Authenticator = 0x00000000000000000000000000000000 (1) State = 0x9aa27e309a467356d285c4b385eaaf56 (1) Finished request Waking up in 9.9 seconds. (2) Received Access-Request Id 1 from 10.225.186.1:55407 to 10.10.251.2:1812 length 456 (2) User-Name = "host/mh300416.millerextra.com" (2) NAS-IP-Address = 0.0.0.0 (2) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (2) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (2) NAS-Port-Type = Wireless-802.11 (2) Service-Type = Framed-User (2) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (2) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (2) Acct-Session-Id = "D574672A277DD053" (2) Acct-Multi-Session-Id = "7C418D59D18B05C5" (2) WLAN-Pairwise-Cipher = 1027076 (2) WLAN-Group-Cipher = 1027076 (2) WLAN-AKM-Suite = 1027073 (2) Framed-MTU = 1400 (2) EAP-Message = 0x02e400a60d800000009c160303009701000093030362b0c5b590cd2daed0060639396fe1729b9fa20792efe35d3a89d224e61952ea00002ac02cc02bc030c02f009f009ec024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a01000040000500050100000000000a00080006001d00170018000b00020100000d001400120401050102010403050302030202060106030023000000170000ff01000100 (2) State = 0x9aa27e309a467356d285c4b385eaaf56 (2) Message-Authenticator = 0x547dbbe6b031745b3902f4c1890540e5 (2) session-state: No cached attributes (2) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authorize { (2) policy filter_username { (2) if (&User-Name) { (2) if (&User-Name) -> TRUE (2) if (&User-Name) { (2) if (&User-Name =~ / /) { (2) if (&User-Name =~ / /) -> FALSE (2) if (&User-Name =~ /@[^@]*@/ ) { (2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (2) if (&User-Name =~ /\.\./ ) { (2) if (&User-Name =~ /\.\./ ) -> FALSE (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (2) if (&User-Name =~ /\.$/) { (2) if (&User-Name =~ /\.$/) -> FALSE (2) if (&User-Name =~ /@\./) { (2) if (&User-Name =~ /@\./) -> FALSE (2) } # if (&User-Name) = notfound (2) } # policy filter_username = notfound (2) [preprocess] = ok (2) [chap] = noop (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) [files] = noop (2) [expiration] = noop (2) [logintime] = noop (2) policy rewrite_calling_station_id { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) update request { (2) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> b4-b0-24-d4-df-7e (2) &Calling-Station-Id := b4-b0-24-d4-df-7e (2) } # update request = noop (2) [updated] = updated (2) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (2) ... skipping else: Preceding "if" was taken (2) } # policy rewrite_calling_station_id = updated (2) if (!EAP-Message) { (2) if (!EAP-Message) -> FALSE (2) else { (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) } # else = updated (2) } # authorize = updated (2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (2) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authenticate { (2) eap: Expiring EAP session with state 0x9aa27e309a467356 (2) eap: Finished EAP session with state 0x9aa27e309a467356 (2) eap: Previous EAP request found for state 0x9aa27e309a467356, released from the list (2) eap: Peer sent packet with method EAP TLS (13) (2) eap: Calling submodule eap_tls to process data (2) eap_tls: Continuing EAP-TLS (2) eap_tls: Peer indicated complete TLS record size will be 156 bytes (2) eap_tls: Got complete TLS record (156 bytes) (2) eap_tls: [eaptls verify] = length included (2) eap_tls: (other): before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: <<< recv TLS 1.3 [length 0097] (2) eap_tls: TLS_accept: SSLv3/TLS read client hello (2) eap_tls: >>> send TLS 1.2 [length 003d] (2) eap_tls: TLS_accept: SSLv3/TLS write server hello (2) eap_tls: >>> send TLS 1.2 [length 0bd1] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate (2) eap_tls: >>> send TLS 1.2 [length 00cd] (2) eap_tls: TLS_accept: SSLv3/TLS write key exchange (2) eap_tls: >>> send TLS 1.2 [length 00ed] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate request (2) eap_tls: >>> send TLS 1.2 [length 0004] (2) eap_tls: TLS_accept: SSLv3/TLS write server done (2) eap_tls: TLS_accept: Need to read more data: SSLv3/TLS write server done (2) eap_tls: TLS - In Handshake Phase (2) eap_tls: TLS - got 3557 bytes of data (2) eap_tls: [eaptls process] = handled (2) eap: Sending EAP Request (code 1) ID 229 length 1004 (2) eap: EAP session adding &reply:State = 0x9aa27e309b477356 (2) [eap] = handled (2) } # authenticate = handled (2) Using Post-Auth-Type Challenge (2) Post-Auth-Type sub-section not found. Ignoring. (2) Sent Access-Challenge Id 1 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (2) EAP-Message = 0x01e503ec0dc000000de5160303003d020000390303f9bcef1481f18c7ad5b5fd43f1e3bad67edfc4f46bf133d2b474d0e70469b25400c030000011ff01000100000b000403000102001700001603030bd10b000bcd000bca000698308206943082057ca00302010202142a0a15f6668df41777abc4b01cc71913d3621cea300d06092a864886f70d0101050500302e3110300e060355040a14074d475f54524545311a3018060355040b13114f7267616e697a6174696f6e616c204341301e170d3231313231323139313130305a170d3336303230333233353830305a308184310b300906035504061302554b31123010060355040813094564696e627572676831123010060355040713094564696e627572676831193017060355040a13104d696c6c657220486f6d6573204c74643111300f060355040b1308486f6d6573204954311f301d060355040313167261646975732e6d696c6c657265787472612e636f6d30819f300d06092a864886f70d010101050003 (2) Message-Authenticator = 0x00000000000000000000000000000000 (2) State = 0x9aa27e309b477356d285c4b385eaaf56 (2) Finished request Waking up in 9.6 seconds. (8) Received Access-Request Id 7 from 10.225.186.1:55407 to 10.10.251.2:1812 length 603 (8) User-Name = "host/mh300416.millerextra.com" (8) NAS-IP-Address = 0.0.0.0 (8) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (8) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (8) NAS-Port-Type = Wireless-802.11 (8) Service-Type = Framed-User (8) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (8) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 47, Channel: 48" (8) Acct-Session-Id = "D574672A277DD053" (8) Acct-Multi-Session-Id = "7C418D59D18B05C5" (8) WLAN-Pairwise-Cipher = 1027076 (8) WLAN-Group-Cipher = 1027076 (8) WLAN-AKM-Suite = 1027073 (8) Framed-MTU = 1400 (8) EAP-Message = 0x02ea01370d0066f40dc882989fe808d306dd03141e11299fa8afbd50a078ccd70b3f9450d6db5f43be6169840e1646d3ef71046af30c29d41b534db51a7ea637a7d6c4330e1d95611ea1cb0296601df2fde7a09a5e8fb588908ac48cf532ea011e599f8e401fe810ec8e87081523761458f8db7db030695974d577d6b4831859bd599a0177690640e31ae85e20d142f177207318f2def9dc0339e231aa9b903dbdfa97c6329575ba31b356d9b67d2e5b006c055e3ce90cf28962a36a60db541224af2f25b61b1ffccea8c75c0859b98d4e981cfeeeba20dc62a157958efcf353fdfa32dfc12a32e1de60bbf955d54cb28fbe663e3d7df912aac619b334c2e969935522a214030300010116030300280000000000000000cea056ca00f182f82e95c87a21f60a2e2758282a78f9b7d3f9bae85c3af3affc (8) State = 0x9aa27e309c487356d285c4b385eaaf56 (8) Message-Authenticator = 0x8078b462fcf2db13ae497a3f33785060 (8) session-state: No cached attributes (8) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authorize { (8) policy filter_username { (8) if (&User-Name) { (8) if (&User-Name) -> TRUE (8) if (&User-Name) { (8) if (&User-Name =~ / /) { (8) if (&User-Name =~ / /) -> FALSE (8) if (&User-Name =~ /@[^@]*@/ ) { (8) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (8) if (&User-Name =~ /\.\./ ) { (8) if (&User-Name =~ /\.\./ ) -> FALSE (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (8) if (&User-Name =~ /\.$/) { (8) if (&User-Name =~ /\.$/) -> FALSE (8) if (&User-Name =~ /@\./) { (8) if (&User-Name =~ /@\./) -> FALSE (8) } # if (&User-Name) = notfound (8) } # policy filter_username = notfound (8) [preprocess] = ok (8) [chap] = noop (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) [files] = noop (8) [expiration] = noop (8) [logintime] = noop (8) policy rewrite_calling_station_id { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) update request { (8) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (8) --> b4-b0-24-d4-df-7e (8) &Calling-Station-Id := b4-b0-24-d4-df-7e (8) } # update request = noop (8) [updated] = updated (8) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (8) ... skipping else: Preceding "if" was taken (8) } # policy rewrite_calling_station_id = updated (8) if (!EAP-Message) { (8) if (!EAP-Message) -> FALSE (8) else { (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) } # else = updated (8) } # authorize = updated (8) Found Auth-Type = eap (8) Found Auth-Type = eap (8) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (8) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authenticate { (8) eap: Expiring EAP session with state 0x9aa27e309c487356 (8) eap: Finished EAP session with state 0x9aa27e309c487356 (8) eap: Previous EAP request found for state 0x9aa27e309c487356, released from the list (8) eap: Peer sent packet with method EAP TLS (13) (8) eap: Calling submodule eap_tls to process data (8) eap_tls: Continuing EAP-TLS (8) eap_tls: Got final TLS record fragment (305 bytes) (8) eap_tls: [eaptls verify] = ok (8) eap_tls: Done initial handshake (8) eap_tls: TLS_accept: SSLv3/TLS write server done (8) eap_tls: <<< recv TLS 1.2 [length 0b43] (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Cert-Expiration := "360203235800Z" (8) eap_tls: TLS-Cert-Valid-Since := "111215110200Z" (8) eap_tls: TLS-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Cert-Issuer := "/O=MG_TREE/OU=Organizational CA" (8) eap_tls: TLS-Cert-Common-Name := "Intermediate CA" (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Client-Cert-Serial := "4a25" (8) eap_tls: TLS-Client-Cert-Expiration := "361029154426Z" (8) eap_tls: TLS-Client-Cert-Valid-Since := "161103154426Z" (8) eap_tls: TLS-Client-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-Issuer := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Client-Cert-Common-Name := "mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web Client Authentication" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID += "1.3.6.1.5.5.7.3.2" (8) eap_tls: EXPAND %{User-Name} (8) eap_tls: --> host/mh300416.millerextra.com (8) eap_tls: checking certificate CN (mh300416.millerextra.com) with xlat'ed value (host/mh300416.millerextra.com) tls: Certificate CN (mh300416.millerextra.com) does not match specified value (host/mh300416.millerextra.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error (8) eap_tls: ERROR: Failed in __FUNCTION__ (SSL_read): error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed (8) eap_tls: ERROR: System call (I/O) error (-1) (8) eap_tls: ERROR: TLS receive handshake failed during operation (8) eap_tls: ERROR: [eaptls process] = fail (8) eap: (8) eap: Sending EAP Failure (code 4) ID 234 length 4 (8) eap: Failed in EAP select (8) [eap] = invalid (8) } # authenticate = invalid (8) Failed to authenticate the user (8) Using Post-Auth-Type Reject (8) Post-Auth-Type sub-section not found. Ignoring. (8) Delaying response for 1.000000 seconds ________________________________
Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH
Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment.
Miller Homes Limited <https://www.millerhomes.co.uk>
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
It is quite obvious. Your host sends its User-Name "host/mh300..." but the certificate certifies the CN="mh300...". These are not the same. Thus authentication fails. You have to configure your new RADIUS server to ignore the "host/" realm. Mit freundlichen Grüßen, -- [*] sys4 AG https://sys4.de, +49 (89) 30 90 46 64 Schleißheimer Straße 26/MG,80333 München Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer, Wolfgang Stief Aufsichtsratsvorsitzender: Florian Kirstein
Thanks Michael,
You have to configure your new RADIUS server to ignore the "host/" realm.
How do I do that? I've tried several solutions but none seem to work. Kind regards, David le Roux -----Original Message----- From: Freeradius-Users <freeradius-users-bounces+david.leroux=miller.co.uk@lists.freeradius.org> On Behalf Of Michael Schwartzkopff via Freeradius-Users Sent: 21 June 2022 11:08 To: freeradius-users@lists.freeradius.org Cc: Michael Schwartzkopff <ms@sys4.de> Subject: Re: Authentication issues On 21.06.22 11:48, David le Roux wrote:
Hello,
I am still getting eap-tls authentication issues. I am using the same certificates as our old radius server (which is running fine, just very old now). What am I doing wrong? I've looked at the debug log all morning and can't figure it out.
Kind regards,
David le Roux
ATTACHED RADIUS.LOG EXTRACT
Mon Jun 20 20:07:11 2022 : Auth: tls: Certificate CN (mh300649.millerextra.com) does not match specified value (host/mh300649.millerextra.com)! Mon Jun 20 20:07:11 2022 : ERROR: (8) eap_tls: ERROR: TLS Alert write:fatal:internal error Mon Jun 20 20:07:11 2022 : Error: tls: TLS_accept: Error in error
ATTACHED DEBUG LOG
Starting - reading configuration files ... including dictionary file /usr/share/freeradius/dictionary including dictionary file /usr/share/freeradius/dictionary.dhcp including dictionary file /usr/share/freeradius/dictionary.vqp including dictionary file /etc/freeradius/3.0/dictionary including configuration file /etc/freeradius/3.0/radiusd.conf including configuration file /etc/freeradius/3.0/proxy.conf including configuration file /etc/freeradius/3.0/clients.conf including configuration file /etc/freeradius/3.0/mwanclients.conf including files in directory /etc/freeradius/3.0/mods-enabled/ including configuration file /etc/freeradius/3.0/mods-enabled/unpack including configuration file /etc/freeradius/3.0/mods-enabled/detail.log including configuration file /etc/freeradius/3.0/mods-enabled/detail including configuration file /etc/freeradius/3.0/mods-enabled/cache_eap including configuration file /etc/freeradius/3.0/mods-enabled/logintime including configuration file /etc/freeradius/3.0/mods-enabled/files including configuration file /etc/freeradius/3.0/mods-enabled/ntlm_auth including configuration file /etc/freeradius/3.0/mods-enabled/replicate including configuration file /etc/freeradius/3.0/mods-enabled/pap including configuration file /etc/freeradius/3.0/mods-enabled/sradutmp including configuration file /etc/freeradius/3.0/mods-enabled/linelog including configuration file /etc/freeradius/3.0/mods-enabled/realm including configuration file /etc/freeradius/3.0/mods-enabled/preprocess including configuration file /etc/freeradius/3.0/mods-enabled/exec including configuration file /etc/freeradius/3.0/mods-enabled/expr including configuration file /etc/freeradius/3.0/mods-enabled/echo including configuration file /etc/freeradius/3.0/mods-enabled/digest including configuration file /etc/freeradius/3.0/mods-enabled/dynamic_clients including configuration file /etc/freeradius/3.0/mods-enabled/radutmp including configuration file /etc/freeradius/3.0/mods-enabled/utf8 including configuration file /etc/freeradius/3.0/mods-enabled/passwd including configuration file /etc/freeradius/3.0/mods-enabled/unix including configuration file /etc/freeradius/3.0/mods-enabled/eap including configuration file /etc/freeradius/3.0/mods-enabled/attr_filter including configuration file /etc/freeradius/3.0/mods-enabled/expiration including configuration file /etc/freeradius/3.0/mods-enabled/soh including configuration file /etc/freeradius/3.0/mods-enabled/always including configuration file /etc/freeradius/3.0/mods-enabled/mschap including configuration file /etc/freeradius/3.0/mods-enabled/chap including files in directory /etc/freeradius/3.0/policy.d/ including configuration file /etc/freeradius/3.0/policy.d/control including configuration file /etc/freeradius/3.0/policy.d/dhcp including configuration file /etc/freeradius/3.0/policy.d/debug including configuration file /etc/freeradius/3.0/policy.d/operator-name including configuration file /etc/freeradius/3.0/policy.d/filter including configuration file /etc/freeradius/3.0/policy.d/cui including configuration file /etc/freeradius/3.0/policy.d/canonicalization including configuration file /etc/freeradius/3.0/policy.d/abfab-tr including configuration file /etc/freeradius/3.0/policy.d/moonshot-targeted-ids including configuration file /etc/freeradius/3.0/policy.d/rfc7542 including configuration file /etc/freeradius/3.0/policy.d/accounting including configuration file /etc/freeradius/3.0/policy.d/eap including files in directory /etc/freeradius/3.0/sites-enabled/ including configuration file /etc/freeradius/3.0/sites-enabled/inner-tunnel including configuration file /etc/freeradius/3.0/sites-enabled/mh-site main { security { user = "freerad" group = "freerad" allow_core_dumps = no } name = "freeradius" prefix = "/usr" localstatedir = "/var" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" } main { name = "freeradius" prefix = "/usr" localstatedir = "/var" sbindir = "/usr/sbin" logdir = "/var/log/freeradius" run_dir = "/var/run/freeradius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/freeradius/radacct" hostname_lookups = no max_request_time = 120 cleanup_delay = 10 max_requests = 80000 pidfile = "/var/run/freeradius/freeradius.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = no auth_badpass = no auth_goodpass = no colourise = yes msg_denied = "You are already logged in - access denied" } resources { } security { max_attributes = 200 reject_delay = 1.000000 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.000000 response_timeouts = 1 max_outstanding = 65536 zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 revive_interval = 120 limit { max_connections = 16 max_requests = 0 lifetime = 0 idle_timeout = 0 } coa { 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 ####
...
Debugger not attached systemd watchdog is disabled # Creating Auth-Type = mschap # Creating Auth-Type = eap # Creating Auth-Type = PAP # Creating Auth-Type = CHAP # Creating Auth-Type = MS-CHAP radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /etc/freeradius/3.0/mods-enabled/unpack # Loaded module rlm_detail # Loading module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail auth_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail reply_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail pre_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log detail post_proxy_log { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loading module "detail" from file /etc/freeradius/3.0/mods-enabled/detail detail { filename = "/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d" header = "%t" permissions = 384 locking = no escape_filenames = no log_packet_header = no } # Loaded module rlm_cache # Loading module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap cache cache_eap { driver = "rlm_cache_rbtree" key = "%{%{control:State}:-%{%{reply:State}:-%{State}}}" ttl = 15 max_entries = 0 epoch = 0 add_stats = no } # Loaded module rlm_logintime # Loading module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime logintime { minimum_timeout = 60 } # Loaded module rlm_files # Loading module "files" from file /etc/freeradius/3.0/mods-enabled/files files { filename = "/etc/freeradius/3.0/mods-config/files/authorize" acctusersfile = "/etc/freeradius/3.0/mods-config/files/accounting" preproxy_usersfile = "/etc/freeradius/3.0/mods-config/files/pre-proxy" } # Loading module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files files authorized_macs { usersfile = "/etc/freeradius/3.0/authorized_macs" key = "%{Calling-Station-ID}" } # Loaded module rlm_exec # Loading module "ntlm_auth" from file /etc/freeradius/3.0/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_replicate # Loading module "replicate" from file /etc/freeradius/3.0/mods-enabled/replicate # Loaded module rlm_pap # Loading module "pap" from file /etc/freeradius/3.0/mods-enabled/pap pap { normalise = yes } # Loaded module rlm_radutmp # Loading module "sradutmp" from file /etc/freeradius/3.0/mods-enabled/sradutmp radutmp sradutmp { filename = "/var/log/freeradius/sradutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 420 caller_id = no } # Loaded module rlm_linelog # Loading module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog linelog { filename = "/var/log/freeradius/linelog" escape_filenames = no syslog_severity = "info" permissions = 384 format = "This is a log message for %{User-Name}" reference = "messages.%{%{reply:Packet-Type}:-default}" } # Loading module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog linelog log_accounting { filename = "/var/log/freeradius/linelog-accounting" escape_filenames = no syslog_severity = "info" permissions = 384 format = "" reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}" } # Loaded module rlm_realm # Loading module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm realm IPASS { format = "prefix" delimiter = "/" ignore_default = no ignore_null = no } # Loading module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } # Loading module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm realm bangpath { format = "prefix" delimiter = "!" ignore_default = no ignore_null = no } # Loading module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm realm realmpercent { format = "suffix" delimiter = "%" ignore_default = no ignore_null = no } # Loading module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm realm ntdomain { format = "prefix" delimiter = "\\" ignore_default = no ignore_null = no } # Loaded module rlm_preprocess # Loading module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess preprocess { huntgroups = "/etc/freeradius/3.0/mods-config/preprocess/huntgroups" hints = "/etc/freeradius/3.0/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 } # Loading module "exec" from file /etc/freeradius/3.0/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Loaded module rlm_expr # Loading module "expr" from file /etc/freeradius/3.0/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loading module "echo" from file /etc/freeradius/3.0/mods-enabled/echo exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = "request" output_pairs = "reply" shell_escape = yes } # Loaded module rlm_digest # Loading module "digest" from file /etc/freeradius/3.0/mods-enabled/digest # Loaded module rlm_dynamic_clients # Loading module "dynamic_clients" from file /etc/freeradius/3.0/mods-enabled/dynamic_clients # Loading module "radutmp" from file /etc/freeradius/3.0/mods-enabled/radutmp radutmp { filename = "/var/log/freeradius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes permissions = 384 caller_id = yes } # Loaded module rlm_utf8 # Loading module "utf8" from file /etc/freeradius/3.0/mods-enabled/utf8 # Loaded module rlm_passwd # Loading module "etc_passwd" from file /etc/freeradius/3.0/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 } # Loaded module rlm_unix # Loading module "unix" from file /etc/freeradius/3.0/mods-enabled/unix unix { radwtmp = "/var/log/freeradius/radwtmp" } Creating attribute Unix-Group # Loaded module rlm_eap # Loading module "eap" from file /etc/freeradius/3.0/mods-enabled/eap eap { default_eap_type = "tls" timer_expire = 600 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 80000 } # Loaded module rlm_attr_filter # Loading module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.post-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/post-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.pre-proxy { filename = "/etc/freeradius/3.0/mods-config/attr_filter/pre-proxy" key = "%{Realm}" relaxed = no } # Loading module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_reject { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_reject" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.access_challenge { filename = "/etc/freeradius/3.0/mods-config/attr_filter/access_challenge" key = "%{User-Name}" relaxed = no } # Loading module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter attr_filter attr_filter.accounting_response { filename = "/etc/freeradius/3.0/mods-config/attr_filter/accounting_response" key = "%{User-Name}" relaxed = no } # Loaded module rlm_expiration # Loading module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Loaded module rlm_soh # Loading module "soh" from file /etc/freeradius/3.0/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_always # Loading module "reject" from file /etc/freeradius/3.0/mods-enabled/always always reject { rcode = "reject" simulcount = 0 mpp = no } # Loading module "fail" from file /etc/freeradius/3.0/mods-enabled/always always fail { rcode = "fail" simulcount = 0 mpp = no } # Loading module "ok" from file /etc/freeradius/3.0/mods-enabled/always always ok { rcode = "ok" simulcount = 0 mpp = no } # Loading module "handled" from file /etc/freeradius/3.0/mods-enabled/always always handled { rcode = "handled" simulcount = 0 mpp = no } # Loading module "invalid" from file /etc/freeradius/3.0/mods-enabled/always always invalid { rcode = "invalid" simulcount = 0 mpp = no } # Loading module "userlock" from file /etc/freeradius/3.0/mods-enabled/always always userlock { rcode = "userlock" simulcount = 0 mpp = no } # Loading module "notfound" from file /etc/freeradius/3.0/mods-enabled/always always notfound { rcode = "notfound" simulcount = 0 mpp = no } # Loading module "noop" from file /etc/freeradius/3.0/mods-enabled/always always noop { rcode = "noop" simulcount = 0 mpp = no } # Loading module "updated" from file /etc/freeradius/3.0/mods-enabled/always always updated { rcode = "updated" simulcount = 0 mpp = no } # Loaded module rlm_mschap # Loading module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = yes passchange { } allow_retry = yes winbind_retry_with_normalised_username = no } # Loaded module rlm_chap # Loading module "chap" from file /etc/freeradius/3.0/mods-enabled/chap instantiate { } # Instantiating module "auth_log" from file /etc/freeradius/3.0/mods-enabled/detail.log rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail output # Instantiating module "reply_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "pre_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "post_proxy_log" from file /etc/freeradius/3.0/mods-enabled/detail.log # Instantiating module "detail" from file /etc/freeradius/3.0/mods-enabled/detail # Instantiating module "cache_eap" from file /etc/freeradius/3.0/mods-enabled/cache_eap rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree) loaded and linked # Instantiating module "logintime" from file /etc/freeradius/3.0/mods-enabled/logintime # Instantiating module "files" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/mods-config/files/authorize reading pairlist file /etc/freeradius/3.0/mods-config/files/accounting reading pairlist file /etc/freeradius/3.0/mods-config/files/pre-proxy # Instantiating module "authorized_macs" from file /etc/freeradius/3.0/mods-enabled/files reading pairlist file /etc/freeradius/3.0/authorized_macs # Instantiating module "pap" from file /etc/freeradius/3.0/mods-enabled/pap # Instantiating module "linelog" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "log_accounting" from file /etc/freeradius/3.0/mods-enabled/linelog # Instantiating module "IPASS" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "suffix" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "bangpath" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "realmpercent" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "ntdomain" from file /etc/freeradius/3.0/mods-enabled/realm # Instantiating module "preprocess" from file /etc/freeradius/3.0/mods-enabled/preprocess reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/huntgroups reading pairlist file /etc/freeradius/3.0/mods-config/preprocess/hints # Instantiating module "etc_passwd" from file /etc/freeradius/3.0/mods-enabled/passwd rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # Instantiating module "eap" from file /etc/freeradius/3.0/mods-enabled/eap # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { verify_depth = 0 ca_path = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/" pem_file_type = yes private_key_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.key" certificate_file = "/etc/freeradius/3.0/certs/radius.millerextra.com.pem" ca_file = "/etc/freeradius/3.0/certs/millerCA/RADIUS_CA/ca_and_crl.pem" dh_file = "/etc/freeradius/3.0/certs/dh" random_file = "/dev/urandom" fragment_size = 1024 include_length = yes auto_chain = yes check_crl = yes check_all_crl = no check_cert_cn = "%{User-Name}" cipher_list = "DEFAULT" cipher_server_preference = no check_cert_issuer = "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" ecdh_curve = "prime256v1" tls_max_version = "1.2" tls_min_version = "1.2" cache { enable = no lifetime = 24 max_entries = 255 } verify { skip_if_ocsp_ok = no } ocsp { enable = no override_cert_url = yes url = "https://gbr01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwebdefence.global.blackspider.com%2Furlwrap%2F%3Fq%3DAXicY2BmCF_KwHB3IwNDUU6lkWGiXnFRmV5uYmZOcn5eSVF-jl5yfi6DkamPo6VhcJqxgYWpkQVDSmJZZopeTmpRfmmFQ25mDpAFVKZXms2QUVJSYKWvb2hkrmcAhIb6-cnFBfoMDAyTpjIwAAAwEiCx%26Z&data=05%7C01%7Cdavid.leroux%40miller.co.uk%7C81184194290b4286238b08da536e15c7%7Ca5609eb2409545a8bb4668573bbb0f92%7C1%7C0%7C637914051878578173%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=V0B1BWU4L78G5fAtoEH1AXs3w7S423AaTAE6r6QOA3I%3D&reserved=0" use_nonce = yes timeout = 0 softfail = no } } # 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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_peap peap { tls = "tls-common" default_eap_type = "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 } tls: Using cached TLS configuration from previous invocation # Linked to sub-module rlm_eap_mschapv2 mschapv2 { with_ntdomain_hack = no send_error = no } # Instantiating module "attr_filter.post-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/post-proxy # Instantiating module "attr_filter.pre-proxy" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/pre-proxy # Instantiating module "attr_filter.access_reject" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_reject # Instantiating module "attr_filter.access_challenge" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/access_challenge # Instantiating module "attr_filter.accounting_response" from file /etc/freeradius/3.0/mods-enabled/attr_filter reading pairlist file /etc/freeradius/3.0/mods-config/attr_filter/accounting_response # Instantiating module "expiration" from file /etc/freeradius/3.0/mods-enabled/expiration # Instantiating module "reject" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "fail" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "ok" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "handled" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "invalid" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "userlock" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "notfound" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "noop" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "updated" from file /etc/freeradius/3.0/mods-enabled/always # Instantiating module "mschap" from file /etc/freeradius/3.0/mods-enabled/mschap rlm_mschap (mschap): using internal authentication } # modules radiusd: #### Loading Virtual Servers #### server { # from file /etc/freeradius/3.0/radiusd.conf } # server server inner-tunnel { # from file /etc/freeradius/3.0/sites-enabled/inner-tunnel # Loading authenticate {...} # Loading authorize {...} Ignoring "sql" (see raddb/mods-available/README.rst) Ignoring "ldap" (see raddb/mods-available/README.rst) # Loading session {...} # Loading post-proxy {...} # Loading post-auth {...} # Skipping contents of 'if' as it is always 'false' -- /etc/freeradius/3.0/sites-enabled/inner-tunnel:336 } # server inner-tunnel server mh-site { # from file /etc/freeradius/3.0/sites-enabled/mh-site # Loading authenticate {...} # Loading authorize {...} # Loading post-proxy {...} } # server mh-site radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = 127.0.0.1 port = 18120 } listen { type = "auth" ipaddr = 10.10.251.2 port = 1812 } Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address 10.10.251.2 port 1812 bound to server mh-site Listening on proxy address * port 33320 Ready to process requests (1) Received Access-Request Id 0 from 10.225.186.1:55407 to 10.10.251.2:1812 length 306 (1) User-Name = "host/mh300416.millerextra.com" (1) NAS-IP-Address = 0.0.0.0 (1) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (1) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (1) NAS-Port-Type = Wireless-802.11 (1) Service-Type = Framed-User (1) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (1) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (1) Acct-Session-Id = "D574672A277DD053" (1) Acct-Multi-Session-Id = "7C418D59D18B05C5" (1) WLAN-Pairwise-Cipher = 1027076 (1) WLAN-Group-Cipher = 1027076 (1) WLAN-AKM-Suite = 1027073 (1) Framed-MTU = 1400 (1) EAP-Message = 0x02e3002201686f73742f6d683330303431362e6d696c6c657265787472612e636f6d (1) Message-Authenticator = 0x787944a8a1c6c210ccab0867ac99d70f (1) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authorize { (1) policy filter_username { (1) if (&User-Name) { (1) if (&User-Name) -> TRUE (1) if (&User-Name) { (1) if (&User-Name =~ / /) { (1) if (&User-Name =~ / /) -> FALSE (1) if (&User-Name =~ /@[^@]*@/ ) { (1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (1) if (&User-Name =~ /\.\./ ) { (1) if (&User-Name =~ /\.\./ ) -> FALSE (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (1) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (1) if (&User-Name =~ /\.$/) { (1) if (&User-Name =~ /\.$/) -> FALSE (1) if (&User-Name =~ /@\./) { (1) if (&User-Name =~ /@\./) -> FALSE (1) } # if (&User-Name) = notfound (1) } # policy filter_username = notfound (1) [preprocess] = ok (1) [chap] = noop (1) eap: Peer sent EAP Response (code 2) ID 227 length 34 (1) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (1) [eap] = ok (1) } # authorize = ok (1) Found Auth-Type = eap (1) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (1) authenticate { (1) eap: Peer sent packet with method EAP Identity (1) (1) eap: Calling submodule eap_tls to process data (1) eap_tls: Initiating new TLS session (1) eap_tls: Setting verify mode to require certificate from client (1) eap_tls: [eaptls start] = request (1) eap: Sending EAP Request (code 1) ID 228 length 6 (1) eap: EAP session adding &reply:State = 0x9aa27e309a467356 (1) [eap] = handled (1) } # authenticate = handled (1) Using Post-Auth-Type Challenge (1) Post-Auth-Type sub-section not found. Ignoring. (1) Sent Access-Challenge Id 0 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (1) EAP-Message = 0x01e400060d20 (1) Message-Authenticator = 0x00000000000000000000000000000000 (1) State = 0x9aa27e309a467356d285c4b385eaaf56 (1) Finished request Waking up in 9.9 seconds. (2) Received Access-Request Id 1 from 10.225.186.1:55407 to 10.10.251.2:1812 length 456 (2) User-Name = "host/mh300416.millerextra.com" (2) NAS-IP-Address = 0.0.0.0 (2) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (2) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (2) NAS-Port-Type = Wireless-802.11 (2) Service-Type = Framed-User (2) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (2) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 48, Channel: 48" (2) Acct-Session-Id = "D574672A277DD053" (2) Acct-Multi-Session-Id = "7C418D59D18B05C5" (2) WLAN-Pairwise-Cipher = 1027076 (2) WLAN-Group-Cipher = 1027076 (2) WLAN-AKM-Suite = 1027073 (2) Framed-MTU = 1400 (2) EAP-Message = 0x02e400a60d800000009c160303009701000093030362b0c5b590cd2daed0060639396fe1729b9fa20792efe35d3a89d224e61952ea00002ac02cc02bc030c02f009f009ec024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a01000040000500050100000000000a00080006001d00170018000b00020100000d001400120401050102010403050302030202060106030023000000170000ff01000100 (2) State = 0x9aa27e309a467356d285c4b385eaaf56 (2) Message-Authenticator = 0x547dbbe6b031745b3902f4c1890540e5 (2) session-state: No cached attributes (2) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authorize { (2) policy filter_username { (2) if (&User-Name) { (2) if (&User-Name) -> TRUE (2) if (&User-Name) { (2) if (&User-Name =~ / /) { (2) if (&User-Name =~ / /) -> FALSE (2) if (&User-Name =~ /@[^@]*@/ ) { (2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (2) if (&User-Name =~ /\.\./ ) { (2) if (&User-Name =~ /\.\./ ) -> FALSE (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (2) if (&User-Name =~ /\.$/) { (2) if (&User-Name =~ /\.$/) -> FALSE (2) if (&User-Name =~ /@\./) { (2) if (&User-Name =~ /@\./) -> FALSE (2) } # if (&User-Name) = notfound (2) } # policy filter_username = notfound (2) [preprocess] = ok (2) [chap] = noop (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) [files] = noop (2) [expiration] = noop (2) [logintime] = noop (2) policy rewrite_calling_station_id { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) update request { (2) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> b4-b0-24-d4-df-7e (2) &Calling-Station-Id := b4-b0-24-d4-df-7e (2) } # update request = noop (2) [updated] = updated (2) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (2) ... skipping else: Preceding "if" was taken (2) } # policy rewrite_calling_station_id = updated (2) if (!EAP-Message) { (2) if (!EAP-Message) -> FALSE (2) else { (2) eap: Peer sent EAP Response (code 2) ID 228 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) } # else = updated (2) } # authorize = updated (2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (2) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authenticate { (2) eap: Expiring EAP session with state 0x9aa27e309a467356 (2) eap: Finished EAP session with state 0x9aa27e309a467356 (2) eap: Previous EAP request found for state 0x9aa27e309a467356, released from the list (2) eap: Peer sent packet with method EAP TLS (13) (2) eap: Calling submodule eap_tls to process data (2) eap_tls: Continuing EAP-TLS (2) eap_tls: Peer indicated complete TLS record size will be 156 bytes (2) eap_tls: Got complete TLS record (156 bytes) (2) eap_tls: [eaptls verify] = length included (2) eap_tls: (other): before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: TLS_accept: before SSL initialization (2) eap_tls: <<< recv TLS 1.3 [length 0097] (2) eap_tls: TLS_accept: SSLv3/TLS read client hello (2) eap_tls: >>> send TLS 1.2 [length 003d] (2) eap_tls: TLS_accept: SSLv3/TLS write server hello (2) eap_tls: >>> send TLS 1.2 [length 0bd1] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate (2) eap_tls: >>> send TLS 1.2 [length 00cd] (2) eap_tls: TLS_accept: SSLv3/TLS write key exchange (2) eap_tls: >>> send TLS 1.2 [length 00ed] (2) eap_tls: TLS_accept: SSLv3/TLS write certificate request (2) eap_tls: >>> send TLS 1.2 [length 0004] (2) eap_tls: TLS_accept: SSLv3/TLS write server done (2) eap_tls: TLS_accept: Need to read more data: SSLv3/TLS write server done (2) eap_tls: TLS - In Handshake Phase (2) eap_tls: TLS - got 3557 bytes of data (2) eap_tls: [eaptls process] = handled (2) eap: Sending EAP Request (code 1) ID 229 length 1004 (2) eap: EAP session adding &reply:State = 0x9aa27e309b477356 (2) [eap] = handled (2) } # authenticate = handled (2) Using Post-Auth-Type Challenge (2) Post-Auth-Type sub-section not found. Ignoring. (2) Sent Access-Challenge Id 1 from 10.10.251.2:1812 to 10.225.186.1:55407 length 0 (2) EAP-Message = 0x01e503ec0dc000000de5160303003d020000390303f9bcef1481f18c7ad5b5fd43f1e3bad67edfc4f46bf133d2b474d0e70469b25400c030000011ff01000100000b000403000102001700001603030bd10b000bcd000bca000698308206943082057ca00302010202142a0a15f6668df41777abc4b01cc71913d3621cea300d06092a864886f70d0101050500302e3110300e060355040a14074d475f54524545311a3018060355040b13114f7267616e697a6174696f6e616c204341301e170d3231313231323139313130305a170d3336303230333233353830305a308184310b300906035504061302554b31123010060355040813094564696e627572676831123010060355040713094564696e627572676831193017060355040a13104d696c6c657220486f6d6573204c74643111300f060355040b1308486f6d6573204954311f301d060355040313167261646975732e6d696c6c657265787472612e636f6d30819f300d06092a864886f70d010101050003 (2) Message-Authenticator = 0x00000000000000000000000000000000 (2) State = 0x9aa27e309b477356d285c4b385eaaf56 (2) Finished request Waking up in 9.6 seconds. (8) Received Access-Request Id 7 from 10.225.186.1:55407 to 10.10.251.2:1812 length 603 (8) User-Name = "host/mh300416.millerextra.com" (8) NAS-IP-Address = 0.0.0.0 (8) NAS-Identifier = "E0-55-3D-8A-9A-D0:vap1" (8) Called-Station-Id = "E2-55-6D-8A-9A-D1:mhstaff" (8) NAS-Port-Type = Wireless-802.11 (8) Service-Type = Framed-User (8) Calling-Station-Id = "B4-B0-24-D4-DF-7E" (8) Connect-Info = "CONNECT 54.00 Mbps, 802.11ac, RSSI: 47, Channel: 48" (8) Acct-Session-Id = "D574672A277DD053" (8) Acct-Multi-Session-Id = "7C418D59D18B05C5" (8) WLAN-Pairwise-Cipher = 1027076 (8) WLAN-Group-Cipher = 1027076 (8) WLAN-AKM-Suite = 1027073 (8) Framed-MTU = 1400 (8) EAP-Message = 0x02ea01370d0066f40dc882989fe808d306dd03141e11299fa8afbd50a078ccd70b3f9450d6db5f43be6169840e1646d3ef71046af30c29d41b534db51a7ea637a7d6c4330e1d95611ea1cb0296601df2fde7a09a5e8fb588908ac48cf532ea011e599f8e401fe810ec8e87081523761458f8db7db030695974d577d6b4831859bd599a0177690640e31ae85e20d142f177207318f2def9dc0339e231aa9b903dbdfa97c6329575ba31b356d9b67d2e5b006c055e3ce90cf28962a36a60db541224af2f25b61b1ffccea8c75c0859b98d4e981cfeeeba20dc62a157958efcf353fdfa32dfc12a32e1de60bbf955d54cb28fbe663e3d7df912aac619b334c2e969935522a214030300010116030300280000000000000000cea056ca00f182f82e95c87a21f60a2e2758282a78f9b7d3f9bae85c3af3affc (8) State = 0x9aa27e309c487356d285c4b385eaaf56 (8) Message-Authenticator = 0x8078b462fcf2db13ae497a3f33785060 (8) session-state: No cached attributes (8) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authorize { (8) policy filter_username { (8) if (&User-Name) { (8) if (&User-Name) -> TRUE (8) if (&User-Name) { (8) if (&User-Name =~ / /) { (8) if (&User-Name =~ / /) -> FALSE (8) if (&User-Name =~ /@[^@]*@/ ) { (8) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (8) if (&User-Name =~ /\.\./ ) { (8) if (&User-Name =~ /\.\./ ) -> FALSE (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (8) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (8) if (&User-Name =~ /\.$/) { (8) if (&User-Name =~ /\.$/) -> FALSE (8) if (&User-Name =~ /@\./) { (8) if (&User-Name =~ /@\./) -> FALSE (8) } # if (&User-Name) = notfound (8) } # policy filter_username = notfound (8) [preprocess] = ok (8) [chap] = noop (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) [files] = noop (8) [expiration] = noop (8) [logintime] = noop (8) policy rewrite_calling_station_id { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (8) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (8) update request { (8) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (8) --> b4-b0-24-d4-df-7e (8) &Calling-Station-Id := b4-b0-24-d4-df-7e (8) } # update request = noop (8) [updated] = updated (8) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (8) ... skipping else: Preceding "if" was taken (8) } # policy rewrite_calling_station_id = updated (8) if (!EAP-Message) { (8) if (!EAP-Message) -> FALSE (8) else { (8) eap: Peer sent EAP Response (code 2) ID 234 length 311 (8) eap: No EAP Start, assuming it's an on-going EAP conversation (8) [eap] = updated (8) } # else = updated (8) } # authorize = updated (8) Found Auth-Type = eap (8) Found Auth-Type = eap (8) ERROR: Warning: Found 2 auth-types on request for user 'host/mh300416.millerextra.com' (8) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (8) authenticate { (8) eap: Expiring EAP session with state 0x9aa27e309c487356 (8) eap: Finished EAP session with state 0x9aa27e309c487356 (8) eap: Previous EAP request found for state 0x9aa27e309c487356, released from the list (8) eap: Peer sent packet with method EAP TLS (13) (8) eap: Calling submodule eap_tls to process data (8) eap_tls: Continuing EAP-TLS (8) eap_tls: Got final TLS record fragment (305 bytes) (8) eap_tls: [eaptls verify] = ok (8) eap_tls: Done initial handshake (8) eap_tls: TLS_accept: SSLv3/TLS write server done (8) eap_tls: <<< recv TLS 1.2 [length 0b43] (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Cert-Expiration := "360203235800Z" (8) eap_tls: TLS-Cert-Valid-Since := "111215110200Z" (8) eap_tls: TLS-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Cert-Issuer := "/O=MG_TREE/OU=Organizational CA" (8) eap_tls: TLS-Cert-Common-Name := "Intermediate CA" (8) eap_tls: TLS - Creating attributes from certificate OIDs (8) eap_tls: TLS-Client-Cert-Serial := "4a25" (8) eap_tls: TLS-Client-Cert-Expiration := "361029154426Z" (8) eap_tls: TLS-Client-Cert-Valid-Since := "161103154426Z" (8) eap_tls: TLS-Client-Cert-Subject := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-Issuer := "/C=GB/ST=Edinburgh/L=Edinburgh/O=Miller Group Ltd/OU=Group IT/CN=Intermediate CA" (8) eap_tls: TLS-Client-Cert-Common-Name := "mh300416.millerextra.com" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web Client Authentication" (8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID += "1.3.6.1.5.5.7.3.2" (8) eap_tls: EXPAND %{User-Name} (8) eap_tls: --> host/mh300416.millerextra.com (8) eap_tls: checking certificate CN (mh300416.millerextra.com) with xlat'ed value (host/mh300416.millerextra.com) tls: Certificate CN (mh300416.millerextra.com) does not match specified value (host/mh300416.millerextra.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error (8) eap_tls: ERROR: Failed in __FUNCTION__ (SSL_read): error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed (8) eap_tls: ERROR: System call (I/O) error (-1) (8) eap_tls: ERROR: TLS receive handshake failed during operation (8) eap_tls: ERROR: [eaptls process] = fail (8) eap: (8) eap: Sending EAP Failure (code 4) ID 234 length 4 (8) eap: Failed in EAP select (8) [eap] = invalid (8) } # authenticate = invalid (8) Failed to authenticate the user (8) Using Post-Auth-Type Reject (8) Post-Auth-Type sub-section not found. Ignoring. (8) Delaying response for 1.000000 seconds ________________________________
Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH
Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment.
Miller Homes Limited <https://gbr01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww .millerhomes.co.uk%2F&data=05%7C01%7Cdavid.leroux%40miller.co.uk%7 C81184194290b4286238b08da536e15c7%7Ca5609eb2409545a8bb4668573bbb0f92%7 C1%7C0%7C637914051878578173%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&s data=wT4dc0iYPS%2BoGM5tWMimnO61YiUhT60SrPYlENW%2FRzI%3D&reserved=0
- List info/subscribe/unsubscribe? See https://gbr01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.f reeradius.org%2Flist%2Fusers.html&data=05%7C01%7Cdavid.leroux%40mi ller.co.uk%7C81184194290b4286238b08da536e15c7%7Ca5609eb2409545a8bb4668 573bbb0f92%7C1%7C0%7C637914051878578173%7CUnknown%7CTWFpbGZsb3d8eyJWIj oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C %7C%7C&sdata=5FEDGqXx23rw%2B5y4G7aC8CY%2B6kdK2e%2B6S9CJzV2hcUU%3D& amp;reserved=0
It is quite obvious. Your host sends its User-Name "host/mh300..." but the certificate certifies the CN="mh300...". These are not the same. Thus authentication fails. You have to configure your new RADIUS server to ignore the "host/" realm. Mit freundlichen Grüßen, -- [*] sys4 AG https://gbr01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsys4.de%2F&data=05%7C01%7Cdavid.leroux%40miller.co.uk%7C81184194290b4286238b08da536e15c7%7Ca5609eb2409545a8bb4668573bbb0f92%7C1%7C0%7C637914051878578173%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IoiG6yjlJPj218llCTjZ2sLJ3gbxTMxANeWzVinjjxQ%3D&reserved=0, +49 (89) 30 90 46 64 Schleißheimer Straße 26/MG,80333 München Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer, Wolfgang Stief Aufsichtsratsvorsitzender: Florian Kirstein - List info/subscribe/unsubscribe? See https://gbr01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freeradius.org%2Flist%2Fusers.html&data=05%7C01%7Cdavid.leroux%40miller.co.uk%7C81184194290b4286238b08da536e15c7%7Ca5609eb2409545a8bb4668573bbb0f92%7C1%7C0%7C637914051878578173%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5FEDGqXx23rw%2B5y4G7aC8CY%2B6kdK2e%2B6S9CJzV2hcUU%3D&reserved=0 ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 21, 2022, at 8:15 AM, David le Roux <david.leroux@miller.co.uk> wrote:
Thanks Michael,
You have to configure your new RADIUS server to ignore the "host/" realm.
How do I do that? I've tried several solutions but none seem to work.
See the FAQ for "I tried to do stuff, and it didn't work". What did you do? What happened? The server gives MANY ways to re-write attributes, to copy attributes, and to reference them. You've set "check_cert_cn" in mods-available/eap. Can you think of any way to have that refer to another attribute? Can you think of any way to copy the User-Name to another attribute? Perhaps with editing? The server comes with extensive documentation and debugging. This problem *is* solvable, if you follow a careful process. Alan DeKok.
Thanks Michael,
You have to configure your new RADIUS server to ignore the "host/" realm.
How do I do that? I've tried several solutions but none seem to work.
See the FAQ for "I tried to do stuff, and it didn't work".
Which FAQ?
What did you do? What happened?
I won't have all the details anymore and it would probably just be a list of "how-not-to-do-this" examples anyway. What happened was that nothing changed and the errors reported the same issue.
The server gives MANY ways to re-write attributes, to copy attributes, and to reference them.
I just need one way to get rid of the host/ portion. The old server uses an attr_rewrite module but that is now deprecated. This is what the old server uses: attr_rewrite findthewlan { attribute = Called-Station-Id # may be "packet", "reply", "proxy", "proxy_reply" or "config" searchin = packet searchfor = "(^.*:)(.*)" replacewith = "%{2}" ignore_case = no new_attribute = no # max_matches = 10 # ## If set to yes then the replace string will be appended to the original string append = no } attr_rewrite copyusertocertcn { attribute = Cert-CN new_attribute = yes searchfor = "" searchin = packet replacewith = "%{User-Name}" } attr_rewrite removehostportion { attribute = Cert-CN # may be "packet", "reply", "proxy", "proxy_reply" or "config" searchin = packet searchfor = "(host/)(.*)" replacewith = "%{2}" ignore_case = no new_attribute = no # max_matches = 10 # ## If set to yes then the replace string will be appended to the original string append = no }
You've set "check_cert_cn" in mods-available/eap.
Can you think of any way to have that refer to another attribute?
No. Does it even need to be there?
Can you think of any way to copy the User-Name to another attribute? Perhaps with editing?
You've lost me. Why would I want to copy the User-Name to another attribute? What am I achieving?
The server comes with extensive documentation and debugging. This problem *is* solvable, if you follow a careful process.
I'm doing my best and still getting lost. There might be extensive documentation but I haven't yet found what I'm looking for.
Alan DeKok.
Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 21, 2022, at 10:39 AM, David le Roux <david.leroux@miller.co.uk> wrote:
See the FAQ for "I tried to do stuff, and it didn't work".
Which FAQ?
So... you can't google "freeradius faq"? There's also the message you got when you joined the list. It pointed to a web page, and strongly suggested that you read it. Clearly that didn't happen. The problem we have here is that we've spent decades writing documentation, and it just gets ignored. That's frustrating.
What did you do? What happened?
I won't have all the details anymore and it would probably just be a list of "how-not-to-do-this" examples anyway. What happened was that nothing changed and the errors reported the same issue.
So you randomly changed things without being clear about what you changed, or tracking what you did.
The server gives MANY ways to re-write attributes, to copy attributes, and to reference them.
I just need one way to get rid of the host/ portion. The old server uses an attr_rewrite module but that is now deprecated.
Yes... because you can now write if / then / else statements to rewrite attributes. This is documented.
This is what the old server uses:
All of that can be mechanically rewritten to using unlang statements. if (Calling-Station-Id =~ /(^.*:)(.*)/) { update request { Calling-Station-Id := "%{2}" } } It's that easy. But doing that requires reading the documentation, understanding how it works, and then trying something.
You've set "check_cert_cn" in mods-available/eap.
Can you think of any way to have that refer to another attribute?
No. Does it even need to be there?
I really have no idea how to respond to this.
Can you think of any way to copy the User-Name to another attribute? Perhaps with editing?
You've lost me. Why would I want to copy the User-Name to another attribute? What am I achieving?
Solving the problem?
The server comes with extensive documentation and debugging. This problem *is* solvable, if you follow a careful process.
I'm doing my best and still getting lost. There might be extensive documentation but I haven't yet found what I'm looking for.
There is no documentation which describes exactly how to do everything you want. Instead, we document how the server works, and rely on people to "fill in the gaps". You can read "man unlang" to see how to edit attributes. The server also comes with extensive examples on using regular expressions, editing attributes, replacing their values, etc. Just read the various files in sites-available You're just randomly changing things, without trying to understand how the server works. That's a recipe for disaster. Take the "attr_rewrite" rules, and re-write them in plain English. i.e. "if the packet contains X, then do Y". Once you've done that, those English rules can usually be translated pretty directly into "unlang" statements. If you're not sure how, again... there are dozens of examples of using if / then / else in the server. Alan DeKok.
So I used the scriptlet below to remove the host/ section and now no longer get the error message. if (&User-Name =~ /^host\/(.*)$/) { update request { &Cert-CN := "%{1}" } } As I was getting this error: (8) eap_tls: --> host/hostname.domain.com (8) eap_tls: checking certificate CN (hostname.domain.com) with xlat'ed value (host/hostname.domain.com) tls: Certificate CN (hostname.domain.com) does not match specified value (host/hostname.domain.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error However I now get the following error: (2) Received Access-Request Id 15 from 10.37.80.11:1812 to 10.10.251.2:1812 length 547 (2) Framed-MTU = 1480 (2) NAS-IP-Address = 10.37.80.11 (2) NAS-Identifier = "de-sw01" (2) User-Name = "host/hostname.domain.com" (2) Service-Type = Framed-User (2) Framed-Protocol = PPP (2) NAS-Port = 26 (2) NAS-Port-Type = Ethernet (2) NAS-Port-Id = "26" (2) Called-Station-Id = "ec-9a-74-19-ad-00" (2) Calling-Station-Id = "e4-54-e8-54-4a-de" (2) Connect-Info = "CONNECT Ethernet 100Mbps Full duplex" (2) Tunnel-Type:0 = VLAN (2) Tunnel-Medium-Type:0 = IEEE-802 (2) Tunnel-Private-Group-Id:0 = "2" (2) State = 0x0c28a8740c27a50f9f6de32a28f2c7f2 (2) EAP-Message = 0x020f00a60d800000009c160303009701000093030362b4ac3d2994f113ce5e3bd59fbac73691749a9495b7fbc7539910760601aea700002ac02cc02bc030c02f009f009ec024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a01000040000500050100000000000a00080006001d00170018000b00020100000d001400120401050102010403050302030202060106030023000000170000ff01000100 (2) Message-Authenticator = 0xc559daf1fcab5e9b102c581c18f3c4c0 (2) MS-RAS-Vendor = 11 (2) HP-Capability-Advert = 0x011a0000000b28 (2) HP-Capability-Advert = 0x011a0000000b2e (2) HP-Capability-Advert = 0x011a0000000b30 (2) HP-Capability-Advert = 0x011a0000000b3d (2) HP-Capability-Advert = 0x011a0000000b18 (2) HP-Capability-Advert = 0x011a0000000b19 (2) HP-Capability-Advert = 0x0138 (2) HP-Capability-Advert = 0x013a (2) HP-Capability-Advert = 0x0140 (2) HP-Capability-Advert = 0x0141 (2) HP-Capability-Advert = 0x0151 (2) Restoring &session-state (2) &session-state:Framed-MTU = 994 (2) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (2) authorize { (2) policy filter_username { (2) if (&User-Name) { (2) if (&User-Name) -> TRUE (2) if (&User-Name) { (2) if (&User-Name =~ / /) { (2) if (&User-Name =~ / /) -> FALSE (2) if (&User-Name =~ /@[^@]*@/ ) { (2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (2) if (&User-Name =~ /\.\./ ) { (2) if (&User-Name =~ /\.\./ ) -> FALSE (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (2) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (2) if (&User-Name =~ /\.$/) { (2) if (&User-Name =~ /\.$/) -> FALSE (2) if (&User-Name =~ /@\./) { (2) if (&User-Name =~ /@\./) -> FALSE (2) } # if (&User-Name) = notfound (2) } # policy filter_username = notfound (2) [preprocess] = ok (2) [chap] = noop (2) eap: Peer sent EAP Response (code 2) ID 15 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) files: users: Matched entry DEFAULT at line 167 (2) [files] = ok (2) [expiration] = noop (2) [logintime] = noop (2) policy rewrite_calling_station_id { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (2) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (2) update request { (2) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (2) --> e4-54-e8-54-4a-de (2) &Calling-Station-Id := e4-54-e8-54-4a-de (2) } # update request = noop (2) [updated] = updated (2) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (2) ... skipping else: Preceding "if" was taken (2) } # policy rewrite_calling_station_id = updated (2) if (&User-Name =~ /^host\/(.*)$/) { (2) if (&User-Name =~ /^host\/(.*)$/) -> TRUE (2) if (&User-Name =~ /^host\/(.*)$/) { (2) update request { (2) EXPAND %{1} (2) --> hostname.domain.com (2) &User-Name := hostname.domain.com (2) } # update request = noop (2) } # if (&User-Name =~ /^host\/(.*)$/) = noop (2) if (!EAP-Message) { (2) if (!EAP-Message) -> FALSE (2) else { (2) eap: Peer sent EAP Response (code 2) ID 15 length 166 (2) eap: No EAP Start, assuming it's an on-going EAP conversation (2) [eap] = updated (2) } # else = updated (2) } # authorize = updated (2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'hostname.domain.com' (2) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (2) Auth-Type EAP { (2) eap: Expiring EAP session with state 0xf81b3429f8f739ad (2) eap: Finished EAP session with state 0x0c28a8740c27a50f (2) eap: Previous EAP request found for state 0x0c28a8740c27a50f, released from the list (2) eap: Identity does not match User-Name. Authentication failed (2) eap: Failed in handler (2) [eap] = invalid (2) } # Auth-Type EAP = invalid (2) Failed to authenticate the user (2) Using Post-Auth-Type Reject (2) Post-Auth-Type sub-section not found. Ignoring. (2) Login incorrect (Warning: Found 2 auth-types on request for user 'hostname.domain.com'): [hostname.domain.com] (from client de-sw01 port 26 cli e4-54-e8-54-4a-de) (2) Delaying response for 1.000000 seconds I imagine that having now modified the username it no longer matches its identity. I'm not sure how to remediate that. ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 24, 2022, at 8:56 AM, David le Roux <david.leroux@miller.co.uk> wrote:
So I used the scriptlet below to remove the host/ section and now no longer get the error message.
if (&User-Name =~ /^host\/(.*)$/) { update request { &Cert-CN := "%{1}" } }
That's good.
However I now get the following error:
(2) if (&User-Name =~ /^host\/(.*)$/) { (2) if (&User-Name =~ /^host\/(.*)$/) -> TRUE (2) if (&User-Name =~ /^host\/(.*)$/) { (2) update request { (2) EXPAND %{1} (2) --> hostname.domain.com (2) &User-Name := hostname.domain.com
That isn't what you posted above. You're editing the User-Name, and not adding a Cert-CN attribute. It helps to have a methodical approach, and to make sure that you're doing what you think you're doing.
(2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'hostname.domain.com'
Don't force "Auth-Type = eap". It's wrong, and it will cause problems. Let the server figure out what to do. It will make the right decision.
(2) eap: Identity does not match User-Name. Authentication failed
Yup.
I imagine that having now modified the username it no longer matches its identity. I'm not sure how to remediate that.
Don't modify the User-Name? Instead, add a Cert-CN, and then modify the "eap" module to check for Cert-CN, and then User-Name: check_cert_cn = %{%{Cert-CN}:-%{User-Name}} Alan DeKok.
Hi Alan, thanks for the feedback.
So I used the scriptlet below to remove the host/ section and now no longer get the error message.
if (&User-Name =~ /^host\/(.*)$/) { update request { &Cert-CN := "%{1}" } }
That's good.
However I now get the following error:
(2) if (&User-Name =~ /^host\/(.*)$/) { (2) if (&User-Name =~ /^host\/(.*)$/) -> TRUE (2) if (&User-Name =~ /^host\/(.*)$/) { (2) update request { (2) EXPAND %{1} (2) --> hostname.domain.com (2) &User-Name := hostname.domain.com
That isn't what you posted above. You're editing the User-Name, and not adding a Cert-CN attribute.
That's because when I put the unlang script above I get the following error in journalctl -xe /etc/freeradius/3.0/sites-enabled/mh-site[27]: Unknown attribute 'Cert-CN' Therefore I tried the following script (which is what I should have included above instead) in place which gave the above error: if (&User-Name =~ /^host\/(.*)$/) { update request { &User-Name := "%{1}" } }
(2) Found Auth-Type = eap (2) Found Auth-Type = eap (2) ERROR: Warning: Found 2 auth-types on request for user 'hostname.domain.com'
Don't force "Auth-Type = eap". It's wrong, and it will cause problems. Let the server figure out what to do. It will make the right decision.
Noted.
(2) eap: Identity does not match User-Name. Authentication failed
Yup.
I imagine that having now modified the username it no longer matches its identity. I'm not sure how to remediate that.
Don't modify the User-Name?
I was under the impression that the previous error:
tls: Certificate CN (mh300416.millerextra.com) does not match specified value (host/mh300416.millerextra.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error
Required modifying the username to match the certificate?
Instead, add a Cert-CN, and then modify the "eap" module to check for Cert-CN, and then User-Name:
check_cert_cn = %{%{Cert-CN}:-%{User-Name}}
I've added that, but the error message before adding that and after are the same. Here are two samples from the debug log: (0) Received Access-Request Id 5 from 10.224.83.1:55126 to 10.10.251.2:1812 length 192 (0) User-Name = "host/mh301251.millerextra.com" (0) NAS-IP-Address = 127.0.0.1 (0) Called-Station-Id = "AC-17-C8-A1-BD-48:" (0) NAS-Port-Type = Ethernet (0) Service-Type = Framed-User (0) NAS-Port = 2 (0) Calling-Station-Id = "48-4D-7E-F1-EA-19" (0) Acct-Session-Id = "09359BDDFCA6B78E" (0) Framed-MTU = 1400 (0) EAP-Message = 0x0237002201686f73742f6d683330313235312e6d696c6c657265787472612e636f6d (0) Message-Authenticator = 0x03f0855274d889448947df9a9fd3424e (0) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (0) authorize { (0) policy filter_username { (0) if (&User-Name) { (0) if (&User-Name) -> TRUE (0) if (&User-Name) { (0) if (&User-Name =~ / /) { (0) if (&User-Name =~ / /) -> FALSE (0) if (&User-Name =~ /@[^@]*@/ ) { (0) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (0) if (&User-Name =~ /\.\./ ) { (0) if (&User-Name =~ /\.\./ ) -> FALSE (0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (0) if (&User-Name =~ /\.$/) { (0) if (&User-Name =~ /\.$/) -> FALSE (0) if (&User-Name =~ /@\./) { (0) if (&User-Name =~ /@\./) -> FALSE (0) } # if (&User-Name) = notfound (0) } # policy filter_username = notfound (0) [preprocess] = ok (0) [chap] = noop (0) eap: Peer sent EAP Response (code 2) ID 55 length 34 (0) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (0) [eap] = ok (0) } # authorize = ok (0) Found Auth-Type = eap (0) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (0) Auth-Type EAP { (0) eap: Peer sent packet with method EAP Identity (1) (0) eap: Calling submodule eap_tls to process data (0) eap_tls: (TLS) Initiating new session (0) eap_tls: (TLS) Setting verify mode to require certificate from client (0) eap: Sending EAP Request (code 1) ID 56 length 6 (0) eap: EAP session adding &reply:State = 0x699f699869a764e8 (0) [eap] = handled (0) } # Auth-Type EAP = handled (0) Using Post-Auth-Type Challenge (0) Post-Auth-Type sub-section not found. Ignoring. (0) session-state: Saving cached attributes (0) Framed-MTU = 994 (0) Sent Access-Challenge Id 5 from 10.10.251.2:1812 to 10.224.83.1:55126 length 64 (0) EAP-Message = 0x013800060d20 (0) Message-Authenticator = 0x00000000000000000000000000000000 (0) State = 0x699f699869a764e8d6204fd4e9d08f1d (0) Finished request (7) Received Access-Request Id 9 from 10.225.15.1:44056 to 10.10.251.2:1812 length 342 (7) User-Name = "host/mh300163.millerextra.com" (7) NAS-IP-Address = 127.0.0.1 (7) Called-Station-Id = "E0-55-3D-89-2E-20:" (7) NAS-Port-Type = Ethernet (7) Service-Type = Framed-User (7) NAS-Port = 3 (7) Calling-Station-Id = "18-66-DA-40-C0-53" (7) Acct-Session-Id = "25ECF349CE9496B2" (7) Framed-MTU = 1400 (7) EAP-Message = 0x022600a60d800000009c160303009701000093030362b71d68d878afc7d77f055c7dd12f0cb835715834e077f7a1dafeb097a7456200002ac02cc02bc030c02f009f009ec024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a01000040000500050100000000000a00080006001d00170018000b00020100000d001400120401050102010403050302030202060106030023000000170000ff01000100 (7) State = 0x00b4d7a90092daeea8e4e63457a93006 (7) Message-Authenticator = 0x0fefe8ca6f7fc30bbe5980c32a7e2dfc (7) Restoring &session-state (7) &session-state:Framed-MTU = 994 (7) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (7) authorize { (7) policy filter_username { (7) if (&User-Name) { (7) if (&User-Name) -> TRUE (7) if (&User-Name) { (7) if (&User-Name =~ / /) { (7) if (&User-Name =~ / /) -> FALSE (7) if (&User-Name =~ /@[^@]*@/ ) { (7) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (7) if (&User-Name =~ /\.\./ ) { (7) if (&User-Name =~ /\.\./ ) -> FALSE (7) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (7) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (7) if (&User-Name =~ /\.$/) { (7) if (&User-Name =~ /\.$/) -> FALSE (7) if (&User-Name =~ /@\./) { (7) if (&User-Name =~ /@\./) -> FALSE (7) } # if (&User-Name) = notfound (7) } # policy filter_username = notfound (7) [preprocess] = ok (7) [chap] = noop (7) eap: Peer sent EAP Response (code 2) ID 38 length 166 (7) eap: No EAP Start, assuming it's an on-going EAP conversation (7) [eap] = updated (7) [files] = noop (7) [expiration] = noop (7) [logintime] = noop (7) policy rewrite_calling_station_id { (7) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (7) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) -> TRUE (7) if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) { (7) update request { (7) EXPAND %{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}} (7) --> 18-66-da-40-c0-53 (7) &Calling-Station-Id := 18-66-da-40-c0-53 (7) } # update request = noop (7) [updated] = updated (7) } # if (&Calling-Station-Id && (&Calling-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i)) = updated (7) ... skipping else: Preceding "if" was taken (7) } # policy rewrite_calling_station_id = updated (7) if (&User-Name =~ /^host\/(.*)$/) { (7) if (&User-Name =~ /^host\/(.*)$/) -> TRUE (7) if (&User-Name =~ /^host\/(.*)$/) { (7) update request { (7) EXPAND %{1} (7) --> mh300163.millerextra.com (7) &User-Name := mh300163.millerextra.com (7) } # update request = noop (7) } # if (&User-Name =~ /^host\/(.*)$/) = noop (7) if (!EAP-Message) { (7) if (!EAP-Message) -> FALSE (7) else { (7) eap: Peer sent EAP Response (code 2) ID 38 length 166 (7) eap: No EAP Start, assuming it's an on-going EAP conversation (7) [eap] = updated (7) } # else = updated (7) } # authorize = updated (7) Found Auth-Type = eap (7) Found Auth-Type = eap (7) ERROR: Warning: Found 2 auth-types on request for user 'mh300163.millerextra.com' (7) # Executing group from file /etc/freeradius/3.0/sites-enabled/mh-site (7) Auth-Type EAP { (7) eap: Expiring EAP session with state 0xdb417641db437b52 (7) eap: Finished EAP session with state 0x00b4d7a90092daee (7) eap: Previous EAP request found for state 0x00b4d7a90092daee, released from the list (7) eap: Identity does not match User-Name. Authentication failed (7) eap: Failed in handler (7) [eap] = invalid (7) } # Auth-Type EAP = invalid (7) Failed to authenticate the user (7) Using Post-Auth-Type Reject (7) Post-Auth-Type sub-section not found. Ignoring. (7) Login incorrect (Warning: Found 2 auth-types on request for user 'mh300163.millerextra.com'): [mh300163.millerextra.com] (from client MWAN-10.225.15.1 port 3 cli 18-66-da-40-c0-53) (7) Delaying response for 1.000000 seconds (7) Sending delayed response (7) Sent Access-Reject Id 9 from 10.10.251.2:1812 to 10.225.15.1:44056 length 20 ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 27, 2022, at 9:51 AM, David le Roux <david.leroux@miller.co.uk> wrote:
That's because when I put the unlang script above I get the following error in journalctl -xe
All of the documentation says to test with "radiusd -X" (or freeradius-X). Because that gives much more information than some random log file.
/etc/freeradius/3.0/sites-enabled/mh-site[27]: Unknown attribute 'Cert-CN'
Yes, you can't just invent things and have them work. The server uses pre-defined dictionaries of named attributes. Happily, you can also define new attributes. Edit /etc/freeradius/3.0/dictionary, and add: ATTRIBUTE Cert-CN 3000 string and it will be define, and it will work.
I was under the impression that the previous error:
tls: Certificate CN (mh300416.millerextra.com) does not match specified value (host/mh300416.millerextra.com)! (8) eap_tls: >>> send TLS 1.2 [length 0002] (8) eap_tls: ERROR: TLS Alert write:fatal:internal error tls: TLS_accept: Error in error
Required modifying the username to match the certificate?
No. The error came because you modified the User-Name, and the modified version didn't match the certificate.
Instead, add a Cert-CN, and then modify the "eap" module to check for Cert-CN, and then User-Name:
check_cert_cn = %{%{Cert-CN}:-%{User-Name}}
I've added that, but the error message before adding that and after are the same.
Define the Cert-CN attribute as described above. And add a Cert-Cn in the "update" section, instead of over-writing User-Name. It will work. Alan DeKok.
/etc/freeradius/3.0/sites-enabled/mh-site[27]: Unknown attribute 'Cert-CN'
Yes, you can't just invent things and have them work. The server uses pre-defined dictionaries of named attributes.
Happily, you can also define new attributes. Edit /etc/freeradius/3.0/dictionary, and add:
ATTRIBUTE Cert-CN 3000 string
and it will be define, and it will work.
Define the Cert-CN attribute as described above. And add a Cert-Cn in the "update" section, instead of over-writing User-Name. It will work.
Thanks, that makes sense. I've done that. That may have done the trick. However it still won't authenticate but I wonder if I've now got a different certificate issue on hand? (4) Received Access-Request Id 232 from 10.225.80.1:43414 to 10.10.251.2:1812 length 192 (4) User-Name = "host/mh300649.millerextra.com" (4) NAS-IP-Address = 127.0.0.1 (4) Called-Station-Id = "E0-CB-BC-27-80-60:" (4) NAS-Port-Type = Ethernet (4) Service-Type = Framed-User (4) NAS-Port = 4 (4) Calling-Station-Id = "50-9A-4C-47-69-92" (4) Acct-Session-Id = "D3EE5FFA3658128F" (4) Framed-MTU = 1400 (4) EAP-Message = 0x020f002201686f73742f6d683330303634392e6d696c6c657265787472612e636f6d (4) Message-Authenticator = 0x471a458667926672258467a14bb75939 (4) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/mh-site (4) authorize { (4) policy filter_username { (4) if (&User-Name) { (4) if (&User-Name) -> TRUE (4) if (&User-Name) { (4) if (&User-Name =~ / /) { (4) if (&User-Name =~ / /) -> FALSE (4) if (&User-Name =~ /@[^@]*@/ ) { (4) if (&User-Name =~ /@[^@]*@/ ) -> FALSE (4) if (&User-Name =~ /\.\./ ) { (4) if (&User-Name =~ /\.\./ ) -> FALSE (4) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) { (4) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE (4) if (&User-Name =~ /\.$/) { (4) if (&User-Name =~ /\.$/) -> FALSE (4) if (&User-Name =~ /@\./) { (4) if (&User-Name =~ /@\./) -> FALSE (4) } # if (&User-Name) = notfound (4) } # policy filter_username = notfound (4) [preprocess] = ok (4) [chap] = noop (4) eap: Peer sent EAP Response (code 2) ID 15 length 34 (4) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize (4) [eap] = ok (4) } # authorize = ok (4) Found Auth-Type = eap (4) Auth-Type sub-section not found. Ignoring. (4) Failed to authenticate the user (4) Using Post-Auth-Type Reject (4) Post-Auth-Type sub-section not found. Ignoring. (4) Login incorrect: [host/mh300649.millerextra.com] (from client MWAN-10.225.80.1 port 4 cli 50-9A-4C-47-69-92) (4) Delaying response for 1.000000 seconds (4) Sending delayed response (4) Sent Access-Reject Id 232 from 10.10.251.2:1812 to 10.225.80.1:43414 length 20 Thanks a lot. ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
On Jun 29, 2022, at 6:53 AM, David le Roux <david.leroux@miller.co.uk> wrote:
Thanks, that makes sense. I've done that.
That's good.
That may have done the trick. However it still won't authenticate but I wonder if I've now got a different certificate issue on hand?
That's not what the error message says.
... (4) Found Auth-Type = eap (4) Auth-Type sub-section not found. Ignoring.
You edited the "authenticate" section, and removed the references to "eap". Why? You also need to follow a methodical process, which would have caught this issue. Change ONE thing. Then TEST. If it works, make a copy of the configuration (git is free), then repeat. Following this process would allow you discover for yourself that the source of this error is deleting "eap" from the "authenticate" section. And, the error has nothing to do with certificates, because the words "TLS" or "certificate" don't appear in the error message. Alan DeKok.
That's that all sorted. Thank you so much for your time and patience! David le Roux ________________________________ Miller Homes Limited Registered in Scotland - SC255429 2 Lochside View, Edinburgh Park, Edinburgh, EH12 9DH Disclaimer: The Information in this e-mail is confidential and for use by the addressee(s) only. It may also be privileged. If you are not the intended recipient please notify us immediately on +44 (0) 870 336 5000 and delete the message from your computer: you may not copy or forward it, or use or disclose its contents to any other person. We do not accept any liability or responsibility for: (1) changes made to this email after it was sent, or (2) viruses transmitted through this email or any attachment. Miller Homes Limited <https://www.millerhomes.co.uk>
participants (3)
-
Alan DeKok -
David le Roux -
Michael Schwartzkopff