Fix call to otp_write
[freeradius.git] / doc / README
index 7831b29..4df784e 100644 (file)
@@ -1,12 +1,11 @@
-
 1. INTRO
 
-  All code in this server was written from scratch.
+  All code in this server was written for this project.
 
   The server is mostly compatible with livingston radiusd-2.01
-  (no menus or s/key support though) but with more feautures, such as:
+  (no menus or s/key support though) but with more features, such as:
 
-    o Can limit max. number of simultaneous logins on a per-user basis!
+    o Can limit the maximum number of simultaneous logins on a per-user basis!
     o Multiple DEFAULT entries, that can optionally fall-through.
     o In fact, every entry can fall-through
     o Deny/permit access based on huntgroup users dials into
       username pattern (Puser or user.ppp is PPP, plain "user" is rlogin etc).
     o Can execute an external program when user has authenticated (for example
       to run a sendmail queue).
-    o Can use `$INCLUDE filename' in users and dictionary files
+    o Can use `$INCLUDE filename' in radiusd.conf, users, and dictionary files
     o Can act as a proxy server, relaying requests to a remote server
     o Supports Vendor-Specific attributes
+    o Supports many different plug-in modules for authentication,
+      authorization, and accounting.
     o No good documentation at all, just like the original radiusd 1.16!
 
   Work on real manual pages is progressing slowly. For a large part you
   it will result in Prefix and Suffix probably not working in the "users"
   file if you already stripped them off in the "hints" file.
 
-  The documentation of the Livingston server is available on the web at:
-  <URL: http://www.livingston.com/Tech/Docs/RADIUS/guide/>
-
-  Extra command line flags:
-  o -y: log all login attempts in /var/log/radius.log, include (wrong)
-        password for failed logins.
-  o -z: log the password of successful logins, too (STRONGLY discouraged).
-
-2. COMPILE
-
-  Ignore this section (2) if you have a pre-installed binary package.
-
-  Radiusd now has autoconf support. This means you have to run
-  ./configure --flags, then run make. You can set the following flags:
-
-  --prefix=            Prefix to install (default: /usr/local)
-  --localstatedir=     Base prefix for the logfiles. Defaults
-                       to ${prefix}/var
-  --with-logdir=DIR    Directory for radutmp, radwtmp and radius.log.
-                       Defaults to ${localstatedir}/log
-  --with-radacctdir=DIR        Directory for the detail files. Defaults to
-                       ${logdir}/radacct
-  --sysconfdir         Base prefix for the raddb directory. Defaults to
-                       ${prefix}/etc
-  --with-raddbdir=DIR  Configuration files. Defaults to ${sysconfdir}/raddb
-  --with-dict-nocase   Make dictionary case-independant
-  --without-ascend-binary
-                       Turn off support for Ascend binary filter attributes.
-
-  To get the defaults that Cistron Radius used up to 1.5.4.3-beta18, use:
-
-       ./configure --localstatedir=/var --sysconfdir=/etc
-
-  That means binaries will get installed in /usr/local/{bin,sbin},
-  manpages in /usr/local/man, configuration files in /etc/raddb,
-  and logfiles in /var/log and /var/log/radacct.
-
-  Now type "make". The binaries will be compiled.
-
-  Then you do a "make install". That will install the binaries, the 'man'
-  pages, and MAY install the configuration files.  If you have not
-  installed a RADIUS server before, then the configuration files for
-  FreeRADIUS will be installed.  If you already have a RADIUS server
-  installed, then FreeRADIUS WILL NOT over-write your current
-  configuration.  It will warn you about the files it could not install.
+2. INSTALLATION
 
-  o Copy the examples in raddb to /etc/raddb and edit+rename the sample files.
-  o If you have a Debian system, you might want to install rc.radiusd
-    as /etc/init.d/radiusd and install startup symlinks with
-    "update-rc.d radiusd defaults".
-  o Start radiusd (using /etc/init.d/radiusd start if applicable).
+   See the INSTALL file, in the parent directory.
 
 3. CONFIGURATION FILES
 
   For every file there is a fully commented example file included, that
-  explains what is does and how to use it. Read those sample files too!
+  explains what is does, and how to use it. Read those sample files too!
+
+  Again, many of the configuration files are ONLY documented in the
+  comments included in the files.  Reading the configuration files is
+  REQUIRED to fully understand how to create complex configurations of
+  the server.
 
 3a. CLIENTS
 
   With the original RADIUS server, every user had to be defined in this
   file. There could be one default entry, where you could for example
   define that a user not in the radius file would be checked agains the
-  UNIX password file and on succesfull login would get a PPP connection.
+  UNIX password file and on successful login would get a PPP connection.
 
   In the new style file, you can define multiple DEFAULT entries. All
   entries are processed in the order as they appear in the users file.
   ----                 ----            ------
   Simultaneous-Use     integer         Max. number of concurrent logins
   Fall-Through         integer         Yes/No
-  Exec-Program         string          program to execute after authentication
-  Exec-Program-Wait    string          ditto, but wait for program to finish
-                                       before sending back auth. reply
   Login-Time           string          Defines when user may login.
-
-  Exec-Program can take arguments. You can use macros in the arguments:
-
-  Taken from the original request:
-    %p   Port number
-    %n   NAS IP address
-    %u   User name
-    %a   Protocol (SLIP/PPP)
-    %s   Speed (connect string - eg "28800/V42.BIS")
-    %i   Calling Station ID
-
-  Taken from the reply as defined thusfar:
-    %f   Framed IP address
-    %c   Callback-Number
-    %t   MTU
-
-  For example, use the following entry for someone who has BSMTP (queued
-  SMTP) service. "brunq" is the program that runs the SMTP queue.
-
-  robert       Service-Type = Framed-User
-               Exec-Program = "/usr/local/sbin/brunq -h %f delta",
-               Fall-Through = 1
-
-  The output from Exec-Program-Wait is parsed by the radius server. If
-  it looks like Attribute/Value pairs, they are decoded and added to the
-  reply sent to the NAS. This way, you can for example set Session-Timeout.
-
-  For backwards compatibility, if the output doesn't look like valid
-  radius A/V pairs, the output is taken as a message and added to the
-  reply sent to the NAS as Port-Message.
-
-  If Exec-Program-Wait returns a non-zero exit status, access will be
-  denied to the user. With a zero-exit status, access is granted.
+  Current-Time         string          Allows you to perform time-based
+                                       checks when a request is received.
 
   Login-Time defines the time span a user may login to the system. The
   format of a so-called time string is like the format used by UUCP.
   <URL: http://www.freeradius.org/>
 
   There are two GNU Mailman mailing lists hosted by Cistron Internet Services:
-  one freeradius-devel list and one freeradius-users list.  The devel list
-  is mainly meant for developers of FreeRadius.
-  To subscribe to either list, visit <URL: http://lists.cistron.nl/>
-  body to freeradius-devel-request@info.cistron.nl.
-  You can browse the archive of this mailing list at
-  <URL: http://info.cistron.nl/archives/freeradius-devel/>
+  a 'users' list, at:
+
+       http://lists.freeradius.org/pipermail/freeradius-users/
+
+  and a 'developers only' list, at
+
+       http://lists.freeradius.org/pipermail/freeradius-devel/
+
+6.  OTHER INFORMATION
+
+  The files in other directories are:
+
+  debian/      Files to build a "freeradius" Debian Linux package.
+
+  dialup_admin/        A PHP web front-end to manage an SQL database associated
+               with the server.
+
+  doc/         Various snippets of documentation
+  doc/rfc/     Copies of the RFC's.  If you have Perl, do a 'make' in
+               that directory, and look at the HTML output.
+
+  libltdl/     Libtool platform independent library system.
+
+  man/         Unix Manual pages for the server, configuration files,
+               and associated utilities.
+
+  mibs/                SNMP Mibs for the server.
+
+  raddb/       Sample configuration files for the server.
+
+  redhat/      Additional files for a RedHat Linux system.
+
+  scripts/     Sample scripts for startup and maintenance.
+
+  src/         Source code
+  src/main     source code for the daemon and associated utilities
+  src/lib      source code for the RADIUS library
+  src/include  header files
+  src/modules  dynamic plug-in modules
+
+  src/billing  Some scripts and configuration files to assist in billing,
+               Currently mostly VoIP related.
+
+  suse/                Aditional files for a SuSE (UnitedLinux) system.
+
+  todo/                TODO list and assorted files.
+
+
+  If you have ANY problems, concerns, or surprises when running the
+server, then run it in debugging mode, as root, from the command line:
+
+$ radiusd -X
 
-  There are a few other mailing lists that might offer some help:
+It will produce a large number of messages.  The answers to many
+questions, and the solution to many problems, can usually be found in
+these messages.
 
-  There is a linux-radius list run by miguel a.l. paraz <map@iphil.net>.
-  See <URL: http://www.iphil.net/~map/radius/> for details.
+  For further details, see:
 
-  Then ofcourse for general RADIUS questions, especially if you are using
-  Livingston  / Lucent RABU equipment, there is the portmaster-radius mailing
-  list. Send mail to portmaster-radius-request@livingston.com to find
-  out how to subscribe.
+  http://www.freeradius.org/faq/
 
+  and the 'bugs' file, in this directory.
 
 $Date$
-Miquel van Smoorenburg <miquels@cistron.nl>  21-Aug-1999