rfc1492.txt

来自「中、英文RFC文档大全打包下载完全版 .」· 文本 代码 · 共 1,179 行 · 第 1/3 页

TXT
1,179
字号
RFC 1492                         TACACS                        July 1993   While different server implementations will result in different   messages, the following are suggested:           201 accepted: # # #           202 accepted, password is expiring: # # #           401 no response; retry           501 invalid format           502 access denied   The ": # # #" in the first two messages is the suggested way of   returning the three result codes for LOGIN and CONNECT requests.3.3 What a Client Does   The client opens a TCP connection to the locally-configured address   and port.  It sends the request by sending:           - the character "1"           - one or more <SPACE> or <TAB> characters           - the request type as an ASCII string           - if an AUTH, send one or more <SPACE> or <TAB> characters             and the authentication style           - if a CONNECT, SLIPON, or SLIPOFF, send one or more <SPACE>             or <TAB> characters and the IP address in dotted decimal             notation           - if a CONNECT, send one or more <SPACE> or <TAB> characters             and the port number in decimal           - a <CR>/<LF>           - the username (or hostname for SLIPADDR)           - a <CR>/<LF>           - the password           - a <CR>/<LF>           - the line           - a <CR>/<LF>   Then read one line from the connection and close the connection.   This encoding lets TCP take care of waiting, retries, and matching up   requests and responses.   Examine the response line and take whatever action you deem correct.3.4 What the Server Does   The server waits on the locally-specified port for requests.  When   one is made, it reads four lines of input.   It examines the first line for a valid version number and request.   It also records any optional parameters.Finseth                                                        [Page 15]RFC 1492                         TACACS                        July 1993   It uses the username, password, and line number along with any other   information it deems fit to determine its response.   It then sends exactly one line of response, terminated by a   <CR>/<LF>, and closes the connection.4.0 Pros and Cons   Advantages to using the UDP format:           - lower overhead           - compatible with historical standard           - some existing equipment supports it   Advantages to using the TCP format:           - easier to implement, especially on machines with no or             poor UDP support           - simpler, cleaner syntax           - potentially wider range of error codes, and support for             temporary and negotiated authentication sequences5.0 Security Notes   While the protocol itself has been described, there are a number of   other considerations worth mentioning.   First, the protocol carries the username and password in clear text   in either a single UDP packet or a TCP stream.  As such, if an   attacker is capable of monitoring that data, the attacker could   capture username/password pairs.  Implementations can take several   steps to minimize this danger:   - Use point-to-point links where possible.   - Physically secure the transmission medium.   - If packets must traverse multiple network segments, use a secure   routing subsystem.  This implies:           - Tight control over router configurations.           - Tight control over routing protocols.           - Avoid use of bridges, as they can be silently fooled into             duplicating packets.   Second, this protocol potentially opens up a new way of probing   usernames and passwords.  Thus, implementations may wish to haveFinseth                                                        [Page 16]RFC 1492                         TACACS                        July 1993   servers:           - limit responses to a controlled list of clients,           - throttle the rate of responding to requests,           - log all failures (and possibly successes, too).   Third, this protocol essentially allows clients to offload   accept/reject decisions to servers.  While an obvious implementation   would simply use the server's native login mechanism to make the   determination, there is no reason to limit implementations to that   mechanism. Servers could:           - use alternate lists of accounts (e.g., password files),           - use alternate mechanisms for accessing the accounts (e.g.,             a database, NIS),           - use alternate algorithms (e.g., SecureID cards),           - translate the request to another protocol and use that             protocol to make the determination (e.g., Kerberos).   Fourth, the use of a "fanout" server (described in the next section)   allows for:           - centralized logging of usage for attack analysis           - centralized policy:                   - ability to block selected specific users                   - ability to block selected user names (e.g., don't                     allow "root" or "guest")                   - ability to block poor passwords (e.g., none or weak)6.0 Case Study   This section presents the basic steps used by the implementation at   the University of Minnesota.  Two examples will be used.  The first   is a basic terminal login.  The second is a database access   verification.   Usernames are in one of three forms:           First.M.Last-#@umn.edu           First.M.Last-#           user@host   A name in the first form is converted to one in the second.   A name in the second form is looked up in the University-wide   directory system.  If found, the associated electronic mail address   is treated as if the third form was entered.Finseth                                                        [Page 17]RFC 1492                         TACACS                        July 1993   The third form specifics the name of a computer whose manager has   agreed to perform validations and the name of an account on that   computer.   The system that we use allows for many requesting clients (typically   modem pools).  Further, each client can support multiple distinct   pools of users.  For example, lines 1-20 could be general access, but   lines 21-25 could be 800-numbers with a restricted set of valid   users.  The system supports this distinction by specifying which   validation computers are legal for each modem pool.6.1 Terminal Login   On the Cisco Terminal Server:   - accept a connection   - request a username and password   - pack the request into a UDP TACACS packet and send to the central     fanout   Central Fanout:   - accept a request   - if the request is not in a valid format, return "nope"   - log the request   - if the source IP address is not in a list of valid clients,     status = "nope"   - else if the username contains invalid characters, status = "nope"   - else           if the username is of the form First.M.Last-#@umn.edu,                   convert to First.M.Last-#           if the username is of the form First.M.Last-#,                   look up the name in the directory                   if the name is not found, status = "nope"                   otherwise, use the e-mail address as the username           if the user is on a special "blocked" list, status = "nope"                   and send mail warning that access to a blocked                   account was attempted           split the username into user and host parts           if the host is not on a list of known servers,                   status = "nope"           else if the host is not allowed to validate this type of                   request for this pool, status = "nope"           now format a request for validation of the user and send it           to the specified hostFinseth                                                        [Page 18]RFC 1492                         TACACS                        July 1993           if no response, status = "nope"           otherwise set the status to the returned status   - log what response is going to be returned   - return the response   Validation Host:   This machine can run a "stripped down" version of the central fanout.   It need perform no special validation or logging, with one exception.   - accept a request   - if the request is not in a valid format, return "nope"   - if the request is not from the central fanout, return "nope"   - figure the return status   - return the response6.2 Database Access Verification   In this example, assume that a database is only to be accessed by   faculty and staff.   Mainframe:   - the user is on the mainframe and makes a request   - the program requests username and password   - the program packs the request into a UDP TACACS packet and send to     the central fanout   Central Fanout:   - accept a request   - if the request is not in a valid format, return "nope"   - log the request   - if the source IP address is not in a list of valid clients,     status = "nope"   - else if the username contains invalid characters, status = "nope"   - else           if the username is of the form First.M.Last-#@umn.edu,                   convert to First.M.Last-#           if the username is of the form First.M.Last-#,                   look up the name in the directory                   if the name is not found, status = "nope"                   otherwise, use the e-mail address as the username                      and obtain the staff status from the directory           if the user is on a special "blocked" list, status = "nope"                   and send mail warning that access to a blocked                   account was attemptedFinseth                                                        [Page 19]RFC 1492                         TACACS                        July 1993           split the username into user and host parts           if the host is not on a list of known servers,                   status = "nope"           else if the host is not allowed to validate this type of                   request for this pool, status = "nope"           now format a request for validation of the user and send it           to the specified host           if no response or status is "nope", status = "nope"           else if the user originally gave a user@host mail address,                   do a directory lookup and obtain the staff status           set the status to the staff status   - log what response is going to be returned   - return the response   Note that the validation host is unchanged.References   [RFC821] Postel, J. "Simple Mail Transfer Protocol", STD 10, RFC 821,   USC/Information Sciences Institute, August 1982.   [RFC1340] Reynolds, J. and J. Postel, "Assigned Numbers," STD 2, RFC   1340, USC/Information Sciences Institute, July 1992.   Anderson, Brian; Ruth, Greg; Ditmars, Peter; Eisner, Sharon;   Delsignore, John (1985) TAC Access Control System Protocols, Second   Edition: August 16 1985. BBN Tech Memo CC-0045.   Cisco Systems, Inc. (September 1992) Communications Server   Configuration and Reference.  Menlo Park, California.Finseth                                                        [Page 20]RFC 1492                         TACACS                        July 1993Security Considerations   Security issues are the main topic of this memo.Author's Address   Craig A. Finseth   Networking Services   Computer and Information Services   University of Minnesota   130 Lind Hall   207 Church St SE   Minneapolis MN 55455-0134   Phone: +1 612 624 3375   Fax:   +1 612 626 1002   EMail: Craig.A.Finseth-1@umn.edu, or          fin@unet.umn.eduFinseth                                                        [Page 21]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?