Debian

Freeradius 看不到它的 WAP 客戶端

  • May 20, 2017

我有 Freeradius v.3 Server 和 WAccessPoint (hostapd),都安裝在同一台機器 (localhost) Ubuntu Server 16.04.1 上。

我首先在沒有 freeradius 的情況下測試了我的連接 -> 我可以通過 NAS 和 MASQUERADE 連接到 WAP 並使用 Internet。

當我想使用 Freeradius 啟動身份驗證時,我將 WAP-PSK 更改為 WAP-EAP,在 hostapd.conf 中為 RADIUS-SERVER 添加一些行並啟動 freeradius -X(在調試模式下),但是當我嘗試時沒有日誌通過AP連接。

無論連接是否成功,每個與 Freeradius 的連接都應該記錄和調試它,但我什麼也沒看到,這意味著我的客戶端和 Freeradius 無法辨識對方。這是我的設置:

hostapd.conf:

...
own_ip_addr=127.0.0.1
wpa_key_mgmt=WPA-EAP
rsn_pairwise=CCMP
wmm_enabled=1
wpa=2
channel=1
auth_algs=1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=secret 
...

/etc/freeradius/clients.conf

client localhost {
ipaddr=127.0.0.1
secret=secret
require_message_authenticator = yes
}

我還嘗試使用我的 WAP 介面的 ipaddr 在 client.conf 中創建一個新客戶端,但我也無法正常工作。

更新1:

自由半徑-v:

FreeRADIUS Version 3.0.11, for host x86_64-pc-linux-gnu

網路統計-alnp | grep 1812:

udp 0 0 0.0.0.0:1812 0.0.0.0:*
udp 0 0 127.0.0.1:25868 127.0.0.1:1812 ESTABLISHED 1191/hostapd

UPDATE2:伺服器配置文件:

server {
listen {
   type = auth
   port = 1812
   ipaddr = *
}
authorize {
   preprocess
   eap {
           ok = return
   }
   expiration
   logintime
}
authenticate {
   eap
}
preacct {
   preprocess
   acct_unique
   suffix
   files
}
accounting {
   detail
   # unix
   radutmp
   # exec
   attr_filter.accounting_response
}
session {
   radutmp
}
post-auth {
   # exec
   Post-Auth-Type REJECT {
           attr_filter.access_reject
   }
}
pre-proxy {

}
post-proxy {
   eap
}

}

更新3:

自由半徑-X:

   Server was built with: 
 accounting               : yes
 authentication           : yes
 ascend-binary-attributes : yes
 coa                      : yes
 control-socket           : yes
 detail                   : yes
 dhcp                     : yes
 dynamic-clients          : yes
 osfc2                    : no
 proxy                    : yes
 regex-pcre               : no
 regex-posix              : yes
 regex-posix-extended     : yes
 session-management       : yes
 stats                    : yes
 tcp                      : yes
 threads                  : yes
 tls                      : yes
 unlang                   : yes
 vmps                     : yes
 developer                : no
Server core libs:
 freeradius-server        : 3.0.11
 talloc                   : 2.0.*
 ssl                      : 1.0.2g release
Endianness:
 little
Compilation flags:
 cppflags : -Wdate-time -D_FORTIFY_SOURCE=2
 cflags   : -I/build/freeradius-G88Mfz/freeradius-3.0.11 -I/build/freeradius-G88Mfz/freeradius-3.0.11/src -include /build/freeradius-G88Mfz/freeradius-3.0.11/src/freeradius-devel/autoconf.h -include /build/freeradius-G88Mfz/freeradius-3.0.11/src/freeradius-devel/build.h -include /build/freeradius-G88Mfz/freeradius-3.0.11/src/freeradius-devel/features.h -include /build/freeradius-G88Mfz/freeradius-3.0.11/src/freeradius-devel/radpaths.h -fno-strict-aliasing -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -O2 -Wall -std=c99 -D_GNU_SOURCE -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 -DNDEBUG -DIS_MODULE=1
 ldflags  :  -Wl,-Bsymbolic-functions -Wl,-z,relro
 libs     : -lcrypto -lssl -ltalloc -lcap -lnsl -lresolv -ldl -lpthread -lreadline

Copyright (C) 1999-2016 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/dictionary
including configuration file /etc/freeradius/radiusd.conf
including configuration file /etc/freeradius/clients.conf
including files in directory /etc/freeradius/mods-enabled/
including configuration file /etc/freeradius/mods-enabled/detail
including configuration file /etc/freeradius/mods-enabled/utf8
including configuration file /etc/freeradius/mods-enabled/linelog
including configuration file /etc/freeradius/mods-enabled/realm
including configuration file /etc/freeradius/mods-enabled/echo
including configuration file /etc/freeradius/mods-enabled/radutmp
including configuration file /etc/freeradius/mods-enabled/exec
including configuration file /etc/freeradius/mods-enabled/unpack
including configuration file /etc/freeradius/mods-enabled/mschap
including configuration file /etc/freeradius/mods-enabled/replicate
including configuration file /etc/freeradius/mods-enabled/cache_eap
including configuration file /etc/freeradius/mods-enabled/pap
including configuration file /etc/freeradius/mods-enabled/passwd
including configuration file /etc/freeradius/mods-enabled/files
including configuration file /etc/freeradius/mods-enabled/logintime
including configuration file /etc/freeradius/mods-enabled/unix
including configuration file /etc/freeradius/mods-enabled/soh
including configuration file /etc/freeradius/mods-enabled/expiration
including configuration file /etc/freeradius/mods-enabled/sradutmp
including configuration file /etc/freeradius/mods-enabled/chap
including configuration file /etc/freeradius/mods-enabled/preprocess
including configuration file /etc/freeradius/mods-enabled/expr
including configuration file /etc/freeradius/mods-enabled/attr_filter
including configuration file /etc/freeradius/mods-enabled/dynamic_clients
including configuration file /etc/freeradius/mods-enabled/digest
including configuration file /etc/freeradius/mods-enabled/eap
including configuration file /etc/freeradius/mods-enabled/always
including configuration file /etc/freeradius/mods-enabled/detail.log
including configuration file /etc/freeradius/mods-enabled/ntlm_auth
including files in directory /etc/freeradius/policy.d/
including configuration file /etc/freeradius/policy.d/canonicalization
including configuration file /etc/freeradius/policy.d/filter
including configuration file /etc/freeradius/policy.d/accounting
including configuration file /etc/freeradius/policy.d/cui
including configuration file /etc/freeradius/policy.d/dhcp
including configuration file /etc/freeradius/policy.d/operator-name
including configuration file /etc/freeradius/policy.d/eap
including configuration file /etc/freeradius/policy.d/abfab-tr
including configuration file /etc/freeradius/policy.d/debug
including configuration file /etc/freeradius/policy.d/control
including files in directory /etc/freeradius/sites-enabled/
including configuration file /etc/freeradius/sites-enabled/mynetwork
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 = 30
   cleanup_delay = 5
   max_requests = 16384
   pidfile = "/var/run/freeradius/freeradius.pid"
   checkrad = "/usr/sbin/checkrad"
   debug_level = 0
   proxy_requests = no
log {
   stripped_names = no
   auth = yes
   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 ####
radiusd: #### Loading Clients ####
client myclient {
   ipaddr = 10.0.0.1
   require_message_authenticator = yes
   secret = <<< secret >>>
 limit {
   max_connections = 16
   lifetime = 0
   idle_timeout = 30
 }
}
client localhost {
   ipaddr = 127.0.0.1
   require_message_authenticator = no
   secret = <<< secret >>>
   nas_type = "other"
   proto = "*"
 limit {
   max_connections = 16
   lifetime = 0
   idle_timeout = 30
 }
}
client localhost_ipv6 {
   ipv6addr = ::1
   require_message_authenticator = no
   secret = <<< secret >>>
 limit {
   max_connections = 16
   lifetime = 0
   idle_timeout = 30
 }
}
Debugger not attached
# Creating Auth-Type = eap
radiusd: #### Instantiating modules ####
modules {
 # Loaded module rlm_detail
 # Loading module "detail" from file /etc/freeradius/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_utf8
 # Loading module "utf8" from file /etc/freeradius/mods-enabled/utf8
 # Loaded module rlm_linelog
 # Loading module "linelog" from file /etc/freeradius/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/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/mods-enabled/realm
 realm IPASS {
   format = "prefix"
   delimiter = "/"
   ignore_default = no
   ignore_null = no
 }
 # Loading module "suffix" from file /etc/freeradius/mods-enabled/realm
 realm suffix {
   format = "suffix"
   delimiter = "@"
   ignore_default = no
   ignore_null = no
 }
 # Loading module "realmpercent" from file /etc/freeradius/mods-enabled/realm
 realm realmpercent {
   format = "suffix"
   delimiter = "%"
   ignore_default = no
   ignore_null = no
 }
 # Loading module "ntdomain" from file /etc/freeradius/mods-enabled/realm
 realm ntdomain {
   format = "prefix"
   delimiter = "\\"
   ignore_default = no
   ignore_null = no
 }
 # Loaded module rlm_exec
 # Loading module "echo" from file /etc/freeradius/mods-enabled/echo
 exec echo {
   wait = yes
   program = "/bin/echo %{User-Name}"
   input_pairs = "request"
   output_pairs = "reply"
   shell_escape = yes
 }
 # Loaded module rlm_radutmp
 # Loading module "radutmp" from file /etc/freeradius/mods-enabled/radutmp
 radutmp {
   filename = "/var/log/freeradius/radutmp"
   username = "%{User-Name}"
   case_sensitive = yes
   check_with_nas = yes
   permissions = 384
   caller_id = yes
 }
 # Loading module "exec" from file /etc/freeradius/mods-enabled/exec
 exec {
   wait = no
   input_pairs = "request"
   shell_escape = yes
   timeout = 10
 }
 # Loaded module rlm_unpack
 # Loading module "unpack" from file /etc/freeradius/mods-enabled/unpack
 # Loaded module rlm_mschap
 # Loading module "mschap" from file /etc/freeradius/mods-enabled/mschap
 mschap {
   use_mppe = yes
   require_encryption = no
   require_strong = no
   with_ntdomain_hack = yes
  passchange {
  }
   allow_retry = yes
 }
 # Loaded module rlm_replicate
 # Loading module "replicate" from file /etc/freeradius/mods-enabled/replicate
 # Loaded module rlm_cache
 # Loading module "cache_eap" from file /etc/freeradius/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_pap
 # Loading module "pap" from file /etc/freeradius/mods-enabled/pap
 pap {
   normalise = yes
 }
 # Loaded module rlm_passwd
 # Loading module "etc_passwd" from file /etc/freeradius/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_files
 # Loading module "files" from file /etc/freeradius/mods-enabled/files
 files {
   filename = "/etc/freeradius/mods-config/files/authorize"
   acctusersfile = "/etc/freeradius/mods-config/files/accounting"
   preproxy_usersfile = "/etc/freeradius/mods-config/files/pre-proxy"
 }
 # Loaded module rlm_logintime
 # Loading module "logintime" from file /etc/freeradius/mods-enabled/logintime
 logintime {
   minimum_timeout = 60
 }
 # Loaded module rlm_unix
 # Loading module "unix" from file /etc/freeradius/mods-enabled/unix
 unix {
   radwtmp = "/var/log/freeradius/radwtmp"
 }
Creating attribute Unix-Group
 # Loaded module rlm_soh
 # Loading module "soh" from file /etc/freeradius/mods-enabled/soh
 soh {
   dhcp = yes
 }
 # Loaded module rlm_expiration
 # Loading module "expiration" from file /etc/freeradius/mods-enabled/expiration
 # Loading module "sradutmp" from file /etc/freeradius/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_chap
 # Loading module "chap" from file /etc/freeradius/mods-enabled/chap
 # Loaded module rlm_preprocess
 # Loading module "preprocess" from file /etc/freeradius/mods-enabled/preprocess
 preprocess {
   huntgroups = "/etc/freeradius/mods-config/preprocess/huntgroups"
   hints = "/etc/freeradius/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
 }
 # Loaded module rlm_expr
 # Loading module "expr" from file /etc/freeradius/mods-enabled/expr
 expr {
   safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ"
 }
 # Loaded module rlm_attr_filter
 # Loading module "attr_filter.post-proxy" from file /etc/freeradius/mods-enabled/attr_filter
 attr_filter attr_filter.post-proxy {
   filename = "/etc/freeradius/mods-config/attr_filter/post-proxy"
   key = "%{Realm}"
   relaxed = no
 }
 # Loading module "attr_filter.pre-proxy" from file /etc/freeradius/mods-enabled/attr_filter
 attr_filter attr_filter.pre-proxy {
   filename = "/etc/freeradius/mods-config/attr_filter/pre-proxy"
   key = "%{Realm}"
   relaxed = no
 }
 # Loading module "attr_filter.access_reject" from file /etc/freeradius/mods-enabled/attr_filter
 attr_filter attr_filter.access_reject {
   filename = "/etc/freeradius/mods-config/attr_filter/access_reject"
   key = "%{User-Name}"
   relaxed = no
 }
 # Loading module "attr_filter.access_challenge" from file /etc/freeradius/mods-enabled/attr_filter
 attr_filter attr_filter.access_challenge {
   filename = "/etc/freeradius/mods-config/attr_filter/access_challenge"
   key = "%{User-Name}"
   relaxed = no
 }
 # Loading module "attr_filter.accounting_response" from file /etc/freeradius/mods-enabled/attr_filter
 attr_filter attr_filter.accounting_response {
   filename = "/etc/freeradius/mods-config/attr_filter/accounting_response"
   key = "%{User-Name}"
   relaxed = no
 }
 # Loaded module rlm_dynamic_clients
 # Loading module "dynamic_clients" from file /etc/freeradius/mods-enabled/dynamic_clients
 # Loaded module rlm_digest
 # Loading module "digest" from file /etc/freeradius/mods-enabled/digest
 # Loaded module rlm_eap
 # Loading module "eap" from file /etc/freeradius/mods-enabled/eap
 eap {
   default_eap_type = "tls"
   timer_expire = 60
   ignore_unknown_eap_types = no
   cisco_accounting_username_bug = no
   max_sessions = 4096
 }
 # Loaded module rlm_always
 # Loading module "reject" from file /etc/freeradius/mods-enabled/always
 always reject {
   rcode = "reject"
   simulcount = 0
   mpp = no
 }
 # Loading module "fail" from file /etc/freeradius/mods-enabled/always
 always fail {
   rcode = "fail"
   simulcount = 0
   mpp = no
 }
 # Loading module "ok" from file /etc/freeradius/mods-enabled/always
 always ok {
   rcode = "ok"
   simulcount = 0
   mpp = no
 }
 # Loading module "handled" from file /etc/freeradius/mods-enabled/always
 always handled {
   rcode = "handled"
   simulcount = 0
   mpp = no
 }
 # Loading module "invalid" from file /etc/freeradius/mods-enabled/always
 always invalid {
   rcode = "invalid"
   simulcount = 0
   mpp = no
 }
 # Loading module "userlock" from file /etc/freeradius/mods-enabled/always
 always userlock {
   rcode = "userlock"
   simulcount = 0
   mpp = no
 }
 # Loading module "notfound" from file /etc/freeradius/mods-enabled/always
 always notfound {
   rcode = "notfound"
   simulcount = 0
   mpp = no
 }
 # Loading module "noop" from file /etc/freeradius/mods-enabled/always
 always noop {
   rcode = "noop"
   simulcount = 0
   mpp = no
 }
 # Loading module "updated" from file /etc/freeradius/mods-enabled/always
 always updated {
   rcode = "updated"
   simulcount = 0
   mpp = no
 }
 # Loading module "auth_log" from file /etc/freeradius/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/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/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/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 "ntlm_auth" from file /etc/freeradius/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
 }
 instantiate {
 }
 # Instantiating module "detail" from file /etc/freeradius/mods-enabled/detail
 # Instantiating module "linelog" from file /etc/freeradius/mods-enabled/linelog
 # Instantiating module "log_accounting" from file /etc/freeradius/mods-enabled/linelog
 # Instantiating module "IPASS" from file /etc/freeradius/mods-enabled/realm
 # Instantiating module "suffix" from file /etc/freeradius/mods-enabled/realm
 # Instantiating module "realmpercent" from file /etc/freeradius/mods-enabled/realm
 # Instantiating module "ntdomain" from file /etc/freeradius/mods-enabled/realm
 # Instantiating module "mschap" from file /etc/freeradius/mods-enabled/mschap
rlm_mschap (mschap): using internal authentication
 # Instantiating module "cache_eap" from file /etc/freeradius/mods-enabled/cache_eap
rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree) loaded and linked
 # Instantiating module "pap" from file /etc/freeradius/mods-enabled/pap
 # Instantiating module "etc_passwd" from file /etc/freeradius/mods-enabled/passwd
rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no
 # Instantiating module "files" from file /etc/freeradius/mods-enabled/files
reading pairlist file /etc/freeradius/mods-config/files/authorize
reading pairlist file /etc/freeradius/mods-config/files/accounting
reading pairlist file /etc/freeradius/mods-config/files/pre-proxy
 # Instantiating module "logintime" from file /etc/freeradius/mods-enabled/logintime
 # Instantiating module "expiration" from file /etc/freeradius/mods-enabled/expiration
 # Instantiating module "preprocess" from file /etc/freeradius/mods-enabled/preprocess
reading pairlist file /etc/freeradius/mods-config/preprocess/huntgroups
reading pairlist file /etc/freeradius/mods-config/preprocess/hints
 # Instantiating module "attr_filter.post-proxy" from file /etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/post-proxy
 # Instantiating module "attr_filter.pre-proxy" from file /etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/pre-proxy
 # Instantiating module "attr_filter.access_reject" from file /etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/access_reject
[/etc/freeradius/mods-config/attr_filter/access_reject]:11 Check item "FreeRADIUS-Response-Delay"   found in filter list for realm "DEFAULT". 
[/etc/freeradius/mods-config/attr_filter/access_reject]:11 Check item "FreeRADIUS-Response-Delay-USec"  found in filter list for realm "DEFAULT". 
 # Instantiating module "attr_filter.access_challenge" from file /etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/access_challenge
 # Instantiating module "attr_filter.accounting_response" from file /etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/accounting_response
 # Instantiating module "eap" from file /etc/freeradius/mods-enabled/eap
  # Linked to sub-module rlm_eap_md5
  # Linked to sub-module rlm_eap_leap
  # Linked to sub-module rlm_eap_tls
  tls {
   tls = "tls-common"
  }
  tls-config tls-common {
   verify_depth = 0
   ca_path = "/etc/freeradius/certs"
   pem_file_type = yes
   private_key_file = "/etc/freeradius/certs/server.key"
   certificate_file = "/etc/freeradius/certs/server.pem"
   ca_file = "/etc/freeradius/certs/ca.pem"
   private_key_password = <<< secret >>>
   dh_file = "/etc/freeradius/certs/dh"
   random_file = "/dev/urandom"
   fragment_size = 1024
   include_length = yes
   auto_chain = yes
   check_crl = no
   check_all_crl = no
   cipher_list = "HIGH"
   ecdh_curve = "prime256v1"
   cache {
       enable = no
       lifetime = 24
       max_entries = 255
   }
   verify {
       skip_if_ocsp_ok = no
       tmpdir = "/tmp/radiusd"
       client = "/usr/bin/openssl verify -CApath /etc/freeradius/certs %{TLS-Client-Cert-Filename}"
   }
   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
 # Instantiating module "reject" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "fail" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "ok" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "handled" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "invalid" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "userlock" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "notfound" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "noop" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "updated" from file /etc/freeradius/mods-enabled/always
 # Instantiating module "auth_log" from file /etc/freeradius/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/mods-enabled/detail.log
 # Instantiating module "pre_proxy_log" from file /etc/freeradius/mods-enabled/detail.log
 # Instantiating module "post_proxy_log" from file /etc/freeradius/mods-enabled/detail.log
} # modules
radiusd: #### Loading Virtual Servers ####
server { # from file /etc/freeradius/sites-enabled/mynetwork
# Loading authenticate {...}
# Loading authorize {...}
# Loading preacct {...}
# Loading accounting {...}
# Loading session {...}
# Loading post-auth {...}
} # server
radiusd: #### Opening IP addresses and Ports ####
listen {
   type = "auth"
   ipaddr = *
   port = 1812
}
Listening on auth address * port 1812
Ready to process requests

我建議您的 localhost 條目/etc/freeradius/clients.conf為:

client localhost {
   ipaddr = 127.0.0.1
   secret      = secret
   require_message_authenticator = no
   nas_type     = other
}

nas_type通常ciscolivingstonother

還要檢查您的 hostapd.conf:您還應該設置ieee8021x=1

至於require_message_authenticator發送 CoA/斷開連接消息更有用,並且要對其進行配置,您需要radius_das_require_message_authenticator=1hostapd.conf. 沒有它我會做

$$ for now $$. 要執行freeradius -X調試,您還需要停止freeradius守護程序,從您的 netstat 命令中,我們可以看到 1812 正在偵聽,因此服務正在執行;調試它假定您在單執行緒守護程序中重新啟動它。

Freeradius 將啟動直到“Listening …Ready to process requests”。真正的樂趣從這裡開始,之後的一切都是為了調試驗證 Wifi 客戶端的事務。在任何時候,您都可以使用 ^C 離開,如果您想啟動該服務,您可以再次啟動該服務。

需要注意的是password,clients.conf 中的 /secret 應該與用於調試命令或 hostpad.conf 中的 /secret 相同。否則 freeradius 將拒絕任何帶有其他秘密的數據包。

至於我們用來調試 FreeRadius 請求的調試命令,為了他人的利益:

echo "Message-Authenticator = 0x00,FreeRADIUS-Statistics-Type = 31" | radclient localhost:18121 status adminsecret

這個檢查狀態,但你必須讓狀態虛擬主機處於活動狀態。

和:

echo "User-Name=test,User-Password=mypass,Framed-Protocol=PPP " | /usr/local/bin/radclient localhost:1812 auth secret

至於未來,在您對 Freeradius 更加熟悉之後,如果要在生產中使用此設置,我建議您從 github 獲取並編譯目前的 3.0.13,因為有無數錯誤修復。

引用自:https://unix.stackexchange.com/questions/320261