⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intro.texi

📁 gnu 的radius服务器很好用的
💻 TEXI
字号:
@c This is part of the GNU Radius manual.@c Copyright (C) 2003 Free Software Foundation@c See file radius.texi for copying conditions.@comment *******************************************************************@node Intro, Naming Conventions, Top, Top@unnumbered Introduction to RadiusGNU Radius is a software package that provides authentication andaccounting services.  The acronym @RADIUS{} stands for @dfn{RemoteAuthentication Dial In User Service} and (in that form) usually denotes theunderlying protocol name.Historically, @RADIUS{} servers were used as a means to authenticate the usercoming from a dial-in connection, but GNU Radius is much more than anauthentication system: it is an advanced, customizable, and extensible systemfor controlling access to the network.GNU Radius has several built-in authentication and accounting methods.When these methods are not enough, it allows the administrator to implementany new method she deems convenient. The GNU Radius package includes the server program,@radiusd{}, which responds to authentication and accounting requests,and a set of accompanying programs designed to monitor the activity ofthe server and analyze the information it provides.@menu* Overview::@end menu@comment *******************************************************************@node Overview@section OverviewTo illustrate what GNU Radius does, let's consider an imaginary internetservice provider.  Our provider has two @dfn{network access servers}(@NAS{}es for short)---i.e., two pieces of equipment which directly acceptusers' connections---and a core router that connects the ISP's internalnetwork with the Internet backbone.When a user connects to a @NAS{}, the server must verify that theuser is actually registered and that the credentials she hassupplied are correct.  This first step is called@dfn{authentication}.Upon authenticating the user, the @NAS{} must determine which servicesthe user is permitted to use and to what extent the user may usethem.  This second step is called @dfn{authorization}.When the first two stages have been successfully completed, the @NAS{}takes the third step and establishes the connection between the userand the main server.  This connection is called a @dfn{user session}.For the purposes of @dfn{accounting}, the @NAS{} remembers the exacttime of the start of the session.  When the session is terminated, theduration of the session and the number of bytes transferred arerecorded as well.All three tasks can be accomplished by the use of user and accountingdatabases on each terminal server.  However, this is not convenient,and it is error-prone in that the maintenance of separate databases forthe same users is not a trivial task.  What is worse, as the number ofterminal servers grows, this maintenance problembecomes more difficult.@subheading How Does @RADIUS{} Perform These Tasks?@RADIUS{} allows an administrator to keep authentication andaccounting data in a single place, no matter how many network accessservers are actually present.  Using @RADIUS{}, @NAS{}es insteadcommunicate with this central server to perform authentication andaccounting, thus easing the burden on the system administrator.Let's return to our imaginary ISP.  Suppose it runs a @RADIUS{} daemonon its central server.  Each @NAS{} runs @dfn{client software} tocommunicate with the @RADIUS{} server by sending @dfn{radius packets}.@c @image{isp} An average user session life cycle looks as follows.A user connects to the nearest @NAS{} and supplies his login andpassword.  The @NAS{} forms an authentication request and sends it tothe @RADIUS{} server.@c @image{authreq}The @RADIUS{} server verifies the user's credentials and finds themsufficient.  It then retrieves the user's authorization informationfrom its database, packages it into an @dfn{acknowledgement packet},and then sends it back to the @NAS{}@c @image{authack}The @NAS{} receives the acknowledgement packet and starts the usersession.  The information brought with the packet tells the @NAS{} toestablish a connection between the core router and the user, and toassign the user a certain IP address.  Having established the session,the @NAS{} informs the @RADIUS{} server by sending it an@dfn{accounting start packet}.  The server acknowledges the receipt ofthe accounting packet.@c @image{acctstart}Now suppose that after some time the user decides to break theconnection.  The @NAS{} notices this and terminates the user'ssession.  The @NAS{} then sends an @dfn{accounting stop packet} to the@RADIUS{} server to mark this event.  Again, the server acknowledgesthe receipt of the packet.@c @image{acctstop}@subheading @RADIUS{} Attributes@dfn{Attributes} are means of passing the information between the@NAS{} and the server.  Basically, an attribute is an integer numberthat identifies some piece of information.  A set of @dfn{properties}are associated with each attribute, specifying the way to interpretthe attribute.  The most important property is the @dfn{data type}, whichdeclares the type of data that the attributeidentifies (@dfn{character string}, @dfn{integer number}, @dfn{IPaddress}, or @dfn{raw binary data}).The information to be transmitted with the request is packaged in aset of @dfn{attribute-value pairs} (or @AVP{}s for short).  Such pairsconsist of attribute numbers and the associated data.@subheading @RADIUS{} PacketsThere exist two basic kinds of @RADIUS{} packets: authentication andaccounting packets.  Each of them is subdivided into @dfn{requests} and@dfn{replies}.@dfn{Authentication requests} are sent from the @NAS{} to the@RADIUS{} server and contain the information necessary to check theidentity of the user.  The minimum set of data in such packetsconsists of theuser login name, user password, and @NAS{} IP or identifier.@dfn{Authentication replies} are sent by the @RADIUS{} server andcontain the reply code and a set of additional attributes.  Accordingto theirreply code the authentication replies are subdivided into@dfn{authentication acknowledgements}, @dfn{authentication rejections},and @dfn{authentication challenges}.An authentication acknowledgement packet is sent to the @NAS{} if thecredentials supplied with the authentication request werecorrect.  This kind of packet tells the @NAS{} to establish a normaluser session.  The additional attributes in such packets carrythe @dfn{authorization data}, i.e., they determine which kind ofservice the user is to be provided.An authentication rejection is sent to the @NAS{} if theauthentication hasfailed.  This packet forbids the @NAS{} to provide any service tothe user.  The additional attributes may carry descriptive text to bedisplayed as an explanation to the user for the failure of his request.Finally, an authentication challenge packet is sent to the @NAS{} ifthe supplied credentials did not suffice to establish the authenticityof the user.  This means that the dialog between the @NAS{} and the@RADIUS{} server continues.  As the @RADIUS{} server asks foradditional authentication credentials, the @NAS{} acts as aliaison, passing server requests to the user and sending userreplies back to the server.  Such a dialog ends when the @RADIUS{}server sendseither an acknowledgement packet or a rejection packet.An @dfn{accounting request} is sent to the server when the @NAS{}wishes to report some event in the user session: the start of thesession, session termination, etc.  The attributes carry the actualinformation about the event.For each accounting request that has been received and successfullyprocessed, the @RADIUS{} server sends back an @dfn{accountingacknowledgement}.  This packet carries no attributes, but simply informsthe @NAS{} that the information it had sent was received.Occasionally, a @RADIUS{} server may fail to receive incoming requests or mayfail to process them due to high server load.  In order to preventsuch requests from being lost, the @NAS{} retransmits the requestif no response from the server is received within apredefined interval of time (a @dfn{timeout} interval).  Usually the@NAS{} is configured in such a way that it continues retransmittingfailed requests until either it receives a reply from the serveror a predefined number of @dfn{retries} are exhausted, whicheveroccurs first.  Furthermore, a @NAS{} may be configured to communicatewith a setof @dfn{backup} @RADIUS{} servers.  In this case it applies the describedprocess to each server from the set, until one of them responds orthe set is exhausted.

⌨️ 快捷键说明

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