-
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
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.
- 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:
-
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log]
- --with-radacctdir=PATH Directory for detail files [LOGDIR/radacct]
- --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb]
- --with-dict-nocase Make dictionary case-independant (default=yes)
- --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)
- --with-threads Use threads, if available. (default=yes)
- --with-thread-pool Use a pool of threads for high-load systems. (default=no)
- --with-snmp Compile in SNMP support. (default=yes)
- --with-mysql-include-dir=DIR Directory where the MySQL includes may be found
- --with-mysql-lib-dir=DIR Directory where the MySQL libraries may be found
- --with-mysql-dir=DIR Base directory where MySQL is installed
- --disable-ltdl-install Do not install libltdl
- --with-static-modules=QUOTED-MODULE-LIST
- --enable-developer Turns on super-duper-extra-compile-warnings
- when using gcc.
-
- 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.
-
- o Copy the examples in raddb to /etc/raddb and edit+rename the sample files.
- o Start radiusd (using /etc/init.d/radiusd start if applicable).
+2. INSTALLATION
+
+ 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 of course 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$
-orig, Miquel van Smoorenburg <miquels@cistron.nl> 21-Aug-1999