home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / dcom / sys / cisco / 1087 < prev    next >
Encoding:
Text File  |  1992-08-12  |  3.8 KB  |  123 lines

  1. Newsgroups: comp.dcom.sys.cisco
  2. Path: sparky!uunet!boulder!recnews
  3. From: evan@is.rice.edu (Evan R. Wetstone)
  4. Subject: Re: Tacacs-server authenticate slip
  5. In-Reply-To: <9208121844.AA06910@is.rice.edu>; from "Andy Hooper" at Aug 12, 92 2:35 pm
  6. Message-ID: <9208121940.AA07619@is.rice.edu>
  7. Sender: news@colorado.edu
  8. Date: 12 Aug 92 14:40:44 CDT
  9. X-Mailer: ELM [version 2.3 PL11]
  10. Lines: 111
  11.  
  12. Andy Hooper writes:
  13. > >Has anyone gotten the command "tacacs-server authenticate slip" to work?
  14. > What a coincidence! I also was trying that just yesterday. Are you using
  15. > 'slip address dynamic' or 'slip address nn.nn.nn.nn'? My conclusion from
  16. > reading the manual was that tacacs authentication for slip only applies
  17. > when you have 'slip address dynamic' (top of page 7-6). In that case the
  18. > tacacs userid seems to be the IP address. In our case (non-dynamic), the
  19. > userid in the tacacs log was some mangled string ' user operto '.
  20.  
  21.  
  22.  
  23.  
  24. I'm using "slip address nn.nn.nn.nn".  
  25.  
  26. The manual says (under slip address dynamic) "This feature is supported
  27. when a TACACS server is used." (bottom of page 7-5)  I interpret that as
  28. meaning that the dynamic address feature will only work if you run a
  29. tacacs server.
  30.  
  31. The "tacacs-server authenticate slip" command (page 4-26) doesn't say 
  32. anything at all regarding which method of SLIP addressing you are 
  33. using.
  34.  
  35.  
  36. I don't want to assign each SLIP user their own IP address, which I would
  37. have to do if I used slip address dynamic.
  38.  
  39. Regarding your problem with the userid field getting mangled, I found
  40. some problems with the code that caused some pointers to off by two
  41. bytes.  Context diff output follows:
  42.  
  43.  
  44.  
  45. *** xtacacsd.c.orig     Fri Aug  7 11:29:58 1992
  46. --- xtacacsd.c  Fri Aug  7 15:01:17 1992
  47. ***************
  48. *** 740,748 ****
  49.   #endif /* not SYSV */
  50.  
  51.       sprintf(linename, "TTY%o", tp->lport);
  52. !     strncpy(name, (char *)(tp + 1), tp->namelen);
  53.       name[tp->namelen] = '\0';
  54. !     strncpy(passwd, (char *)(tp + 1) + tp->namelen, tp->pwlen);
  55.       if (tp->pwlen > PASSWD_LENGTH)
  56.         tp->pwlen = PASSWD_LENGTH;
  57.       passwd[tp->pwlen] = '\0';
  58. --- 740,748 ----
  59.   #endif /* not SYSV */
  60.  
  61.       sprintf(linename, "TTY%o", tp->lport);
  62. !     strncpy(name, ((char *)tp)+XTACACSSIZE, tp->namelen);
  63.       name[tp->namelen] = '\0';
  64. !     strncpy(passwd, ((char *)tp)+XTACACSSIZE + tp->namelen, tp->pwlen);
  65.       if (tp->pwlen > PASSWD_LENGTH)
  66.         tp->pwlen = PASSWD_LENGTH;
  67.       passwd[tp->pwlen] = '\0';
  68. ***************
  69. *** 859,865 ****
  70.   {
  71.       struct hostent *hp1;
  72.       char linename[20];
  73. !     char *name = (char *) (tp + 1);
  74.  
  75.       name[tp->namelen] = 0;
  76.  
  77. --- 859,865 ----
  78.   {
  79.       struct hostent *hp1;
  80.       char linename[20];
  81. !     char *name = ((char *)tp) + XTACACSSIZE;
  82.  
  83.       name[tp->namelen] = 0;
  84.  
  85. ***************
  86. *** 892,897 ****
  87. --- 892,900 ----
  88.       struct hostent *hp1;
  89.       char linename[20];
  90.       char *name;
  91. +
  92. +     name = (char *) (((char *)tp)+XTACACSSIZE);
  93. +     name[tp->namelen] = 0;
  94.  
  95.       hp1 = gethostbyaddr(&tp->dhost, sizeof (struct in_addr), AF_INET);
  96.  
  97. ***************
  98. *** 905,911 ****
  99.       sprintf(linename, "SLIP%o", tp->lport);
  100.       wtmp_entry(linename, "",  hp1 ? hp1->h_name : (char *)inet_ntoa(tp->dhost)
  101. );
  102.       name = (char *) (((char *)tp)+XTACACSSIZE);
  103. !     name[tp->namelen] = 0;    if (logging)
  104.       if (logging)
  105.         syslog(LOG_INFO, "xslip off from %s %s for %s(%d) address %s\n",
  106.                hp ? hp->h_name : (char *)inet_ntoa(from.sin_addr), linename,
  107. --- 908,914 ----
  108.       sprintf(linename, "SLIP%o", tp->lport);
  109.       wtmp_entry(linename, "",  hp1 ? hp1->h_name : (char *)inet_ntoa(tp->dhost)
  110. );
  111.       name = (char *) (((char *)tp)+XTACACSSIZE);
  112. !     name[tp->namelen] = 0;
  113.       if (logging)
  114.         syslog(LOG_INFO, "xslip off from %s %s for %s(%d) address %s\n",
  115.                hp ? hp->h_name : (char *)inet_ntoa(from.sin_addr), linename,
  116.  
  117.  
  118.  
  119. -- 
  120. Evan 
  121.