Hi Experts: I use the latest FreeRadius 4.0 from github and I only use the rlm_tacacs module build in FreeRadius I would like to use FreeRadius forward auth request to remote TACACS server like Cicso ISE using the rlm_tacacs module why I use FreeRadius tacacs module is currently all my authenticate request will go to FreeRadius 1812 port and we have a new request that the local server should send authenticate request to remote TACACS server, so I would like to use rlm_tacacs module to do this work I downloaded the zip package from github and build in local, the src/modules/stable file only contain the rlm_tacacs module, build has no problem and I replaced the radiusd and all dependent so files to server side. When I try to start the radiusd daemon with -X, I encounter one segV error, and start option with -XC has no problem for configuration The config file for modules like: # cat modules/tacacs #modules { tacacs { transport = tcp type = Authentication-Start type = Authentication-Continue type = Authorization-Request type = Accounting-Request tcp { ipaddr = 10.76.xx.xx port = 49 secret = testkey123 } pool { start = 1 min = 1 max = 1 } #} } and the virtual server config like below, not sure this config will forward the auth request to tacacs module as above IP and port: # # Does nothing other than send packets. It doesn't listen on any input sockets. # server default { namespace = tacacs listen { type = Authentication-Start type = Authentication-Continue type = Authorization-Request type = Accounting-Request } recv Authentication-Start { tacacs } recv Authentication-Continue { tacacs } recv Authorization-Request { tacacs } recv Accounting-Request { tacacs } } below is the output for radiusd with -X option Info : Copyright 1999-2024 The FreeRADIUS server project and contributors Info : There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A Info : PARTICULAR PURPOSE Info : You may redistribute copies of FreeRADIUS under the terms of the Info : GNU General Public License Info : For more information about these matters, see the file named COPYRIGHT Info : Starting - reading configuration files ... Debug : including configuration file /etc/opt/LU3Pfreeradius-server/radiusd.conf Debug : including configuration file /etc/opt/LU3Pfreeradius-server/clients.conf Debug : Including files in directory "/etc/opt/LU3Pfreeradius-server/modules/" Debug : including configuration file /etc/opt/LU3Pfreeradius-server/modules/tacacs Debug : including configuration file /etc/opt/LU3Pfreeradius-server/sites-cpm/cpm_radius_config Debug : Loaded module process_tacacs Debug : Parsing initial logging configuration. Debug : main { Debug : prefix = /opt/LU3P Debug : log { Debug : destination = files Debug : syslog_facility = daemon Debug : local_state_dir = "/opt/LU3P/var" Debug : logdir = "/opt/LU3P/var/log" Debug : file = /var/opt/log/freeradius-server/radius.log Debug : suppress_secrets = no Debug : } Debug : } Debug : Parsing security rules to bootstrap UID / GID / chroot / etc. Debug : main { Debug : log { Debug : } Debug : security { Debug : allow_core_dumps = no Debug : allow_vulnerable_openssl = "no" Debug : } Debug : name = radiusd Debug : local_state_dir = "/opt/LU3P/var" Debug : run_dir = /var/opt/run Debug : } Debug : Parsing main configuration Debug : main { Debug : server default { Debug : namespace = tacacs Debug : tacacs { Debug : Authentication { Debug : session { Debug : timeout = 15 Debug : max = 4096 Debug : max_rounds = 4 Debug : } Debug : } Debug : } Debug : Loaded module proto_tacacs Debug : listen { Debug : type = Authentication-Start Debug : type = Authentication-Continue Debug : type = Authorization-Request Debug : type = Accounting-Request Debug : limit { Debug : idle_timeout = 30.0 Debug : max_connections = 1024 Debug : } Debug : priority { Debug : Authentication-Start = high Debug : Authentication-Continue = high Debug : Authorization-Request = normal Debug : Accounting-Request = low Debug : } Debug : } Debug : } Debug : log { Debug : } Debug : security { Debug : } Debug : sbin_dir = "/opt/LU3P/sbin" Debug : logdir = /var/opt/log/freeradius-server Debug : radacctdir = /var/opt/log/freeradius-server/radacct Debug : reverse_lookups = no Debug : hostname_lookups = no Debug : max_request_time = 30 Debug : pidfile = /var/opt/run/radiusd.pid Debug : debug_level = 0 Debug : max_requests = 1024 Debug : resources { Debug : } Debug : thread pool { Debug : num_networks = 1 Info : Dynamically determined thread.workers = 2 Debug : num_workers = 2 Debug : } Debug : migrate { Debug : } Debug : } Info : Switching to configured log settings Debug : radiusd: #### Loading Clients #### Debug : client 127.0.0.1 { Debug : ipaddr = 127.0.0.1 Debug : secret = <<< secret >>> Debug : shortname = sig03-oam-b Debug : require_message_authenticator = no Debug : limit_proxy_state = auto Debug : limit { Debug : max_connections = 16 Debug : lifetime = 0 Debug : idle_timeout = 30s Debug : } Debug : } Debug : client 169.254.64.0/20 { Debug : ipaddr = 169.254.64.0/20 Debug : secret = <<< secret >>> Debug : shortname = sig03-oam-b Debug : require_message_authenticator = no Debug : limit_proxy_state = auto Debug : limit { Debug : max_connections = 16 Debug : lifetime = 0 Debug : idle_timeout = 30s Debug : } Debug : } Debug : client 169.254.128.0/17 { Debug : ipaddr = 169.254.128.0/17 Debug : secret = <<< secret >>> Debug : shortname = sig03-oam-b Debug : require_message_authenticator = no Debug : limit_proxy_state = auto Debug : limit { Debug : max_connections = 16 Debug : lifetime = 0 Debug : idle_timeout = 30s Debug : } Debug : } Info : Debugger not attached Info : Configuration version: 1F5FA0A8-6BD9-4091-B482-B90249BB93BD Info : systemd watchdog is disabled Info : pre-suid-down capabilities: =ep *Error : _tmpl_global_init: Autoloader attribute "Packet-Type" not found in "RADIUS" dictionary* Warn : trigger { ... } subsection not found, triggers will be disabled Debug : #### Instantiating libraries #### Debug : #### Bootstrapping process modules #### Debug : Bootstrapping process_tacacs "default" Debug : #### Bootstrapping protocol modules #### Debug : #### Instantiating libraries #### Debug : #### Bootstrapping static modules #### Debug : modules { Debug : static { Debug : Loaded module rlm_tacacs Debug : tacacs { Debug : transport = tcp Debug : Loaded module rlm_tacacs_tcp Debug : tcp { Debug : ipaddr = 10.76.xx.xx Debug : port = 49 Debug : secret = testkey123 Debug : max_packet_size = 4096 Debug : max_send_coalesce = 1024 Debug : } Debug : type = Authentication-Start Debug : type = Authentication-Continue Debug : type = Authorization-Request Debug : type = Accounting-Request Debug : max_attributes = 255 Debug : response_window = 20 Debug : zombie_period = 40 Debug : pool { Debug : start = 1 Debug : min = 1 Debug : max = 1 Debug : connecting = 2 Debug : uses = 0 Debug : lifetime = 0 Debug : idle_timeout = 0 Debug : open_delay = 0.2 Debug : close_delay = 10.0 Debug : manage_interval = 0.2 Debug : max_backlog = 1000 Debug : connection { Debug : connect_timeout = 3.0 Debug : reconnect_delay = 1 Debug : } Debug : request { Debug : per_connection_max = 2000 Debug : per_connection_target = 1000 Debug : free_delay = 10.0 Debug : } Debug : } Debug : retry { Debug : initial_rtx_time = 2 Debug : max_rtx_time = 16 Debug : max_rtx_count = 5 Debug : max_rtx_duration = 30 Debug : } Debug : } Debug : } # static Debug : #### Bootstrapping rlm modules #### Debug : Including dictionary file "/etc/opt/LU3Pfreeradius-server/dictionary" Debug : #### Instantiating listeners #### Debug : Compiling policies in server default { ... } Debug : Compiling policies in - recv Authentication-Start {...} Debug : Compiling policies in - recv Authentication-Continue {...} Debug : Compiling policies in - recv Authorization-Request {...} Debug : Compiling policies in - recv Accounting-Request {...} Warn :* tacacs { ... } section is unused* Debug : #### Instantiating process modules #### Debug : Instantiating process_tacacs "default" Debug : #### Instantiating protocol modules #### Debug : Instantiating proto_tacacs "default.tacacs.generic" Debug : #### Instantiating rlm modules #### Debug : Instantiating rlm_tacacs "tacacs" Warn : Ignoring "trunk.per_connection_max = 2000", forcing to "trunk.per_connection_max = 255" Warn : Ignoring "trunk.per_connection_target = 1000", forcing to "trunk.per_connection_target = 127" Warn : Ignoring "revive_interval = 0", forcing to "revive_interval = 10" Debug : Instantiating rlm_tacacs_tcp "tacacs.tcp" CAUGHT SIGNAL: Segmentation fault Backtrace of last 11 frames: /opt/LU3P/lib64/libfreeradius-util.so(+0x32fc9)[0x7f2d3e4e3fc9] /opt/LU3P/lib64/libfreeradius-util.so(fr_fault+0x75)[0x7f2d3e4e4465] /lib64/libpthread.so.0(+0x12d10)[0x7f2d3c454d10] /opt/LU3P/lib64/rlm_tacacs_tcp.so(+0x266f)[0x7f2d339f266f] /opt/LU3P/lib64/libfreeradius-server.so(module_thread_instantiate+0xda)[0x7f2d3dff1e3a] /opt/LU3P/lib64/libfreeradius-server.so(modules_thread_instantiate+0x65)[0x7f2d3dff2045] /opt/LU3P/sbin/radiusd[0x4056d1] /opt/LU3P/lib64/libfreeradius-io.so(fr_schedule_create+0x126)[0x7f2d3dae4d16] /opt/LU3P/sbin/radiusd(main+0xdff)[0x404bcf] /lib64/libc.so.6(__libc_start_main+0xe5)[0x7f2d3bd5a7e5] /opt/LU3P/sbin/radiusd(_start+0x2e)[0x40533e] No panic action set regards, Bryan