root/patches/openssh-4.4p1+SecurID_v1.3.2.patch

Revision 1, 47.1 kB (checked in by jesus, 6 years ago)

initial import

  • openssh-4.4p1/Makefile.in

    old new  
    8787        monitor_mm.o monitor.o monitor_wrap.o kexdhs.o kexgexs.o \ 
    8888        auth-krb5.o \ 
    8989        auth2-gss.o gss-serv.o gss-serv-krb5.o \ 
    90         loginrec.o auth-pam.o auth-shadow.o auth-sia.o md5crypt.o \ 
     90        loginrec.o auth-pam.o auth-shadow.o auth-sia.o auth-securid.o md5crypt.o \ 
    9191        audit.o audit-bsm.o platform.o 
    9292 
    9393MANPAGES        = scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-rand-helper.8.out ssh-keysign.8.out sshd_config.5.out ssh_config.5.out 
  • openssh-4.4p1/README.SecurID

    old new  
     1/* 
     2 * Author: Theo Schlossnagle <jesus@omniti.com> 
     3 * Copyright (c) 2000-2002 Theo Schlossnagle <jesus@omniti.com> 
     4 *                    All rights reserved 
     5 * 
     6 * Created: September 21, 2000 
     7 * License: OpenSSH License.  See the license for OpenSSH for more details. 
     8 * 
     9 * Update for ACE 5.X by Jim Matthews -- Jim.W.Matthews@gmail.com 
     10 * Patch works only for OpenSSH version v4.4p1 
     11 * 
     12 * October 04, 2006: -- Jim.W.Matthews@gmail.com 
     13 * Updated to support openssh v4.4p1 
     14 * Updated auth-securid.c with additional includes which are now required. 
     15 * 
     16 * February 11, 2006: -- j.w.matthews@cox.net 
     17 * Updated to support openssh v4.3p1 
     18 * 
     19 * September 10, 2005: -- j.w.matthews@cox.net 
     20 * Updated to support openssh v4.2p1 
     21 * Fixed bug in auth-securid.c where securid_usersfile_find is used even if 
     22 * SECURID is undefined at config time - found by Mike Frysinger. 
     23 * 
     24 * June 16, 2005: -- j.w.matthews@cox.net 
     25 * Updated to support openssh v4.1p1 
     26 * 
     27 * March 15, 2005: -- j.w.matthews@cox.net 
     28 * Updated to support openssh v4.0p1 
     29 * 
     30 * Aug 18, 2004: -- j.w.matthews@cox.net 
     31 * Updated to support openssh v3.9p1 
     32 * Added #ifdef SECURID in a comple of places it wasn't used and should have been 
     33 * for consistency in monitor.c and monitor.h 
     34 * 
     35 * Aug 15, 2004: -- j.w.matthews@cox.net 
     36 * Updated to support openssh v3.8.1p1 
     37 * 
     38 * March 1, 2004: -- j.w.matthews@cox.net 
     39 * Updated to support openssh v3.8p1 
     40 * 
     41 * September 27, 2003: -- j.w.matthews@cox.net 
     42 * Updated to support openssh v3.7.1p2 
     43 * Re-added SecurID man page entries previously included in the v3.6.1p2 patch. 
     44 * Changed "plen" from type int to type u_int in function mm_answer_authsecurid in 
     45 * monitor.c to conform with openssh. 
     46 * 
     47 * September 17, 2003: -- j.w.matthews@cox.net 
     48 * Updated to support openssh v3.7.1p1. 
     49 * 
     50 * September 16, 2003: -- j.w.matthews@cox.net 
     51 * Updated to support openssh v3.7p1. 
     52 * In auth-securid.c log has changed to logit since it changed in v3.7p1. 
     53 * In pam-auth.c securid auth function is no longer needed.  v3.7p1 completely 
     54 * changed the way PAM is handled. 
     55 * 
     56 * June 4th, 2003: -- Nicolas Lidzborski <cpc@freeshell.org> 
     57 * Updated to support openssh v3.6.1p2 
     58 * 
     59 * April 5th, 2003: -- j.w.matthews@cox.net 
     60 * Updated to support openssh v3.6.1p1. 
     61 * Modified to support both new (5.X+) and old (<= 4.X) securid client API libraries. 
     62 * Added --with-securid-old for <= 4.X support, --with-securid is for new API support. 
     63 * Added sd_close for ACE server disconnect at the end of authentication for old API support. 
     64 * 
     65 * March 3rd, 2003: -- j.w.matthews@cox.net 
     66 * Changed "user not in [securid] allow", "user in [securid] deny" SecurID messages from 
     67 * type "error" to type "log" in auth-securid.c. 
     68 * 
     69 * March 1st, 2003: -- j.w.matthews@cox.net 
     70 * Rewrote functions in auth-securid.c to support the ACE server version 5.X API. 
     71 * Modified configure script to check for new libaceclnt.a and acexport.h. 
     72 * Fixed AllowNonSecurid option in monitor.c and servconf.c so it actually works now. 
     73 * Fixed potential memory leak in auth-securid.c for SecurID shell assignment variable. 
     74 * 
     75 * October 22nd, 2002: 
     76 * Updated to 3.5p1 -- jesus@omniti.com 
     77 * incorporated a few minor fixes for the auth phase. 
     78 * 
     79 * June 26th, 2002: 
     80 * Updated to 3.4p1 -- jesus@omniti.com 
     81 * Revamped the auth mechanism to use the new privilege separation code. 
     82 * Updated man pages in their new locations. 
     83 * 
     84 * March 15th, 2002: 
     85 * Updated to 3.1p1 -- jesus@omniti.com 
     86 * Added beeter support for auth2-pam.  Added NegateSecurIDUsers option to 
     87 * negate the meaning of the SecureIDUsersFile option. 
     88 * 
     89 * December 11th, 2001: 
     90 * Updated to 3.0.2p1 -- jesus@omniti.com 
     91 * no new features 
     92 * 
     93 * December 3rd, 2001: 
     94 * Updated to 3.0.1p1 -- jesus@omniti.com 
     95 * no new features 
     96 * 
     97 * November 8th, 2001: 
     98 * Updated to 3.0p1 -- jesus@omniti.com 
     99 * no new features 
     100 * 
     101 * September 30th, 2001: 
     102 * Updated to 2.9.9p2 -- jesus@omniti.com 
     103 * no new features 
     104 * 
     105 * June 28, 2001: 
     106 * Updated to 2.9p2 -- jesus@omniti.com 
     107 * no new features 
     108 * 
     109 * April 24, 2001: 
     110 * Updated to 2.9p1 -- jesus@omniti.com 
     111 * added autoconf clauses to fault if sdiclient.a and headers aren't there. 
     112 * 
     113 * April 21, 2001: 
     114 * Updated to 2.5.2p2 -- jesus@omniti.com 
     115 * Incorporated some bug fixes from Anders Olsen to fix next-token code. 
     116 * 
     117 * March 19, 2001: 
     118 * Updated to 2.5.2p1 -- jesus@omniti.com 
     119 * 
     120 * December 20, 2000: 
     121 * Updated to 2.3.0p1 -- jesus@omniti.com 
     122 * 
     123 * Jan 9th, 2001: 
     124 * Added SecurIDUsersFile, SecurIDIgnoreShell, AllowNonSecurID directives 
     125 * to the sshd_config file.  These parameters are documented in the man page. 
     126 * This provides a more logical seperationg between fail-through due to system 
     127 * failure and fall-through by configuration. (fall-through vs. fail-through) 
     128 *   -- jesus@omniti.com 
     129 */ 
     130 
     131Seems like a few people are interested.  So here is the patch. 
     132 
     133This has only been tested on UNICIES that support PAM.  There is untested 
     134(only 5 lines) code in auth-passwd.c that should provide the same 
     135functionality for normal (non-PAM) password verifications. 
     136 
     137The patch is logical quite small, the physical patch bulky because it contains 
     138all the line number changes in "configure" after running autoconf on the 
     139modified configure.in file (in which I changed maybe 10 lines -- Yuk.) 
     140 
     141The sshd man page has been patched too :-)  Read it for the two new options 
     142relating to SecurID. 
     143 
     144How it works: 
     145 
     1460) apply patch ;-)  You must use GNU patch (get it from ftp.gnu.org, it free.) 
     1471) copy ACE headers (in SecurID inc directory) into either a standard 
     148   include place (like /usr/local/include) or into the openssh source tree or add 
     149   the --with-cflags=-I/path/to/ace/inc (where the include files are located) 
     1502) copy the libaceclnt.a (for ACE 5.X) or sdiclient.a (for ACE <= 4.X) for your 
     151   OS (from /path/to/ace/lib/<arch>) into the openssh source tree. 
     152 
     153Make sure that /var/ace contains your sdconf.rec, etc.  If you installed 
     154SecurID client or server on a machine it should be this way already.  If you 
     155used a non-standard install location do a "ln -s /path/to/ace/data /var/ace" 
     156 
     1573) add --with-securid to the configure flags for new ACE 5.X support.  Use 
     158   --with-securid-old for ACE API version 4.X and older. 
     159 
     160It will trigger if a user has a shell in /etc/passwd that ends with "sdshell" 
     161and it snags your shell the same way sdshell does.  Users with other shells 
     162will log in as if SecurID didn't exist. 
     163 
     164Done: 
     165  o Normal passcode verification 
     166  o Enter next token for verification 
     167    (use ssh -v to see the *useful* debgging messages) 
     168 
     169ssh -v will let you know if: 
     170 o your code was accepted. 
     171 o your code was rejected. 
     172 o you are required to wait for the next token and enter that. 
     173 
     174TODO: 
     175  o Handle PIN creation and changing (as their are by default three log in 
     176attempts, it should be straight forward to integrate in these additions -- 
     177both of these operations require exactly three user inputs.) 
     178  o Add sshd_config parameter to specify the VAR_ACE location (forced to 
     179/var/ace OR VAR_ACE environment variable now.) 
     180 
     181DISCLAIMER: 
     182  I works for me (yes, in production).  If you get locked out of a production 
     183system becuase you replaced your sshd with this one, feeling really dumb is 
     184YOUR responsibility NOT mine.  It is not my fault :-D 
     185 
     186Hope this is useful! scp (and all other tools that can use ssh like rsync and 
     187cvs) will work now!!!! Hooray! 
     188 
  • openssh-4.4p1/auth-passwd.c

    old new  
    101101                /* Fall back to ordinary passwd authentication. */ 
    102102        } 
    103103#endif 
     104#ifdef SECURID 
     105       if (options.securid_authentication == 1) { 
     106               int ret = auth_securid(authctxt, password); 
     107               if (ret >= 0) 
     108                       return ret; 
     109               /* Only returns < 0 if the account is not a SecurID account */ 
     110               /* Fall back to ordinary passwd authentication. */ 
     111               if(ret<0 && !options.allow_nonsecurid) { 
     112               return 0; 
     113               } 
     114       } 
     115#endif 
    104116#ifdef HAVE_CYGWIN 
    105117        if (is_winnt) { 
    106118                HANDLE hToken = cygwin_logon_user(pw, password); 
  • openssh-4.4p1/auth-securid.c

    old new  
     1/* 
     2 * Author: Theo Schlossnagle <jesus@omniti.com> 
     3 * Copyright (c) 2000 Theo Schlossnagle <jesus@omniti.com> 
     4 *                    All rights reserved 
     5 * Created: September 21, 2000 
     6 * This file contains the code to process a SecurID authentication 
     7 * including the "next token" request. 
     8 */ 
     9 
     10/*  
     11 * Added ACE Server API version 5.X Support 
     12 * Jim Matthews (JWM) 
     13 * 
     14 */ 
     15 
     16#include "includes.h" 
     17 
     18/* RCSID("$OpenBSD: auth-securid.c,v 1.0 2000/09/21 01:39:38 jesus Exp $"); */ 
     19/* $Id: auth-securid.c,v 1.3.1 2006/10/04 23:22:12 jmatthew Exp jmatthew $ */ 
     20 
     21#include "packet.h" 
     22#include "ssh.h" 
     23#include "log.h" 
     24#include "servconf.h" 
     25#include "xmalloc.h" 
     26#include "key.h" 
     27#include "hostfile.h" 
     28#include "auth.h" 
     29 
     30#include <string.h> 
     31#include <errno.h> 
     32 
     33#ifdef WITH_AIXAUTHENTICATE 
     34# include <login.h> 
     35#endif 
     36#ifdef HAVE_HPUX_TRUSTED_SYSTEM_PW 
     37# include <hpsecurity.h> 
     38# include <prot.h> 
     39#endif 
     40#ifdef HAVE_SHADOW_H 
     41# include <shadow.h> 
     42#endif 
     43#ifdef HAVE_GETPWANAM 
     44# include <sys/label.h> 
     45# include <sys/audit.h> 
     46# include <pwdadj.h> 
     47#endif 
     48#if defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) 
     49# include "md5crypt.h" 
     50#endif /* defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) */ 
     51 
     52#ifdef SECURID 
     53#ifdef SECURID_NEW 
     54/* Only need acexport.h for 5.0 API JWM */ 
     55# include "acexport.h" 
     56 
     57#else 
     58 
     59# include "sdi_athd.h" 
     60# include "sdconf.h" 
     61# include "sdacmvls.h" 
     62 
     63union config_record configure; 
     64#endif 
     65#endif 
     66 
     67/* 
     68 * Tries to authenticate the user using password.  Returns true if 
     69 * authentication succeeds. 
     70 */ 
     71#define INBUFFLEN 256 
     72 
     73/* Added ifdef 09102005 JWM */ 
     74#ifdef SECURID 
     75int 
     76securid_usersfile_find(const char *pw_name) 
     77{ 
     78        extern ServerOptions options; 
     79        FILE *inf; 
     80        char inbuff[INBUFFLEN]; 
     81        struct stat fileinfo; 
     82        int retval = 0; 
     83 
     84        if(!options.securid_usersfile) { 
     85                error("In securid_usersfile_find() with NULL filename!"); 
     86                return -1; 
     87        } 
     88        if(lstat(options.securid_usersfile, &fileinfo)) { 
     89                error("Cannot open %s: %s", 
     90                      options.securid_usersfile, strerror(errno)); 
     91                return -1; 
     92        } 
     93        if(fileinfo.st_mode & (S_IWOTH|S_IWGRP)) { 
     94                error("SecurIDUsersFile is writeable by group and other"); 
     95                return -1; 
     96        } 
     97        if(!(inf = fopen(options.securid_usersfile, "r"))) { 
     98                error("Cannot open %s: %s", 
     99                      options.securid_usersfile, strerror(errno)); 
     100                return -1; 
     101        } 
     102        while(fgets(inbuff,INBUFFLEN-1,inf) != NULL) { 
     103                if(inbuff[strlen(inbuff) - 1] == '\n') 
     104                        inbuff[strlen(inbuff) - 1] = '\0'; 
     105                retval = !strcmp(inbuff,pw_name); 
     106                if(retval) break; 
     107        } 
     108        fclose(inf); 
     109        if(retval) return 1; 
     110        debug2("Failed to find %s in %s", 
     111                pw_name, options.securid_usersfile); 
     112        return 0; 
     113} 
     114#endif 
     115 
     116int 
     117auth_securid(Authctxt *authctxt, const char *password) 
     118{ 
     119        static int state = 0;   /* This tells us where we expect a 
     120                                        0 "PIN" 
     121                                        1 "Next Token" 
     122                                */ 
     123        int doauth; 
     124        char *ecp; 
     125        /* Changed this to static, since pw->shell does not get redefined, prevents mem leak JWM */ 
     126        /* Allocate 256 chars for shell JWM */ 
     127        static char shell[256]; 
     128        extern ServerOptions options; 
     129        struct passwd *pw; 
     130#ifndef SECURID 
     131        return -1; 
     132#else 
     133        /* Add static for the nexttoken case -- Anders Olsen 20010409 */ 
     134        /* API Change for ACE version 5.03 JWM */ 
     135#ifdef SECURID_NEW 
     136        static SDI_HANDLE sd_dat; 
     137#else 
     138        static struct SD_CLIENT sd_dat, *sd; 
     139#endif 
     140 
     141        pw = authctxt->pw; 
     142        /* Check for users with no sdshell and pass them by. */ 
     143        if(options.securid_usersfile) { 
     144                doauth = securid_usersfile_find(pw->pw_name); 
     145                if(!options.negate_securid_users && doauth == 0) { 
     146                        /* file is there, user is not, option respected */ 
     147                        /* log instead of error JWM */ 
     148                        logit("User Not In SecurID Users Allow File"); 
     149                        if(options.allow_nonsecurid) return -1; 
     150                        return 0; 
     151                } else if(options.negate_securid_users && doauth == 1) { 
     152                        /* file is there, user is, option negated */ 
     153                        /* log instead of error JWM */ 
     154                        logit("User In SecurID Users Deny File"); 
     155                        if(options.allow_nonsecurid) return -1; 
     156                        return 0; 
     157                } else if(doauth < 0) { /* File not there or bad perms! */ 
     158                        error("Failing SecurID login attempt"); 
     159                        return 0;       /* Fail */ 
     160                } 
     161        } else { 
     162                /* No users securid_usersfile 
     163                   so use shells that end in sdshell */ 
     164                if (!((ecp = strstr(pw->pw_shell, "sdshell")) && 
     165                                (*(ecp+7)=='\0'))) { 
     166                        if(options.allow_nonsecurid) { 
     167                                return -1; 
     168                        } else { 
     169                                return 0; 
     170                        } 
     171                } 
     172        } 
     173        /* sd_check on with an empty password causes segfault against some 
     174                versions of sdiclient -- Anders Olsen 20010409 */ 
     175        if (*password == '\0') { 
     176                debug2("auth_securid: empty password, skipping"); 
     177                return 0; 
     178        } 
     179        /* Don't reopen session to securid-server is nexttoken 
     180                -- Adres Olsen 20010410 */ 
     181        if (state == 0) { 
     182                int ret; 
     183#ifdef SECURID_NEW 
     184                /* API Change for ACE version 5.03 JWM */ 
     185                /* Initialize the ace client, test for sdconf.rec and other setup */ 
     186                if(AceInitialize() == SD_FALSE) { 
     187                        error("SecurID: Failed to initialize ACE API library."); 
     188                        if(options.securid_fallback) return -1; 
     189                        return 0; 
     190                } 
     191                /* API Change for ACE version 5.03 JWM */ 
     192                /* Initialize communication, check connection to server, etc */ 
     193                ret = SD_Init(&sd_dat); 
     194                if(ret != ACM_OK) { 
     195                        if(ret == ACE_INIT_NO_RESOURCE) { 
     196                                error("SecurID: Couldn't allocate memory."); 
     197                        } 
     198                        if(ret == ACE_INIT_SOCKET_FAIL) { 
     199                                error("SecurID: Couldn't create socket."); 
     200                        } 
     201                        error("SecurID: Couldn't establish client/server communications."); 
     202                        if(options.securid_fallback) return -1; 
     203                        return 0; 
     204                } 
     205                /* API addition for ACE version 5.03 JWM */ 
     206                /* Lock Server */ 
     207                if(SD_Lock(sd_dat,pw->pw_name) == ACM_OK) { 
     208                        debug("SecurID: Locked Server"); 
     209                } else { 
     210                        error("SecurID: Failed to lock server."); 
     211                        return 0; 
     212                } 
     213                /* API Change for version 5.03 JWM */ 
     214                /* Check for valid authentication */ 
     215                ret = SD_Check(sd_dat, (char *)password, pw->pw_name); 
     216                if(ret == ACM_OK) { 
     217                        goto success; 
     218                } else { 
     219                        if(ret == ACM_ACCESS_DENIED) { 
     220                                error("SecurID: authentication failed."); 
     221                        } 
     222                        if(ret == ACM_NEXT_CODE_REQUIRED) { 
     223                                error("SecurID: needs next token."); 
     224                                state = 1; /* Process next try as sd_next */ 
     225                        } 
     226                        if(ret == ACE_UNDEFINED_PASSCODE) { 
     227                                error("SecurID: passcode invalid length or null"); 
     228                        } 
     229                        if(ret == ACE_UNDEFINED_USERNAME) { 
     230                                error("SecurID: username invalid length or null"); 
     231                        } 
     232                        if(ret == ACE_ERR_INVALID_HANDLE) { 
     233                                error("SecurID: handle value invalid"); 
     234                        } 
     235                        if(ret == ACM_NEW_PIN_REQUIRED) { 
     236                                error("SecurID: new pin required"); 
     237                        } 
     238                        return 0; /* Failed! */ 
     239                } 
     240#else   /* else old securid */ 
     241                memset(&sd_dat, 0, sizeof(sd_dat));   /* clear struct */ 
     242                sd = &sd_dat; 
     243 
     244                if(creadcfg()) { 
     245                        /* Can't read sdconf.rec!  Gotta bail */ 
     246                        error("SecurID: Couldn't read sdconf.rec."); 
     247                        if(options.securid_fallback) return -1; 
     248                        return 0; 
     249                } 
     250                if(sd_init(sd)) { 
     251                        /* Can't establish client/server comms!  Gotta bail */ 
     252                        error("SecurID: Couldn't establish client/server communications."); 
     253                        if(options.securid_fallback) return -1; 
     254                        return 0; 
     255                } 
     256                /* Auth PIN... */ 
     257                ret = sd_check((char *)password, pw->pw_name, sd); 
     258                if(ret == ACM_OK) { 
     259                        goto success; 
     260                } 
     261                if(ret == ACM_ACCESS_DENIED) { 
     262                        error("SecurID: passcode rejected."); 
     263                        return 0; /* Failed! */ 
     264                } 
     265                if(ret == ACM_NEXT_CODE_REQUIRED) { 
     266                        error("SecurID: needs next token."); 
     267                        state = 1; /* Process next try as sd_next */ 
     268                        return 0;  /* Fail, so ssh will prmpt again */ 
     269                } 
     270#endif 
     271        } else { 
     272                /* Auth next token... */ 
     273                int ret; 
     274                state = 0;  /* Set back to PIN mode */ 
     275#ifdef SECURID_NEW 
     276                /* API Change for version 5.03 JWM */ 
     277                ret = SD_Next(sd_dat, (char *)password); 
     278#else 
     279                ret = sd_next((char *)password, sd); 
     280#endif 
     281                if(ret == ACM_OK) { 
     282                        goto success; 
     283                } 
     284                error("SecurID: passcode rejected."); 
     285                return 0; /* Failed */ 
     286        } 
     287        error("SecurID: unhandled sdcheck() return code."); 
     288        return 0; /* Failed! */ 
     289 
     290success: 
     291#ifdef SECURID_NEW 
     292        /* Clear mem for shell */ 
     293        memset(shell, 0, sizeof(shell)); 
     294#endif 
     295        if(!options.securid_ignore_shell) { 
     296#ifdef SECURID_NEW 
     297        /* Changed for ACE 5.0 API JWM */ 
     298                if(!AceGetShell(sd_dat,shell)) { 
     299                        error("SecurID: Failed to get user's shell from server."); 
     300                        return 0; 
     301                }        
     302#else 
     303        strcpy(shell,sd->shell); 
     304#endif 
     305        pw->pw_shell = shell; 
     306        } 
     307#ifdef SECURID_NEW 
     308        if(SD_Close(sd_dat) != ACM_OK) { 
     309                error("SecurID: SD_Close - Handle invalid."); 
     310        } 
     311#else 
     312        if(!sd_close()) { 
     313                error("SecurID: sd_close failed."); 
     314        } 
     315#endif 
     316        return 1; /* Success */ 
     317#endif 
     318} 
  • openssh-4.4p1/auth.h

    old new  
    107107auth_rhosts2(struct passwd *, const char *, const char *, const char *); 
    108108 
    109109int      auth_rhosts_rsa(Authctxt *, char *, Key *); 
     110#ifdef SECURID 
     111int      auth_securid(Authctxt *, const char *); 
     112#endif 
    110113int      auth_password(Authctxt *, const char *); 
    111114int      auth_rsa(Authctxt *, BIGNUM *); 
    112115int      auth_rsa_challenge_dialog(Key *); 
  • openssh-4.4p1/auth2-passwd.c

    old new  
    6464        } 
    6565        packet_check_eom(); 
    6666 
     67#ifdef SECURID 
     68        /* Try SecurID regardless */ 
     69        if (authctxt->valid && options.securid_authentication == 1) { 
     70                authenticated = PRIVSEP(auth_securid(authctxt, password)); 
     71                /* Only returns < 0 if the account is not a SecurID account */ 
     72                /* Fall back to ordinary passwd authentication. */ 
     73                if(authenticated < 0) 
     74                        authenticated = 0; 
     75                else 
     76                        goto passreturn; 
     77        } 
     78        /* No... continue */ 
     79#endif 
     80 
    6781        if (change) 
    6882                logit("password change not supported"); 
    6983        else if (PRIVSEP(auth_password(authctxt, password)) == 1) 
     
    7286        if (check_nt_auth(1, authctxt->pw) == 0) 
    7387                authenticated = 0; 
    7488#endif 
     89#ifdef SECURID 
     90passreturn: 
     91#endif 
    7592        memset(password, 0, len); 
    7693        xfree(password); 
    7794        return authenticated; 
  • openssh-4.4p1/config.h.in

    old new  
    11711171/* Location of PRNGD/EGD random number socket */ 
    11721172#undef PRNGD_SOCKET 
    11731173 
     1174/* Define if you want SecurID support */ 
     1175#undef SECURID 
     1176#undef SECURID_NEW 
     1177 
    11741178/* read(1) can return 0 for a non-closed fd */ 
    11751179#undef PTY_ZEROREAD 
    11761180 
  • openssh-4.4p1/configure

    old new  
    199199  echo as_func_ret_failure succeeded. 
    200200fi 
    201201 
    202 if (set x; as_func_ret_success y && test x = \"\$1\" ); then 
     202if ( set x; as_func_ret_success y && test x = \"\$1\" ); then 
    203203  : 
    204204else 
    205205  exitcode=1 
     
    401401  echo as_func_ret_failure succeeded. 
    402402fi 
    403403 
    404 if (set x; as_func_ret_success y && test x = \"\$1\" ); then 
     404if ( set x; as_func_ret_success y && test x = \"\$1\" ); then 
    405405  : 
    406406else 
    407407  exitcode=1 
     
    13221322  --with-zlib=PATH        Use zlib in PATH 
    13231323  --without-zlib-version-check Disable zlib version check 
    13241324  --with-skey[=PATH]      Enable S/Key support (optionally in PATH) 
     1325  --with-securid          Enable ACE 5.X+ SecurID support 
     1326  --with-securid-old      Enable SecurID 4.X and earlier SecurID support 
    13251327  --with-tcp-wrappers[=PATH] Enable tcpwrappers support (optionally in PATH) 
    13261328  --with-libedit[=PATH]   Enable libedit support for sftp 
    13271329  --with-audit=module     Enable EXPERIMENTAL audit support (modules=debug,bsm) 
     
    1295812960fi 
    1295912961 
    1296012962 
     12963SECURID_MSG="no" 
     12964 
     12965# Check whether --with-securid was given. 
     12966if test "${with_securid+set}" = set; then 
     12967  withval=$with_securid; 
     12968               if test "x$withval" != "xno" ; then 
     12969                       saved_LIBS="$LIBS" 
     12970                       LIBS="$LIBS libaceclnt.a -lpthread" 
     12971                       { echo "$as_me:$LINENO: checking for libaceclnt.a and includes" >&5 
     12972echo $ECHO_N "checking for libaceclnt.a and includes... $ECHO_C" >&6; } 
     12973                       cat >conftest.$ac_ext <<_ACEOF 
     12974/* confdefs.h.  */ 
     12975_ACEOF 
     12976cat confdefs.h >>conftest.$ac_ext 
     12977cat >>conftest.$ac_ext <<_ACEOF 
     12978/* end confdefs.h.  */ 
     12979 
     12980#include "acexport.h" 
     12981                                       SDI_HANDLE sd_dat; 
     12982 
     12983int 
     12984main () 
     12985{ 
     12986AceInitialize(); SD_Init(&sd_dat); 
     12987  ; 
     12988  return 0; 
     12989} 
     12990_ACEOF 
     12991rm -f conftest.$ac_objext conftest$ac_exeext 
     12992if { (ac_try="$ac_link" 
     12993case "(($ac_try" in 
     12994  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     12995  *) ac_try_echo=$ac_try;; 
     12996esac 
     12997eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     12998  (eval "$ac_link") 2>conftest.er1 
     12999  ac_status=$? 
     13000  grep -v '^ *+' conftest.er1 >conftest.err 
     13001  rm -f conftest.er1 
     13002  cat conftest.err >&5 
     13003  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13004  (exit $ac_status); } && 
     13005         { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 
     13006  { (case "(($ac_try" in 
     13007  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     13008  *) ac_try_echo=$ac_try;; 
     13009esac 
     13010eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     13011  (eval "$ac_try") 2>&5 
     13012  ac_status=$? 
     13013  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13014  (exit $ac_status); }; } && 
     13015         { ac_try='test -s conftest$ac_exeext' 
     13016  { (case "(($ac_try" in 
     13017  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     13018  *) ac_try_echo=$ac_try;; 
     13019esac 
     13020eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     13021  (eval "$ac_try") 2>&5 
     13022  ac_status=$? 
     13023  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13024  (exit $ac_status); }; }; then 
     13025 
     13026                                       { echo "$as_me:$LINENO: result: yes" >&5 
     13027echo "${ECHO_T}yes" >&6; } 
     13028                                       cat >>confdefs.h <<\_ACEOF 
     13029#define SECURID 1 
     13030_ACEOF 
     13031 
     13032                                       cat >>confdefs.h <<\_ACEOF 
     13033#define SECURID_NEW 1 
     13034_ACEOF 
     13035 
     13036                                       SECURID_MSG="yes: 5.X+" 
     13037 
     13038else 
     13039  echo "$as_me: failed program was:" >&5 
     13040sed 's/^/| /' conftest.$ac_ext >&5 
     13041 
     13042 
     13043                                       { { echo "$as_me:$LINENO: error: *** libaceclnt.a or includes missing" >&5 
     13044echo "$as_me: error: *** libaceclnt.a or includes missing" >&2;} 
     13045   { (exit 1); exit 1; }; } 
     13046 
     13047 
     13048fi 
     13049 
     13050rm -f core conftest.err conftest.$ac_objext \ 
     13051      conftest$ac_exeext conftest.$ac_ext 
     13052               fi 
     13053 
     13054 
     13055fi 
     13056 
     13057 
     13058# Check whether --with-securid-old was given. 
     13059if test "${with_securid_old+set}" = set; then 
     13060  withval=$with_securid_old; 
     13061               if test "x$withval" != "xno" ; then 
     13062                       saved_LIBS="$LIBS" 
     13063                       LIBS="$LIBS sdiclient.a" 
     13064                       { echo "$as_me:$LINENO: checking for sdiclient.a and includes" >&5 
     13065echo $ECHO_N "checking for sdiclient.a and includes... $ECHO_C" >&6; } 
     13066                       cat >conftest.$ac_ext <<_ACEOF 
     13067/* confdefs.h.  */ 
     13068_ACEOF 
     13069cat confdefs.h >>conftest.$ac_ext 
     13070cat >>conftest.$ac_ext <<_ACEOF 
     13071/* end confdefs.h.  */ 
     13072 
     13073#include "sdi_athd.h" 
     13074#include "sdconf.h" 
     13075#include "sdacmvls.h" 
     13076                                       struct SD_CLIENT sd_dat, *sd; 
     13077                                       union config_record configure; 
     13078 
     13079int 
     13080main () 
     13081{ 
     13082sd = &sd_dat; creadcfg(); sd_init(sd); 
     13083  ; 
     13084  return 0; 
     13085} 
     13086_ACEOF 
     13087rm -f conftest.$ac_objext conftest$ac_exeext 
     13088if { (ac_try="$ac_link" 
     13089case "(($ac_try" in 
     13090  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     13091  *) ac_try_echo=$ac_try;; 
     13092esac 
     13093eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     13094  (eval "$ac_link") 2>conftest.er1 
     13095  ac_status=$? 
     13096  grep -v '^ *+' conftest.er1 >conftest.err 
     13097  rm -f conftest.er1 
     13098  cat conftest.err >&5 
     13099  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13100  (exit $ac_status); } && 
     13101         { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' 
     13102  { (case "(($ac_try" in 
     13103  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     13104  *) ac_try_echo=$ac_try;; 
     13105esac 
     13106eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     13107  (eval "$ac_try") 2>&5 
     13108  ac_status=$? 
     13109  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13110  (exit $ac_status); }; } && 
     13111         { ac_try='test -s conftest$ac_exeext' 
     13112  { (case "(($ac_try" in 
     13113  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
     13114  *) ac_try_echo=$ac_try;; 
     13115esac 
     13116eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 
     13117  (eval "$ac_try") 2>&5 
     13118  ac_status=$? 
     13119  echo "$as_me:$LINENO: \$? = $ac_status" >&5 
     13120  (exit $ac_status); }; }; then 
     13121 
     13122                                       { echo "$as_me:$LINENO: result: yes" >&5 
     13123echo "${ECHO_T}yes" >&6; } 
     13124                                       cat >>confdefs.h <<\_ACEOF 
     13125#define SECURID 1 
     13126_ACEOF 
     13127 
     13128                                       SECURID_MSG="yes: <= 4.X" 
     13129 
     13130else 
     13131  echo "$as_me: failed program was:" >&5 
     13132sed 's/^/| /' conftest.$ac_ext >&5 
     13133 
     13134 
     13135                                       { { echo "$as_me:$LINENO: error: *** sdiclient.a or includes missing" >&5 
     13136echo "$as_me: error: *** sdiclient.a or includes missing" >&2;} 
     13137   { (exit 1); exit 1; }; } 
     13138 
     13139 
     13140fi 
     13141 
     13142rm -f core conftest.err conftest.$ac_objext \ 
     13143      conftest$ac_exeext conftest.$ac_ext 
     13144               fi 
     13145 
     13146 
     13147fi 
     13148 
     13149 
    1296113150# Check whether user wants TCP wrappers support 
    1296213151TCPW_MSG="no" 
    1296313152 
     
    3340733596echo "                   SELinux support: $SELINUX_MSG" 
    3340833597echo "                 Smartcard support: $SCARD_MSG" 
    3340933598echo "                     S/KEY support: $SKEY_MSG" 
     33599echo "                   SecurID support: $SECURID_MSG" 
    3341033600echo "              TCP Wrappers support: $TCPW_MSG" 
    3341133601echo "              MD5 password support: $MD5_MSG" 
    3341233602echo "                   libedit support: $LIBEDIT_MSG" 
  • openssh-4.4p1/configure.ac

    old new  
    10791079        ] 
    10801080) 
    10811081 
     1082SECURID_MSG="no" 
     1083AC_ARG_WITH(securid, 
     1084       [  --with-securid          Enable ACE 5.X+ SecurID support], 
     1085       [ 
     1086               if test "x$withval" != "xno" ; then 
     1087                       saved_LIBS="$LIBS" 
     1088                       LIBS="$LIBS libaceclnt.a -lpthread" 
     1089                       AC_MSG_CHECKING(for libaceclnt.a and includes) 
     1090                       AC_TRY_LINK( 
     1091                               [ 
     1092#include "acexport.h" 
     1093                                       SDI_HANDLE sd_dat; 
     1094                               ], 
     1095                               [AceInitialize(); SD_Init(&sd_dat);], 
     1096                               [ 
     1097                                       AC_MSG_RESULT(yes) 
     1098                                       AC_DEFINE(SECURID) 
     1099                                       AC_DEFINE(SECURID_NEW) 
     1100                                       SECURID_MSG="yes: 5.X+"  
     1101                               ], 
     1102                               [ 
     1103                                       AC_MSG_ERROR([*** libaceclnt.a or includes missing]) 
     1104                               ] 
     1105                       ) 
     1106               fi 
     1107       ] 
     1108) 
     1109AC_ARG_WITH(securid-old, 
     1110       [  --with-securid-old      Enable SecurID 4.X and earlier SecurID support], 
     1111       [ 
     1112               if test "x$withval" != "xno" ; then 
     1113                       saved_LIBS="$LIBS" 
     1114                       LIBS="$LIBS sdiclient.a" 
     1115                       AC_MSG_CHECKING(for sdiclient.a and includes) 
     1116                       AC_TRY_LINK( 
     1117                               [ 
     1118#include "sdi_athd.h" 
     1119#include "sdconf.h" 
     1120#include "sdacmvls.h" 
     1121                                       struct SD_CLIENT sd_dat, *sd; 
     1122                                       union config_record configure; 
     1123                               ], 
     1124                               [sd = &sd_dat; creadcfg(); sd_init(sd);], 
     1125                               [ 
     1126                                       AC_MSG_RESULT(yes) 
     1127                                       AC_DEFINE(SECURID) 
     1128                                       SECURID_MSG="yes: <= 4.X" 
     1129                               ], 
     1130                               [ 
     1131                                       AC_MSG_ERROR([*** sdiclient.a or includes missing]) 
     1132                               ] 
     1133                       ) 
     1134               fi 
     1135       ] 
     1136) 
     1137 
    10821138# Check whether user wants TCP wrappers support 
    10831139TCPW_MSG="no" 
    10841140AC_ARG_WITH(tcp-wrappers, 
     
    39654021echo "                   SELinux support: $SELINUX_MSG" 
    39664022echo "                 Smartcard support: $SCARD_MSG" 
    39674023echo "                     S/KEY support: $SKEY_MSG" 
     4024echo "                   SecurID support: $SECURID_MSG" 
    39684025echo "              TCP Wrappers support: $TCPW_MSG" 
    39694026echo "              MD5 password support: $MD5_MSG" 
    39704027echo "                   libedit support: $LIBEDIT_MSG" 
  • openssh-4.4p1/monitor.c

    old new  
    133133int mm_answer_pwnamallow(int, Buffer *); 
    134134int mm_answer_auth2_read_banner(int, Buffer *); 
    135135int mm_answer_authserv(int, Buffer *); 
     136#ifdef SECURID 
     137int mm_answer_authsecurid(int, Buffer *); 
     138#endif 
    136139int mm_answer_authpassword(int, Buffer *); 
    137140int mm_answer_bsdauthquery(int, Buffer *); 
    138141int mm_answer_bsdauthrespond(int, Buffer *); 
     
    206209    {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv}, 
    207210    {MONITOR_REQ_AUTH2_READ_BANNER, MON_ONCE, mm_answer_auth2_read_banner}, 
    208211    {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword}, 
     212#ifdef SECURID 
     213    {MONITOR_REQ_AUTHSECURID, MON_AUTH, mm_answer_authsecurid}, 
     214#endif 
    209215#ifdef USE_PAM 
    210216    {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, 
    211217    {MONITOR_REQ_PAM_ACCOUNT, 0, mm_answer_pam_account}, 
     
    697703        return (0); 
    698704} 
    699705 
     706#ifdef SECURID 
     707int 
     708mm_answer_authsecurid(int socket, Buffer *m) 
     709{ 
     710       static int call_count; 
     711       char *passwd; 
     712       int authenticated; 
     713       /* Changed to u_int to conform with openssh JWM */ 
     714       u_int plen; 
     715 
     716       passwd = buffer_get_string(m, &plen); 
     717       /* Only authenticate if the context is valid */ 
     718       authenticated = 0; 
     719       if(options.securid_authentication && authctxt->valid) { 
     720               authenticated = auth_securid(authctxt, passwd); 
     721       /* Fixed fallback/nonsecurid JWM */ 
     722               if(authenticated < 0) { 
     723                       if(options.password_authentication) { 
     724                               if(options.allow_nonsecurid || options.securid_fallback) { 
     725                                       debug2("Falling to password authentication."); 
     726                                       authenticated = auth_password(authctxt, passwd); 
     727                               } else { 
     728                                       authenticated = 0; 
     729                               } 
     730                       } else { 
     731                               authenticated = 0; 
     732                       } 
     733               } 
     734       } 
     735       memset(passwd, 0, strlen(passwd)); 
     736       xfree(passwd); 
     737 
     738       buffer_clear(m); 
     739       buffer_put_int(m, authenticated); 
     740 
     741       debug3("%s: sending result %d", __func__, authenticated); 
     742       mm_request_send(socket, MONITOR_ANS_AUTHSECURID, m); 
     743 
     744       call_count++; 
     745       if (plen == 0 && call_count == 1) 
     746               auth_method = "none"; 
     747       else 
     748               auth_method = "password"; 
     749 
     750       /* Causes monitor loop to terminate if authenticated */ 
     751       return (authenticated); 
     752} 
     753#endif 
     754 
    700755int 
    701756mm_answer_authpassword(int sock, Buffer *m) 
    702757{ 
  • openssh-4.4p1/monitor.h

    old new  
    3535        MONITOR_REQ_PWNAM, MONITOR_ANS_PWNAM, 
    3636        MONITOR_REQ_AUTH2_READ_BANNER, MONITOR_ANS_AUTH2_READ_BANNER, 
    3737        MONITOR_REQ_AUTHPASSWORD, MONITOR_ANS_AUTHPASSWORD, 
     38#ifdef SECURID 
     39        MONITOR_REQ_AUTHSECURID, MONITOR_ANS_AUTHSECURID, 
     40#endif 
    3841        MONITOR_REQ_BSDAUTHQUERY, MONITOR_ANS_BSDAUTHQUERY, 
    3942        MONITOR_REQ_BSDAUTHRESPOND, MONITOR_ANS_BSDAUTHRESPOND, 
    4043        MONITOR_REQ_SKEYQUERY, MONITOR_ANS_SKEYQUERY, 
  • openssh-4.4p1/monitor_wrap.c

    old new  
    282282        buffer_free(&m); 
    283283} 
    284284 
     285#ifdef SECURID 
     286/* Do the securid authentication */ 
     287int 
     288mm_auth_securid(Authctxt *authctxt, char *password) 
     289{ 
     290       Buffer m; 
     291       int authenticated = 0; 
     292 
     293       debug3("%s entering", __func__); 
     294 
     295       buffer_init(&m); 
     296       buffer_put_cstring(&m, password); 
     297       mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHSECURID, &m); 
     298 
     299       debug3("%s: waiting for MONITOR_ANS_AUTHSECURID", __func__); 
     300       mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUTHSECURID, &m); 
     301 
     302       authenticated = buffer_get_int(&m); 
     303 
     304       buffer_free(&m); 
     305 
     306       debug3("%s: user %sauthenticated", 
     307               __func__, authenticated ? "" : "not "); 
     308       return (authenticated); 
     309} 
     310#endif 
     311 
    285312/* Do the password authentication */ 
    286313int 
    287314mm_auth_password(Authctxt *authctxt, char *password) 
  • openssh-4.4p1/monitor_wrap.h

    old new  
    4343void mm_inform_authserv(char *, char *); 
    4444struct passwd *mm_getpwnamallow(const char *); 
    4545char *mm_auth2_read_banner(void); 
     46#ifdef SECURID 
     47int mm_auth_securid(struct Authctxt *, char *); 
     48#endif 
    4649int mm_auth_password(struct Authctxt *, char *); 
    4750int mm_key_allowed(enum mm_keytype, char *, char *, Key *); 
    4851int mm_user_key_allowed(struct passwd *, Key *); 
  • openssh-4.4p1/servconf.c

    old new  
    8585        options->hostbased_uses_name_from_packet_only = -1; 
    8686        options->rsa_authentication = -1; 
    8787        options->pubkey_authentication = -1; 
     88#ifdef SECURID 
     89        options->securid_authentication = -1; 
     90        options->securid_fallback = -1; 
     91        options->allow_nonsecurid = -1; 
     92        options->negate_securid_users = -1; 
     93        options->securid_usersfile = NULL; 
     94        options->securid_ignore_shell = -1; 
     95#endif 
    8896        options->kerberos_authentication = -1; 
    8997        options->kerberos_or_local_passwd = -1; 
    9098        options->kerberos_ticket_cleanup = -1; 
     
    194202                options->rsa_authentication = 1; 
    195203        if (options->pubkey_authentication == -1) 
    196204                options->pubkey_authentication = 1; 
     205#ifdef SECURID 
     206        if (options->securid_authentication == -1) 
     207                options->securid_authentication = 1; 
     208        /* Fixed fallback and non-securid JWM */ 
     209        if (options->securid_fallback == -1) 
     210                options->securid_fallback = 1; 
     211        if (options->allow_nonsecurid == -1) 
     212                options->allow_nonsecurid = 1; 
     213        if (options->negate_securid_users == -1)  
     214                options->negate_securid_users = 0; 
     215        if (options->securid_ignore_shell == -1) 
     216                options->securid_ignore_shell = 0; 
     217#endif 
    197218        if (options->kerberos_authentication == -1) 
    198219                options->kerberos_authentication = 0; 
    199220        if (options->kerberos_or_local_passwd == -1) 
     
    274295        sPort, sHostKeyFile, sServerKeyBits, sLoginGraceTime, sKeyRegenerationTime, 
    275296        sPermitRootLogin, sLogFacility, sLogLevel, 
    276297        sRhostsRSAAuthentication, sRSAAuthentication, 
     298#ifdef SECURID 
     299        sSecurIDAuthentication, sSecurIDFallBack, sAllowNonSecurID, 
     300        sNegateSecurIDUsers, sSecurIDUsersFile, sSecurIDIgnoreShell, 
     301#endif 
    277302        sKerberosAuthentication, sKerberosOrLocalPasswd, sKerberosTicketCleanup, 
    278303        sKerberosGetAFSToken, 
    279304        sKerberosTgtPassing, sChallengeResponseAuthentication, 
     
    323348        { "keyregenerationinterval", sKeyRegenerationTime, SSHCFG_GLOBAL }, 
    324349        { "permitrootlogin", sPermitRootLogin, SSHCFG_GLOBAL }, 
    325350        { "syslogfacility", sLogFacility, SSHCFG_GLOBAL }, 
     351#ifdef SECURID 
     352        { "securidauthentication", sSecurIDAuthentication }, 
     353        { "securidfallback", sSecurIDFallBack }, 
     354        { "allownonsecurid", sAllowNonSecurID }, 
     355        { "negatesecuridusers", sNegateSecurIDUsers }, 
     356        { "securidusersfile", sSecurIDUsersFile }, 
     357        { "securidignoreshell", sSecurIDIgnoreShell }, 
     358#endif 
    326359        { "loglevel", sLogLevel, SSHCFG_GLOBAL }, 
    327360        { "rhostsauthentication", sDeprecated, SSHCFG_GLOBAL }, 
    328361        { "rhostsrsaauthentication", sRhostsRSAAuthentication, SSHCFG_GLOBAL }, 
     
    828861                        *intptr = value; 
    829862                break; 
    830863 
     864#ifdef SECURID 
     865        case sSecurIDAuthentication: 
     866                intptr = &options->securid_authentication; 
     867                goto parse_flag; 
     868 
     869        case sSecurIDFallBack: 
     870                intptr = &options->securid_fallback; 
     871                goto parse_flag; 
     872 
     873        case sAllowNonSecurID: 
     874                intptr = &options->allow_nonsecurid; 
     875                goto parse_flag; 
     876 
     877        case sNegateSecurIDUsers: 
     878                intptr = &options->negate_securid_users; 
     879                goto parse_flag; 
     880 
     881        case sSecurIDUsersFile: 
     882                charptr = &options->securid_usersfile; 
     883                goto parse_filename; 
     884 
     885        case sSecurIDIgnoreShell: 
     886                intptr = &options->securid_ignore_shell; 
     887                goto parse_flag; 
     888#endif 
    831889        case sIgnoreUserKnownHosts: 
    832890                intptr = &options->ignore_user_known_hosts; 
    833891                goto parse_flag; 
  • openssh-4.4p1/servconf.h

    old new  
    8888                                                 * authenticated with Kerberos. */ 
    8989        int     gss_authentication;     /* If true, permit GSSAPI authentication */ 
    9090        int     gss_cleanup_creds;      /* If true, destroy cred cache on logout */ 
     91#ifdef SECURID 
     92        int     securid_authentication; /* If set, use securid */ 
     93        int     securid_fallback;       /* If set, allow normal passwords 
     94                                           is master/slave are not accessible */ 
     95        int     allow_nonsecurid;       /* If set, allow nonsecurid users 
     96                                           logins via other means (e.g. PAM) */ 
     97        int     negate_securid_users;   /* If set, securid_usersfile is used 
     98                                           to determine who _doesn't_ get 
     99                                           authed via SecurID */ 
     100        char   *securid_usersfile;      /* If set, only users in the file 
     101                                           will authenticate via SecurID 
     102                                           The shell need not be .../sdshell */ 
     103        int     securid_ignore_shell;   /* If true, use the shell in /etc/passwd 
     104                                           instead of the shell proposed by 
     105                                           the ACE server. */ 
     106#endif 
    91107        int     password_authentication;        /* If true, permit password 
    92108                                                 * authentication. */ 
    93109        int     kbd_interactive_authentication; /* If true, permit */ 
  • openssh-4.4p1/sshd_config.0

    old new  
    5252             curity unless users are also denied shell access, as they can al- 
    5353             ways install their own forwarders. 
    5454 
     55     AllowNonSecurID 
     56             This will allow users that do not meet the SecurID login activa- 
     57             tion requirements (not in the SecurIDUsersFile or do not have a 
     58             shell ending with sdshell, if the SecurIDUsersFile option is used 
     59             or is omitted, respectively) to still log in using another 
     60             authentication method (e.g. PAM or passwd.) 
     61 
    5562     AllowUsers 
    5663             This keyword can be followed by a list of user name patterns, 
    5764             separated by spaces.  If specified, login is allowed only for us- 
     
    315322             creases linearly and all connection attempts are refused if the 
    316323             number of unauthenticated connections reaches ``full'' (60). 
    317324 
     325     NegateSecurIDUsers 
     326             Negates the meaning of the SecurIDUsers file.  Users in this file 
     327             will not require SecurID auth, but all others will.  The 
     328             default is ``no''. 
     329 
    318330     PasswordAuthentication 
    319331             Specifies whether password authentication is allowed.  The de- 
    320332             fault is ``yes''. 
     
    409421             fault is ``yes''.  This option applies to protocol version 1 on- 
    410422             ly. 
    411423 
     424     SecurIDAuthentication 
     425             Specifies whether SecurID authentication is allowed.  The default 
     426             is ``yes''.  SecurID authentication is enabled in both PAM and 
     427             PasswordAuthentication modes. 
     428 
     429             NOTES:  After you enter your SecurID passcode, SecurID may choose 
     430             to ask for the next code on your token.  To handle this event 
     431             without modifying the SSH client, the actual information that 
     432             sshd is asking for is passed in the debugging messages.  If your 
     433             login attempts fail, try sshing with -v and you can see if it is 
     434             asking for your passcode or for the next token. 
     435 
     436     SecurIDFallBack 
     437             Specifies whether SecurID user logins will fallback to their 
     438             to an underlying form (PAM/PaswordAuthentication) if the SecurID 
     439             server is unavailable or the machine is not configured correctly. 
     440 
     441     SecurIDIgnoreShell 
     442             Specifies whether sshd will respect the ACE server's propsed user 
     443             shell.  The default is ``no''.  If yes, then the shell in 
     444             /etc/passwd will be used instead, eliminating the need for a 
     445             /path/to/ace/prog/sdshell style shell.  This option only makes 
     446             sense when using the SecurIDUsersFile option. 
     447 
     448             NOTES: If the SecurIDIgnoreShell option is set to ``yes'', then the 
     449             shell in /etc/passwd will be used in place of the shell proposed 
     450             by the ACE server -- allowing a user to have different shells on 
     451             different machines.  In conjunction with SecurIDIgnoreShell, this 
     452             can force sshd to use SecurID while other system authentications 
     453             use alternative methods without the complication of having sdshell 
     454             as the user's default shell. 
     455 
     456     SecurIDUsersFile 
     457             The argument a filename that contains usernames that are to be 
     458             authenticated via SecurID.  By default this option is unset and 
     459             users will only be authenticated if their shell ends with sdshell 
     460 
    412461     ServerKeyBits 
    413462             Defines the number of bits in the ephemeral protocol version 1 
    414463             server key.  The minimum value is 512, and the default is 768. 
  • openssh-4.4p1/sshd_config.5

    old new  
    116116in 
    117117.Xr ssh_config 5 
    118118for more information on patterns. 
     119.It Cm AllowNonSecurID 
     120This will allow users that do not meet the SecurID login  
     121activation requirements (not in the SecurIDUsersFile or do not  
     122have a shell ending with sdshell, if the SecurIDUsersFile option 
     123is used or is omitted, respectively) to still log in using another 
     124authentication method (e.g. PAM or passwd.) 
     125.Pp 
    119126.It Cm AllowTcpForwarding 
    120127Specifies whether TCP forwarding is permitted. 
    121128The default is 
     
    551558are refused if the number of unauthenticated connections reaches 
    552559.Dq full 
    553560(60). 
     561.It Cm NegateSecurIDUsers 
     562Negates the meaning of the SecurIDUsers file.  Users in this file 
     563will not require SecurID auth, but all others will. 
     564The default is 
     565.Dq no . 
    554566.It Cm PasswordAuthentication 
    555567Specifies whether password authentication is allowed. 
    556568The default is 
     
    714726The default is 
    715727.Dq yes . 
    716728This option applies to protocol version 1 only. 
     729.It Cm SecurIDAuthentication 
     730Specifies whether SecurID authentication is allowed.  The default 
     731is ``yes''.  SecurID authentication si enabled in both PAM and 
     732PasswordAuthentication modes. 
     733.Dq yes . 
     734NOTES: After you enter your SecurID passcode, SecurID may choose 
     735to ask for the next code on your token.  To handle this event 
     736without modifying the SSH client, the actual information that 
     737sshd is asing for is passed in the debugging messages.  If your 
     738login attempts fail, try sshing with -v and you can see if it is 
     739asking for your passcode or for the next token. 
     740.It Cm SecurIDFallBack 
     741Specifies whether SecurID user logins will fallback to their 
     742to an underlying form (PAM/PaswordAuthentication) is the SecurID 
     743server is unavailable or the machine is not configured correctly. 
     744.It Cm SecurIDIgnoreShell 
     745Specifies whether sshd will respect the ACE server's propsed user 
     746shell.  The default is ``no''.  If yes, then the shell in 
     747/etc/passwd will be used instead, eliminating the need for a 
     748/path/to/ace/prog/sdshell style shell.  This option only makes 
     749sense when using the SecurIDUsersFile option. 
     750.Dq no . 
     751NOTES: If the SecurIDIgnoreShell option is set to ``yes'', then the        
     752shell in /etc/passwd will be used in place of the shell proposed 
     753by the ACE server -- allowing a user to have different shells on 
     754different machines.  In conjunction with SecurIDIgnoreShell, this 
     755can force sshd to use SecurID while other system authentications 
     756use alternative methods without the complication of having sdshell 
     757as the user's default shell. 
     758.It Cm SecurIDUsersFile 
     759The argument a filename that contains usernames that are to be 
     760authenticated via SecurID.  By default this option is unset and 
     761users will only be authenticated if their shell ends with sdshell. 
    717762.It Cm ServerKeyBits 
    718763Defines the number of bits in the ephemeral protocol version 1 server key. 
    719764The minimum value is 512, and the default is 768. 
Note: See TracBrowser for help on using the browser.