root@LAB1-RAF-L01
[/usr/local/etc]# printf "0 TACPLUS\n4 patrick\n8 password@123\n49 AUTH\n=\n" | radmavis "group_attribute=Class" "authserver=dev.radius.dev:1812:dhuwher23e1"
0 TACPLUS
4 ptopping
8 password@123
49 AUTH
May 16 12:41:01 LAB1-RAF-L01 kernel: [848723.182738] radmavis[766994]: segfault at 0 ip 0000000000000000 sp 00007ffe902e0908 error 14 in radmavis[56095a781000+1000]
May 16 12:41:01 LAB1-RAF-L01 kernel: [848723.182767] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
I have installed both the freeradius-server & freeradius-clients on this server to get radmavis installed. I have been unsuccessful and had to copy it over from the build directly of the event-driven-servers.
Below is my mavis config for review.
# mavis module = tacinfo_cache {
# directory = /tmp/tacinfo
# }
mavis module = external {
exec = /usr/local/sbin/radmavis "radmavis" "group_attribute=Class" "authserver=dev.radius.dev:1812:dfsdfkselr;jwer"
}
user backend = mavis
login backend = mavis
pap backend = mavis
Any help to get passed this would be greatly appreciated.
Thank you.
-Patrick
./configure --ggdb && make && sudo make install
Then runIn a separate session: check for the "radmavis" pid, then attach gdb or lldb to that pid (gdb -p 12345), enter "cont" and wait for the sleep to timeout. On SEGV you can continue with "bt" (backtrace) and/or "up" to see where the crash occurs.
(I currently have no freeradius setup ready for testing, so I did
use tac_plus-ng RADIUS support for that. Shouldn't make any
difference.)
Cheers,
Marc
--
You received this message because you are subscribed to the Google Groups "Event-Driven Servers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-driven-ser...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/event-driven-servers/7b7a8519-bd32-4935-9b5e-0b7dc366ff14n%40googlegroups.com.
root@LAB1-RAF-L01
[/tmp/event-driven-servers]# apt install libradcli-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libradcli-dev is already the newest version (1.2.11-1build1).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
root@LAB1-RAF-L01
[/tmp/event-driven-servers]# ./configure --ggdb && make && sudo make install
==============================================================================================================================================================================
Development files were found for: LIB-ARES, LIB-CRYPT, LIB-CRYPTO, LIB-CURL, LIB-LBER, LIB-LDAP, LIB-PAM, LIB-PCRE2, LIB-PTHREAD, LIB-RADCLI, LIB-SCTP, LIB-SSL, LIB-ZLIB
The file
build/Makefile.inc.linux-5.15.0-139-generic-x86_64
was just created. You may run "make" now. After that, you may wish to do a "make install". Alternatively, you'll find the compiled binaries (plus some ancillary scripts) in
the
build/linux-5.15.0-139-generic-x86_64/fakeroot/
directory structure. It's probably advisable to have a look there in any case, as you may or may not like the particular file system layout, and this will give you a chance
to see it before installing.
Please direct support requests to the "Event-Driven Servers" Google Group at
event-driv...@googlegroups.com
https://groups.google.com/group/event-driven-servers
or file an issue at
https://github.com/MarcJHuber/event-driven-servers
Support requests sent to the author's private email address may be silently ignored.
make[3]: Entering directory '/tmp/event-driven-servers/mavis/perl'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/mavis/perl'
make[3]: Entering directory '/tmp/event-driven-servers/mavis/python'
Listing '/usr/local/lib/mavis'...
Listing '/usr/local/lib/mavis/extra'...
make[3]: Leaving directory '/tmp/event-driven-servers/mavis/python'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavis'
make[1]: Leaving directory '/tmp/event-driven-servers/mavis'
make[1]: Entering directory '/tmp/event-driven-servers/spawnd'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
install -c -m 0755 spawnd /usr/local/sbin/spawnd
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/spawnd'
make[1]: Leaving directory '/tmp/event-driven-servers/spawnd'
make[1]: Entering directory '/tmp/event-driven-servers/mavisd'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
install -c -m 0755 mavisd /usr/local/sbin/mavisd
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/mavisd'
make[1]: Leaving directory '/tmp/event-driven-servers/mavisd'
make[1]: Entering directory '/tmp/event-driven-servers/ftpd'
make[2]: Entering directory '/tmp/event-driven-servers/ftpd/extra'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/event-driven-servers/ftpd/extra'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
make[4]: Entering directory '/tmp/event-driven-servers/ftpd/extra'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/tmp/event-driven-servers/ftpd/extra'
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
install -c -m 0755 ftpd /usr/local/sbin/ftpd
make[3]: Entering directory '/tmp/event-driven-servers/ftpd/extra'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/ftpd/extra'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/ftpd'
make[1]: Leaving directory '/tmp/event-driven-servers/ftpd'
make[1]: Entering directory '/tmp/event-driven-servers/tac_plus'
make[2]: Entering directory '/tmp/event-driven-servers/tac_plus/extra'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/event-driven-servers/tac_plus/extra'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
make[4]: Entering directory '/tmp/event-driven-servers/tac_plus/extra'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/tmp/event-driven-servers/tac_plus/extra'
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
install -c -m 0755 tac_plus /usr/local/sbin/tac_plus
make[3]: Entering directory '/tmp/event-driven-servers/tac_plus/extra'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/tac_plus/extra'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus'
make[1]: Leaving directory '/tmp/event-driven-servers/tac_plus'
make[1]: Entering directory '/tmp/event-driven-servers/tac_plus-ng'
make[2]: Entering directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
make[4]: Entering directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
install -c -m 0755 tac_plus-ng /usr/local/sbin/tac_plus-ng # && ( setcap cap_net_raw,cap_net_bind_service=+ep /usr/local/sbin/tac_plus-ng 2>/dev/null || true )
make[3]: Entering directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/tac_plus-ng/extra'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tac_plus-ng'
make[1]: Leaving directory '/tmp/event-driven-servers/tac_plus-ng'
make[1]: Entering directory '/tmp/event-driven-servers/tcprelay'
make[2]: Entering directory '/tmp/event-driven-servers/tcprelay/extra'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/event-driven-servers/tcprelay/extra'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
make[3]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
make[4]: Entering directory '/tmp/event-driven-servers/tcprelay/extra'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/tmp/event-driven-servers/tcprelay/extra'
make[3]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
make[2]: Entering directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
install -c -m 0755 tcprelay /usr/local/sbin/tcprelay
make[3]: Entering directory '/tmp/event-driven-servers/tcprelay/extra'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/tmp/event-driven-servers/tcprelay/extra'
make[2]: Leaving directory '/tmp/event-driven-servers/build/linux-5.15.0-139-generic-x86_64/tcprelay'
make[1]: Leaving directory '/tmp/event-driven-servers/tcprelay'
root@LAB1-RAF-L01
[/tmp/event-driven-servers]# ls -l /usr/local/sbin
total 2792
-rwxr-xr-x 1 root root 973352 May 17 22:40 ftpd
-rwxr-xr-x 1 root root 73480 May 17 22:40 ldapmavis-mt
-rwxr-xr-x 1 root root 506 May 16 15:25 login.radius
-rwxr-xr-x 1 root root 80184 May 17 22:40 mavisd
-rwxr-xr-x 1 root root 25008 May 17 22:40 pammavis
-rwxr-xr-x 1 root root 38384 May 17 22:40 pammavis-mt
-rwxr-xr-x 1 root root 26856 May 16 15:25 radacct
-rwxr-xr-x 1 root root 24000 May 16 15:25 radembedded
-rwxr-xr-x 1 root root 24504 May 16 15:25 radexample
-rwxr-xr-x 1 root root 27296 May 16 15:25 radiusclient
-rwxr-xr-x 1 root root 59552 May 16 15:25 radlogin
-rwxr-xr-x 1 root root 25784 May 16 15:25 radstatus
-rwxr-xr-x 1 root root 19208 May 17 22:40 spawnd
-rwxr-xr-x 1 root root 547688 May 17 22:40 tac_plus
-rwxr-xr-x 1 root root 764288 May 17 22:40 tac_plus-ng
-rwxr-xr-x 1 root root 111984 May 17 22:40 tcprelay
-rwxr-xr-x 1 root root 4181 Feb 17 2023 unminimize
Hi Patrick,
warning: 26 ../sysdeps/unix/sysv/linux/read.c: No such file or directory
(gdb) cont
Continuing.
GDB will accept input here, after SEGV. Please try "bt" then, followed by a couple of "up" commands. This should clearly show where the SEGV actually occured.
Do I need to attach gdb to each radmavis PID?
Nope, no need for that, attaching to one crashing process is totally sufficient.
Thanks,
Marc
Hi Patrick,
great to hear that it works in a container!
Regarding TACACS+ groups: Typically, this works the other way around and the TACACS+ server will receive the RADIUS attribute (Class/25) for evaluation. Causing the TACACS+ server to set an additional MAVIS attribute which can be evaluated by radmavis (e.g., for setting the Class attriburte) sounds interesting, but it's currently not an option. Also, group membership looks unsuitable as the user might be in multiple groups.
Cheers,
Marc