FreeRADIUS DHCP Server is receiving requests but not replying
The FreeRADIUS DHCP 3.2.2 Server on Ubuntu 24.04 I had issues with last time starts without displaying errors, however as I'm testing the functionalities by sending packets from a different host, the DHCP server only receives requests without replying. Thanks in advance, Kind regards, Jan-Willem Curinckx The dhcpclient sending packets from a different host: root@frituur:~# dhcpclient 193.191.177.231:6700 -f dhcp-packet.txt -x discover DHCP-Client-Identifier := 0x616263313233 ---------------------------------------------------------------------- DHCP-Opcode = 0x01 DHCP-Hardware-Type = 0x01 DHCP-Hardware-Address-Length = 0x06 DHCP-Hop-Count = 0x00 DHCP-Transaction-Id = 0x3603f3f3 DHCP-Number-of-Seconds = 0x0000 DHCP-Flags = 0x0000 DHCP-Client-IP-Address = 0x00000000 DHCP-Your-IP-Address = 0x00000000 DHCP-Server-IP-Address = 0x00000000 DHCP-Gateway-IP-Address = 0x00000000 DHCP-Client-Hardware-Address = 0x0201aabbccdd00000000000000000000 DHCP-Server-Host-Name = 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 DHCP-Boot-Filename = 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 63 82 53 63 35 01 01 3d 06 61 62 63 31 32 33 ---------------------------------------------------------------------- dhcpclient: Error receiving reply: Failed reading DHCP socket: Resource temporarily unavailable root@frituur:~# dhcpclient 193.191.177.231:6700 -f dhcp-packet.txt -x auto DHCP-Client-Identifier := 0x616263313233 ---------------------------------------------------------------------- DHCP-Opcode = 0x01 DHCP-Hardware-Type = 0x01 DHCP-Hardware-Address-Length = 0x06 DHCP-Hop-Count = 0x00 DHCP-Transaction-Id = 0xdc1551df DHCP-Number-of-Seconds = 0x0000 DHCP-Flags = 0x0000 DHCP-Client-IP-Address = 0x00000000 DHCP-Your-IP-Address = 0x00000000 DHCP-Server-IP-Address = 0x00000000 DHCP-Gateway-IP-Address = 0x00000000 DHCP-Client-Hardware-Address = 0x0201aabbccdd00000000000000000000 DHCP-Server-Host-Name = 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 DHCP-Boot-Filename = 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 63 82 53 63 35 01 01 3d 06 61 62 63 31 32 33 ---------------------------------------------------------------------- dhcpclient: Error receiving reply: Failed reading DHCP socket: Resource temporarily unavailable The logs from using freeradius -X: FreeRADIUS Version 3.2.3 Copyright (C) 1999-2022 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/proxy.conf including configuration file /etc/freeradius/clients.conf including files in directory /etc/freeradius/mods-enabled/ including configuration file /etc/freeradius/mods-enabled/unpack including configuration file /etc/freeradius/mods-enabled/radutmp including configuration file /etc/freeradius/mods-enabled/always including configuration file /etc/freeradius/mods-enabled/eap including configuration file /etc/freeradius/mods-enabled/sradutmp including configuration file /etc/freeradius/mods-enabled/exec including configuration file /etc/freeradius/mods-enabled/date including configuration file /etc/freeradius/mods-enabled/unix including configuration file /etc/freeradius/mods-enabled/detail including configuration file /etc/freeradius/mods-enabled/digest including configuration file /etc/freeradius/mods-enabled/ntlm_auth including configuration file /etc/freeradius/mods-enabled/replicate including configuration file /etc/freeradius/mods-enabled/files including configuration file /etc/freeradius/mods-enabled/echo including configuration file /etc/freeradius/mods-enabled/dhcp_sqlippool including configuration file /etc/freeradius/mods-config/sql/ippool-dhcp/mysql/queries.conf including configuration file /etc/freeradius/mods-enabled/expr including configuration file /etc/freeradius/mods-enabled/logintime including configuration file /etc/freeradius/mods-enabled/linelog including configuration file /etc/freeradius/mods-enabled/attr_filter including configuration file /etc/freeradius/mods-enabled/soh including configuration file /etc/freeradius/mods-enabled/chap including configuration file /etc/freeradius/mods-enabled/expiration including configuration file /etc/freeradius/mods-enabled/dhcp_sql including configuration file /etc/freeradius/mods-config/sql/dhcp/mysql/queries.conf including configuration file /etc/freeradius/mods-enabled/dynamic_clients including configuration file /etc/freeradius/mods-enabled/preprocess including configuration file /etc/freeradius/mods-enabled/passwd including configuration file /etc/freeradius/mods-enabled/detail.log including configuration file /etc/freeradius/mods-enabled/mschap including configuration file /etc/freeradius/mods-enabled/pap including configuration file /etc/freeradius/mods-enabled/totp including configuration file /etc/freeradius/mods-enabled/realm including configuration file /etc/freeradius/mods-enabled/utf8 including files in directory /etc/freeradius/policy.d/ including configuration file /etc/freeradius/policy.d/cui including configuration file /etc/freeradius/policy.d/eap including configuration file /etc/freeradius/policy.d/control including configuration file /etc/freeradius/policy.d/operator-name including configuration file /etc/freeradius/policy.d/canonicalization including configuration file /etc/freeradius/policy.d/moonshot-targeted-ids including configuration file /etc/freeradius/policy.d/debug including configuration file /etc/freeradius/policy.d/abfab-tr including configuration file /etc/freeradius/policy.d/dhcp including configuration file /etc/freeradius/policy.d/rfc7542 including configuration file /etc/freeradius/policy.d/accounting including configuration file /etc/freeradius/policy.d/filter including files in directory /etc/freeradius/sites-enabled/ including configuration file /etc/freeradius/sites-enabled/inner-tunnel including configuration file /etc/freeradius/sites-enabled/default including configuration file /etc/freeradius/sites-enabled/dhcp 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 postauth_client_lost = no 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 { nonblock = no 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 } recv_coa { } } home_server_pool my_auth_failover { type = fail-over home_server = localhost } realm example.com { auth_pool = my_auth_failover } realm LOCAL { } radiusd: #### Loading Clients #### client localhost { ipaddr = 127.0.0.1 require_message_authenticator = no secret = <<< secret >>> nas_type = "other" proto = "*" limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client localhost_ipv6 { ipv6addr = ::1 require_message_authenticator = no secret = <<< secret >>> 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 # Creating Auth-Type = digest # Creating Autz-Type = New-TLS-Connection radiusd: #### Instantiating modules #### modules { # Loaded module rlm_unpack # Loading module "unpack" from file /etc/freeradius/mods-enabled/unpack # 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 } # 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 } # Loaded module rlm_eap # Loading module "eap" from file /etc/freeradius/mods-enabled/eap eap { default_eap_type = "md5" timer_expire = 60 max_eap_type = 52 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 16384 } # 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_exec # Loading module "exec" from file /etc/freeradius/mods-enabled/exec exec { wait = no input_pairs = "request" shell_escape = yes timeout = 10 } # Loaded module rlm_date # Loading module "date" from file /etc/freeradius/mods-enabled/date date { format = "%b %e %Y %H:%M:%S %Z" utc = no } # Loading module "wispr2date" from file /etc/freeradius/mods-enabled/date date wispr2date { format = "%Y-%m-%dT%H:%M:%S" utc = no } # 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_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_digest # Loading module "digest" from file /etc/freeradius/mods-enabled/digest # 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 } # Loaded module rlm_replicate # Loading module "replicate" from file /etc/freeradius/mods-enabled/replicate # 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" } # 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_sqlippool # Loading module "dhcp_sqlippool" from file /etc/freeradius/mods-enabled/dhcp_sqlippool sqlippool dhcp_sqlippool { sql_module_instance = "dhcp_sql" lease_duration = 7200 pool_name = "Pool-Name" default_pool = "main_pool" attribute_name = "DHCP-Your-IP-Address" req_attribute_name = "DHCP-Requested-IP-Address" allocate_begin = "START TRANSACTION" allocate_clear = "" allocate_clear_timeout = 1 allocate_existing = "SELECT framedipaddress FROM dhcpippool WHERE pool_name = '%{control:Pool-Name}' AND pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}' AND `status` IN ('dynamic', 'static') ORDER BY expiry_time DESC LIMIT 1 FOR UPDATE SKIP LOCKED" allocate_requested = "SELECT framedipaddress FROM dhcpippool WHERE pool_name = '%{control:Pool-Name}' AND framedipaddress = '%{%{DHCP-Requested-IP-Address}:-0.0.0.0}' AND `status` = 'dynamic' AND expiry_time < NOW() FOR UPDATE SKIP LOCKED" allocate_find = "SELECT framedipaddress FROM dhcpippool WHERE pool_name = '%{control:Pool-Name}' AND expiry_time < NOW() AND `status` = 'dynamic' ORDER BY expiry_time LIMIT 1 FOR UPDATE SKIP LOCKED" allocate_update = "UPDATE dhcpippool SET gateway = '%{DHCP-Gateway-IP-Address}', pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}', expiry_time = NOW() + INTERVAL 10 SECOND WHERE framedipaddress = '%I'" allocate_commit = "COMMIT" pool_check = "SELECT id FROM dhcpippool WHERE pool_name='%{control:Pool-Name}' LIMIT 1" start_begin = "" start_update = "UPDATE dhcpippool SET gateway = '', pool_key = '', expiry_time = NOW() WHERE pool_name = '%{control:Pool-Name}' AND pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}' AND framedipaddress <> '%{DHCP-Requested-IP-Address}' AND expiry_time > NOW() AND `status` = 'dynamic'" start_commit = "" alive_begin = "" alive_update = "UPDATE dhcpippool SET expiry_time = NOW() + INTERVAL 7200 SECOND, counter = counter + 1 WHERE pool_name = '%{control:Pool-Name}' AND pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}' AND framedipaddress = '%{%{DHCP-Requested-IP-Address}:-%{DHCP-Client-IP-Address}}'" alive_commit = "" stop_begin = "" stop_clear = "UPDATE dhcpippool SET gateway = '', pool_key = '', expiry_time = NOW() WHERE pool_name = '%{control:Pool-Name}' AND pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}' AND framedipaddress = '%{DHCP-Client-IP-Address}' AND `status` = 'dynamic'" stop_commit = "" on_begin = "" on_clear = "" on_commit = "" off_begin = "" off_clear = "UPDATE dhcpippool SET status = 'declined' WHERE pool_name = '%{control:Pool-Name}' AND pool_key = '%{%{DHCP-Client-Identifier}:-%{DHCP-Client-Hardware-Address}}' AND framedipaddress = '%{DHCP-Requested-IP-Address}'" off_commit = "" messages { exists = "DHCP: Existing IP: %{reply:DHCP-Your-IP-Address} (cid %{DHCP-Client-Identifier} chaddr %{DHCP-Client-Hardware-Address} giaddr %{DHCP-Gateway-IP-Address})" success = "DHCP: Allocated IP: %{reply:DHCP-Your-IP-Address} from %{control:Pool-Name} (cid %{DHCP-Client-Identifier} chaddr %{DHCP-Client-Hardware-Address} giaddr %{DHCP-Gateway-IP-Address})" clear = "DHCP: Released IP %{DHCP-Client-IP-Address} (cid %{DHCP-Client-Identifier} chaddr %{DHCP-Client-Hardware-Address} giaddr %{DHCP-Gateway-IP-Address})" failed = "DHCP: IP Allocation FAILED from %{control:Pool-Name} (cid %{DHCP-Client-Identifier} chaddr %{DHCP-Client-Hardware-Address} giaddr %{DHCP-Gateway-IP-Address})" nopool = "DHCP: No Pool-Name defined (cid %{DHCP-Client-Identifier} chaddr %{DHCP-Client-Hardware-Address} giaddr %{DHCP-Gateway-IP-Address})" } } # Loaded module rlm_expr # Loading module "expr" from file /etc/freeradius/mods-enabled/expr expr { safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ" } # Loaded module rlm_logintime # Loading module "logintime" from file /etc/freeradius/mods-enabled/logintime logintime { minimum_timeout = 60 } # 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_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 } # Loading module "attr_filter.coa" from file /etc/freeradius/mods-enabled/attr_filter attr_filter attr_filter.coa { filename = "/etc/freeradius/mods-config/attr_filter/coa" key = "%{User-Name}" relaxed = no } # Loaded module rlm_soh # Loading module "soh" from file /etc/freeradius/mods-enabled/soh soh { dhcp = yes } # Loaded module rlm_chap # Loading module "chap" from file /etc/freeradius/mods-enabled/chap # Loaded module rlm_expiration # Loading module "expiration" from file /etc/freeradius/mods-enabled/expiration # Loaded module rlm_sql # Loading module "dhcp_sql" from file /etc/freeradius/mods-enabled/dhcp_sql sql dhcp_sql { driver = "rlm_sql_mysql" server = "localhost" port = 3306 login = "radius" password = <<< secret >>> radius_db = "radius" read_groups = no read_profiles = yes read_clients = no delete_stale_sessions = yes sql_user_name = "%{control:DHCP-SQL-Option-Identifier}" default_user_profile = "" client_query = "SELECT id,nasname,shortname,type,secret FROM nas" authorize_reply_query = "SELECT id, identifier, attribute, value, Op FROM dhcpreply WHERE identifier = '%{SQL-User-Name}' AND context = '%{control:DHCP-SQL-Option-Context}' ORDER BY id" authorize_group_reply_query = "SELECT id, groupname, attribute, value, op FROM dhcpgroupreply WHERE groupname = '%{dhcp_sql-SQL-Group}' AND context = '%{control:DHCP-SQL-Option-Context}' ORDER BY id" group_membership_query = "SELECT groupnme FROM dhcpgroup WHERE identifier='%{SQL-User-Name}' AND context = '%{control:DHCP-SQL-Option-Context}' ORDER BY priority" safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /" auto_escape = no accounting { reference = ".query" type { accounting-on { } accounting-off { } start { } interim-update { } stop { } } } post-auth { reference = ".query" } } rlm_sql (dhcp_sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked Creating attribute dhcp_sql-SQL-Group # Loaded module rlm_dynamic_clients # Loading module "dynamic_clients" from file /etc/freeradius/mods-enabled/dynamic_clients # 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_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 } # 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 } # 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 winbind_retry_with_normalised_username = no } # Loaded module rlm_pap # Loading module "pap" from file /etc/freeradius/mods-enabled/pap pap { normalise = yes } # Loaded module rlm_totp # Loading module "totp" from file /etc/freeradius/mods-enabled/totp # 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 "bangpath" from file /etc/freeradius/mods-enabled/realm realm bangpath { format = "prefix" 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_utf8 # Loading module "utf8" from file /etc/freeradius/mods-enabled/utf8 instantiate { } # 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 "eap" from file /etc/freeradius/mods-enabled/eap # Linked to sub-module rlm_eap_md5 # Linked to sub-module rlm_eap_gtc gtc { challenge = "Password: " auth_type = "PAP" } # Linked to sub-module rlm_eap_tls tls { tls = "tls-common" } tls-config tls-common { verify_depth = 0 ca_path = "/etc/freeradius/certs" pem_file_type = yes private_key_file = "/etc/freeradius/certs/server.pem" certificate_file = "/etc/freeradius/certs/server.pem" ca_file = "/etc/freeradius/certs/ca.pem" private_key_password = <<< secret >>> fragment_size = 1024 include_length = yes auto_chain = yes check_crl = no check_all_crl = no ca_path_reload_interval = 0 cipher_list = "DEFAULT" cipher_server_preference = no reject_unknown_intermediate_ca = no ecdh_curve = "" 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 "detail" from file /etc/freeradius/mods-enabled/detail # 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 "dhcp_sqlippool" from file /etc/freeradius/mods-enabled/dhcp_sqlippool # Instantiating module "dhcp_sql" from file /etc/freeradius/mods-enabled/dhcp_sql rlm_sql_mysql: libmysql version: 8.0.36 mysql { tls { ca_file = "/etc/ssl/certs/ca-cert.pem" ca_path = "/etc/ssl/certs/" certificate_file = "/etc/ssl/certs/private/client-cert.pem" private_key_file = "/etc/ssl/certs/private/client-key.pem" cipher = "DHE-RSA-AES256-SHA:AES128-SHA" tls_required = no check_cert = no check_cert_cn = no } warnings = "auto" } rlm_sql (dhcp_sql): Attempting to connect to database "radius" rlm_sql (dhcp_sql): Initialising connection pool pool { start = 5 min = 3 max = 32 spare = 10 uses = 0 lifetime = 0 cleanup_interval = 30 idle_timeout = 60 retry_delay = 30 max_retries = 5 spread = no } rlm_sql (dhcp_sql): Opening additional connection (0), 1 of 32 pending slots used rlm_sql_mysql: Starting connect to MySQL server WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 5.5.5-10.11.7-MariaDB-2ubuntu2, protocol version 10 rlm_sql (dhcp_sql): Opening additional connection (1), 1 of 31 pending slots used rlm_sql_mysql: Starting connect to MySQL server WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 5.5.5-10.11.7-MariaDB-2ubuntu2, protocol version 10 rlm_sql (dhcp_sql): Opening additional connection (2), 1 of 30 pending slots used rlm_sql_mysql: Starting connect to MySQL server WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 5.5.5-10.11.7-MariaDB-2ubuntu2, protocol version 10 rlm_sql (dhcp_sql): Opening additional connection (3), 1 of 29 pending slots used rlm_sql_mysql: Starting connect to MySQL server WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 5.5.5-10.11.7-MariaDB-2ubuntu2, protocol version 10 rlm_sql (dhcp_sql): Opening additional connection (4), 1 of 28 pending slots used rlm_sql_mysql: Starting connect to MySQL server WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 5.5.5-10.11.7-MariaDB-2ubuntu2, protocol version 10 # Instantiating module "logintime" from file /etc/freeradius/mods-enabled/logintime # Instantiating module "linelog" from file /etc/freeradius/mods-enabled/linelog # Instantiating module "log_accounting" from file /etc/freeradius/mods-enabled/linelog # 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 # 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 "attr_filter.coa" from file /etc/freeradius/mods-enabled/attr_filter reading pairlist file /etc/freeradius/mods-config/attr_filter/coa # 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 "etc_passwd" from file /etc/freeradius/mods-enabled/passwd rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no # 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 # Instantiating module "mschap" from file /etc/freeradius/mods-enabled/mschap rlm_mschap (mschap): using internal authentication # Instantiating module "pap" from file /etc/freeradius/mods-enabled/pap # Instantiating module "IPASS" from file /etc/freeradius/mods-enabled/realm # Instantiating module "suffix" from file /etc/freeradius/mods-enabled/realm # Instantiating module "bangpath" 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 } # modules radiusd: #### Loading Virtual Servers #### server { # from file /etc/freeradius/radiusd.conf } # server server inner-tunnel { # from file /etc/freeradius/sites-enabled/inner-tunnel # Loading authenticate {...} Compiling Auth-Type PAP for attr Auth-Type Compiling Auth-Type CHAP for attr Auth-Type Compiling Auth-Type MS-CHAP for attr Auth-Type # 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/sites-enabled/inner-tunnel:366 Compiling Post-Auth-Type REJECT for attr Post-Auth-Type } # server inner-tunnel server default { # from file /etc/freeradius/sites-enabled/default # Loading authenticate {...} Compiling Auth-Type PAP for attr Auth-Type Compiling Auth-Type CHAP for attr Auth-Type Compiling Auth-Type MS-CHAP for attr Auth-Type # Loading authorize {...} Compiling Autz-Type New-TLS-Connection for attr Autz-Type # Loading preacct {...} # Loading accounting {...} # Loading post-proxy {...} # Loading post-auth {...} Compiling Post-Auth-Type REJECT for attr Post-Auth-Type Compiling Post-Auth-Type Challenge for attr Post-Auth-Type Compiling Post-Auth-Type Client-Lost for attr Post-Auth-Type } # server default server dhcp { # from file /etc/freeradius/sites-enabled/dhcp # Loading dhcp DHCP-Discover {...} Compiling dhcp DHCP-Discover for attr DHCP-Message-Type # Loading dhcp DHCP-Request {...} Compiling dhcp DHCP-Request for attr DHCP-Message-Type # Loading dhcp DHCP-Decline {...} Compiling dhcp DHCP-Decline for attr DHCP-Message-Type # Loading dhcp DHCP-Inform {...} Compiling dhcp DHCP-Inform for attr DHCP-Message-Type # Loading dhcp DHCP-Release {...} Compiling dhcp DHCP-Release for attr DHCP-Message-Type # Loading dhcp DHCP-Lease-Query {...} Compiling dhcp DHCP-Lease-Query for attr DHCP-Message-Type } # server dhcp radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = 127.0.0.1 port = 18120 } listen { type = "auth" ipaddr = * port = 0 limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } listen { type = "acct" ipaddr = * port = 0 limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } listen { type = "auth" ipv6addr = :: port = 0 limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } listen { type = "acct" ipv6addr = :: port = 0 limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } listen { type = "dhcp" ipaddr = 193.191.177.231 port = 6700 performance { skip_duplicate_checks = no } src_ipaddr = 193.191.177.231 } Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address * port 1812 bound to server default Listening on acct address * port 1813 bound to server default Listening on auth address :: port 1812 bound to server default Listening on acct address :: port 1813 bound to server default Listening on dhcp interface ens18 address 193.191.177.231 port 6700 bound to server dhcp Listening on proxy address * port 48665 Listening on proxy address :: port 53697 Ready to process requests Received DHCP-Discover of Id e0807a36 from 193.191.177.230:6701 to 193.191.177.231:6700 DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 3766516278 DHCP-Number-of-Seconds = 0 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 0.0.0.0 DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd DHCP-Message-Type = DHCP-Discover DHCP-Client-Identifier = 0x616263313233 DHCP-Network-Subnet = 0.0.0.0/32 (0) Received code 1025 Id 3766516278 from 193.191.177.230:6701 to 193.191.177.231:6700 length 300 (0) DHCP-Opcode = Client-Message (0) DHCP-Hardware-Type = Ethernet (0) DHCP-Hardware-Address-Length = 6 (0) DHCP-Hop-Count = 0 (0) DHCP-Transaction-Id = 3766516278 (0) DHCP-Number-of-Seconds = 0 (0) DHCP-Flags = 0 (0) DHCP-Client-IP-Address = 0.0.0.0 (0) DHCP-Your-IP-Address = 0.0.0.0 (0) DHCP-Server-IP-Address = 0.0.0.0 (0) DHCP-Gateway-IP-Address = 0.0.0.0 (0) DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd (0) DHCP-Message-Type = DHCP-Discover (0) DHCP-Client-Identifier = 0x616263313233 (0) DHCP-Network-Subnet = 0.0.0.0/32 Trying sub-section dhcp DHCP-Discover {...} (0) dhcp DHCP-Discover { (0) update control { (0) &DHCP-DHCP-Server-Identifier = 193.191.177.231 (0) } # update control = noop (0) policy dhcp_common { (0) update reply { (0) &DHCP-Domain-Name-Server = 127.0.0.1 (0) &DHCP-Domain-Name-Server += 127.0.0.2 (0) &DHCP-Subnet-Mask = 255.255.255.0 (0) &DHCP-Router-Address = 192.0.2.1 (0) &DHCP-Broadcast-Address = 192.0.2.255 (0) &DHCP-IP-Address-Lease-Time = 7200 (0) &DHCP-DHCP-Server-Identifier = &control:DHCP-DHCP-Server-Identifier -> 193.191.177.231 (0) } # update reply = noop (0) } # policy dhcp_common = noop (0) update reply { (0) &DHCP-Your-IP-Address := 1.2.3.4 (0) } # update reply = noop (0) } # dhcp DHCP-Discover = noop (0) Not sending reply to client. (0) Finished request (0) Cleaning up request packet ID 3766516278 with timestamp +66 due to done Ready to process requests Received DHCP-Discover of Id 3603f3f3 from 193.191.177.230:6701 to 193.191.177.231:6700 DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 906228723 DHCP-Number-of-Seconds = 0 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 0.0.0.0 DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd DHCP-Message-Type = DHCP-Discover DHCP-Client-Identifier = 0x616263313233 DHCP-Network-Subnet = 0.0.0.0/32 (1) Received code 1025 Id 906228723 from 193.191.177.230:6701 to 193.191.177.231:6700 length 300 (1) DHCP-Opcode = Client-Message (1) DHCP-Hardware-Type = Ethernet (1) DHCP-Hardware-Address-Length = 6 (1) DHCP-Hop-Count = 0 (1) DHCP-Transaction-Id = 906228723 (1) DHCP-Number-of-Seconds = 0 (1) DHCP-Flags = 0 (1) DHCP-Client-IP-Address = 0.0.0.0 (1) DHCP-Your-IP-Address = 0.0.0.0 (1) DHCP-Server-IP-Address = 0.0.0.0 (1) DHCP-Gateway-IP-Address = 0.0.0.0 (1) DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd (1) DHCP-Message-Type = DHCP-Discover (1) DHCP-Client-Identifier = 0x616263313233 (1) DHCP-Network-Subnet = 0.0.0.0/32 Trying sub-section dhcp DHCP-Discover {...} (1) dhcp DHCP-Discover { (1) update control { (1) &DHCP-DHCP-Server-Identifier = 193.191.177.231 (1) } # update control = noop (1) policy dhcp_common { (1) update reply { (1) &DHCP-Domain-Name-Server = 127.0.0.1 (1) &DHCP-Domain-Name-Server += 127.0.0.2 (1) &DHCP-Subnet-Mask = 255.255.255.0 (1) &DHCP-Router-Address = 192.0.2.1 (1) &DHCP-Broadcast-Address = 192.0.2.255 (1) &DHCP-IP-Address-Lease-Time = 7200 (1) &DHCP-DHCP-Server-Identifier = &control:DHCP-DHCP-Server-Identifier -> 193.191.177.231 (1) } # update reply = noop (1) } # policy dhcp_common = noop (1) update reply { (1) &DHCP-Your-IP-Address := 1.2.3.4 (1) } # update reply = noop (1) } # dhcp DHCP-Discover = noop (1) Not sending reply to client. (1) Finished request (1) Cleaning up request packet ID 906228723 with timestamp +90 due to done Ready to process requests Received DHCP-Discover of Id dc1551df from 193.191.177.230:6701 to 193.191.177.231:6700 DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 3692384735 DHCP-Number-of-Seconds = 0 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 0.0.0.0 DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd DHCP-Message-Type = DHCP-Discover DHCP-Client-Identifier = 0x616263313233 DHCP-Network-Subnet = 0.0.0.0/32 (2) Received code 1025 Id 3692384735 from 193.191.177.230:6701 to 193.191.177.231:6700 length 300 (2) DHCP-Opcode = Client-Message (2) DHCP-Hardware-Type = Ethernet (2) DHCP-Hardware-Address-Length = 6 (2) DHCP-Hop-Count = 0 (2) DHCP-Transaction-Id = 3692384735 (2) DHCP-Number-of-Seconds = 0 (2) DHCP-Flags = 0 (2) DHCP-Client-IP-Address = 0.0.0.0 (2) DHCP-Your-IP-Address = 0.0.0.0 (2) DHCP-Server-IP-Address = 0.0.0.0 (2) DHCP-Gateway-IP-Address = 0.0.0.0 (2) DHCP-Client-Hardware-Address = 02:01:aa:bb:cc:dd (2) DHCP-Message-Type = DHCP-Discover (2) DHCP-Client-Identifier = 0x616263313233 (2) DHCP-Network-Subnet = 0.0.0.0/32 Trying sub-section dhcp DHCP-Discover {...} (2) dhcp DHCP-Discover { (2) update control { (2) &DHCP-DHCP-Server-Identifier = 193.191.177.231 (2) } # update control = noop (2) policy dhcp_common { (2) update reply { (2) &DHCP-Domain-Name-Server = 127.0.0.1 (2) &DHCP-Domain-Name-Server += 127.0.0.2 (2) &DHCP-Subnet-Mask = 255.255.255.0 (2) &DHCP-Router-Address = 192.0.2.1 (2) &DHCP-Broadcast-Address = 192.0.2.255 (2) &DHCP-IP-Address-Lease-Time = 7200 (2) &DHCP-DHCP-Server-Identifier = &control:DHCP-DHCP-Server-Identifier -> 193.191.177.231 (2) } # update reply = noop (2) } # policy dhcp_common = noop (2) update reply { (2) &DHCP-Your-IP-Address := 1.2.3.4 (2) } # update reply = noop (2) } # dhcp DHCP-Discover = noop (2) Not sending reply to client. (2) Finished request (2) Cleaning up request packet ID 3692384735 with timestamp +502 due to done Ready to process requests
On 28/05/2024 14:30, Jan-Willem Curinckx via Freeradius-Users wrote:
The FreeRADIUS DHCP 3.2.2 Server on Ubuntu 24.04 I had issues with last time starts without displaying errors, however as I'm testing the functionalities by sending packets from a different host, the DHCP server only receives requests without replying. noop (2) update reply { (2) &DHCP-Your-IP-Address := 1.2.3.4 (2) } # update reply = noop (2) } # dhcp DHCP-Discover = noop (2) Not sending reply to client. (2) Finished request (2) Cleaning up request packet ID 3692384735 with timestamp +502 due to done
The last operation you do returns the return code noop, so the whole section ends with the code noop. This is causing FreeRADIUS to not reply. If you insert "ok" before the end of your dhcp DHCP-Discover section then the reply packet will be sent Look at the sample dhcp server where the DHCP-Discover section ends with: # If DHCP-Message-Type is not set, returning "ok" or # "updated" from this section will respond with a DHCP-Offer # message. # # Other rcodes will tell the server to not return any response. # #ok That "ok" is commented out, as the expectation is that one of the previous module calls will have set a return code - either ok / updated if an address has been assigned or noop / fail / notfound etc if it has not. -- Nick Porter
participants (2)
-
Jan-Willem Curinckx -
Nick Porter