Hi,
   I got the radius authentication working using SecurID by configuring a
radius entry in the /etc/pam.conf or modifying /etc/pam.d/radiusd to use the
SecurID_PAM lib. So to all who wonder if it works, yes is does and under
linux it's a beauty (BTW, users need an entry in the password file so we can
lookup the account validity but password need not to be known to users if
they don't need to logon the server as the PAM_SecurID authentication can be
set for all shell access but root). 

The problems is that under solaris9 64 bits, the program exits as soon as I
do a radtest. This problem seems to be associated to the "ps -efl" done in
the freeradius PAM module. When I rename /usr/bin/sparcv9/ps to
/usr/bin/sparcv9/ps.old, I do not have this problem but as you guessed "ps"
doesn't work for all users anymore.

Solaris /etc/pam.conf
radiusd auth    sufficient      pam_securid.so
radiusd account required        pam_unix_account.so.1

Linux /etc/pam.d/radiusd
#%PAM-1.0
auth       sufficient   /lib/security/pam_securid.so
#auth       required    pam_stack.so service=system-auth
account    required     pam_stack.so service=system-auth        (so that we
can lookup the account validity, maybe not needed but it does'nt work
without it)
#password   required    pam_stack.so service=system-auth
#session    required    pam_stack.so service=system-auth


Here are some debug logs:

  rad_check_password:  Found Auth-Type PAM
auth: type "PAM"
modcall: entering group authenticate for request 0
pam_pass: using pamauth string <radiusd> for pam.conf lookup
MASTER: Child PID 10191 failed to catch signal 9: killing all active
servers.

Here are the "truss" for the shell that was executing the daemon in debug
mode for the above logs section

10142:  kill(10168, SIGKILL)                            = 0
10142:  waitid(P_PID, 10168, 0xFFBFC128, WEXITED|WTRAPPED|WNOHANG) = 0
(MANY MANY OF THESE)
10142:  kill(10168, SIGKILL)                            = 0
10142:  waitid(P_PID, 10168, 0xFFBFC128, WEXITED|WTRAPPED|WNOHANG) = 0
10142:      Received signal #18, SIGCLD [caught]
10142:        siginfo: SIGCLD CLD_KILLED pid=10168 status=0x0009
10142:  sigprocmask(SIG_SETMASK, 0xFFBFBD2C, 0x00000000) = 0
10142:  waitid(P_PID, 10168, 0xFFBFC128, WEXITED|WTRAPPED|WNOHANG) = 0
10142:  kill(10168, SIGKILL)                            = 0
10142:  waitid(P_PID, 10168, 0xFFBFC128, WEXITED|WTRAPPED|WNOHANG) = 0
10142:      Received signal #18, SIGCLD [caught]
10142:        siginfo: SIGCLD CLD_KILLED pid=10168 status=0x0009
10142:  sigprocmask(SIG_SETMASK, 0xFFBFBD2C, 0x00000000) = 0
10142:  sigaction(SIGCLD, 0xFFBFBA68, 0xFFBFBB88)       = 0
10142:  waitid(P_ALL, 0, 0xFFBFBAF8, WEXITED|WTRAPPED|WNOHANG) = 0
10142:  time()                                          = 1080756574
10142:  write(1, " M A S T E R :   C h i l".., 79)      = 79
10142:  kill(-10142, SIGTERM)                           = 0
10142:      Received signal #15, SIGTERM [caught]
10142:  sigprocmask(SIG_SETMASK, 0xFFBFB83C, 0x00000000) = 0
10142:  sigprocmask(SIG_SETMASK, 0xFF01A074, 0xFFBFB5F0) = 0
10142:  lwp_unpark(1, 1)                                = 0
10142:  setcontext(0xFFBFB600)
10142:  _exit(1)

Well, if someone could help me resolving this issue (sry I don't code), I
could make a how-to doc for the freeradius.org website once this issue is
resolved.

Thanks 

Yan



- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to