]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add an "all module" list
authorAlan T. DeKok <aland@freeradius.org>
Thu, 22 Aug 2019 14:54:51 +0000 (10:54 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 22 Aug 2019 15:07:12 +0000 (11:07 -0400)
and a script to generate it.

doc/all.mk
doc/antora/modules/raddb/nav.adoc
doc/antora/modules/raddb/pages/mods-available/all_modules.adoc [new file with mode: 0644]
doc/antora/modules/raddb/pages/mods-available/index.adoc

index 71c091e085d82e4f6eeaadc1388299bb9636fa5b..b66366f97aa737c3628c0f331248465516fa0374 100644 (file)
@@ -55,7 +55,7 @@ clean: clean.doc
 #  Our "conf to asciidoc" stuff.
 #
 CONF_FILES := $(filter-out %~,$(wildcard raddb/*conf raddb/mods-available/* raddb/sites-available/* raddb/dictionary))
-BASE_ADOC_FILES := $(wildcard doc/*.adoc doc/*/*.adoc doc/*/*/*.adoc)
+BASE_ADOC_FILES := $(wildcard doc/*.adoc doc/*/*.adoc doc/*/*/*.adoc) doc/raddb/mods-available/all_modules.adoc
 AUTO_ADOC_FILES := $(patsubst raddb/%,doc/raddb/%.adoc,$(CONF_FILES))
 ADOC_FILES     := $(BASE_ADOC_FILES) $(AUTO_ADOC_FILES)
 PDF_FILES := $(patsubst doc/%.adoc,doc/%.pdf,$(ADOC_FILES))
@@ -190,6 +190,11 @@ doc/raddb/%.adoc: raddb/%
        ${Q}perl -pi -e 's/^# ([^ \t])/#  $$1/;s/^([ \t]+)# ([^ \t])/$$1#  $$2/;s/[ \t]+$$//' $^
        ${Q}./scripts/asciidoc/conf2adoc -a ${top_srcdir}/asciidoc -o $@ < $^
 
+README_MODULES := $(wildcard src/modules/rlm_*/README.md)
+doc/raddb/mods-available/all_modules.adoc: $(README_MODULES)
+       @echo ADOC mods-available/all_modules.adoc
+       ${Q}./scripts/asciidoc/mod_readme2adoc $(README_MODULES) > $@
+
 #
 #      Converting *.adoc to *.html
 #
index 1740ab38133ecbedfc416c6db6a901cee22ef913..9cfcf4b243bbfedd7212ad961ce3ee7ad4f1ed09 100644 (file)
@@ -1,7 +1,8 @@
 * xref:index.adoc[Configuration]
 ** xref:format.adoc[Format of the Configuration Files]
 
-** xref:index.adoc[Modules]
+** xref:mods-available/index.adoc[Modules]
+*** xref:mods-available/all_modules.adoc[Module List]
 *** xref:mods-available/abfab_psk_sql.adoc[ADFAB PSK Module]
 *** xref:mods-available/always.adoc[Always Module]
 *** xref:mods-available/attr_filter.adoc[Attr_filter Module]
diff --git a/doc/antora/modules/raddb/pages/mods-available/all_modules.adoc b/doc/antora/modules/raddb/pages/mods-available/all_modules.adoc
new file mode 100644 (file)
index 0000000..b8d272a
--- /dev/null
@@ -0,0 +1,138 @@
+== Authentication Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:chap.adoc[chap] | Performs Challenge Handshake Authentication Protocol (CHAP) authentication, as described by RFC 2865.
+| xref:cram.adoc[cram] | Implements CRAM-MD5 authentication, a challenge response protocol similar to CHAP. CRAM is defined by RFC 2195.
+| xref:digest.adoc[digest]     | The digest module performs HTTP digest authentication, usually for a SIP server. See draft-sterman-aaa-sip-00.txt for
+details. The module does not support RFC 5090.
+| xref:eap.adoc[eap]   | Implements the base protocol for EAP (Extensible Authentication Protocol).
+| xref:krb5.adoc[krb5] | Implements kerberos authentication, using the result of decrypting the TGT as an indication that the provided
+password was correct.
+| xref:ldap.adoc[ldap] | Allows LDAP directory entries to be retrieved, modified, inserted and deleted.
+| xref:mschap.adoc[mschap]     | Supports MS-CHAP and MS-CHAPv2 authentication. It also enforces the SMB-Account-Ctrl attribute.
+| xref:opendirectory.adoc[opendirectory]       | Integrates with an Apple OpenDirectory service on the same host as FreeRADIUS to allow OpenDirectory users to
+authenticate.
+| xref:pam.adoc[pam]   | Performs password checking via the Pluggable Authentication Module (PAM) framework.
+| xref:pap.adoc[pap]   | Accepts a large number of formats for the "known good" (reference) password, such as crypt hashes, md5 hashes,
+and etc. The module takes the User-Password and performs the necessary transformations of the user submitted password
+to match the copy of the password the server has retrieved.
+| xref:securid.adoc[securid]   | Supports authentication against an RSA SecurID ACE instance.
+| xref:sigtran.adoc[sigtran]   | Supports authentication against a Sigtran interface.
+| xref:soh.adoc[soh]   | Implements support for Microsoft's Statement of Health (SoH) protocol, which can run inside of PEAP or DHCP.
+| xref:wimax.adoc[wimax]       | Implements WiMAX authentication over RADIUS.
+| xref:winbind.adoc[winbind]   | The module also allows for direct connection to Samba winbindd (version 4.2.1 or above), which communicates with
+Active-Directory to retrieve group information and the user's NT-Password.
+| xref:yubikey.adoc[yubikey]   | Supports authentication of yubikey tokens where the PSK is known to FreeRADIUS, and integrates with the Yubico
+cloud-based authentication service.
+|=====
+
+== Datastore Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:cache.adoc[cache]       | Stores attributes and/or lists and adds them back to a subsequent request or to the current request on a later execution
+of the module.
+| xref:couchbase.adoc[couchbase]       | Allows attributes to be stored and retrieved from a couchbase server. Client definitions may also be bulk loaded from a
+couchbase server as FreeRADIUS starts.
+| xref:csv.adoc[csv]   | Maps values in a CSV file to FreeRADIUS attributes and adds them to the request.
+| xref:dict.adoc[dict] | Registers xlats and maps to access dictionary data
+| xref:dynamic_clients.adoc[dynamic_clients]   | Reads client definitions from flat files.
+| xref:passwd.adoc[passwd]     | Reads and caches line-oriented files that are in a format similar to ``/etc/passwd``.
+| xref:radutmp.adoc[radutmp]   | Writes a utmp style file that lists the users who are logged in. The file is used mainly for Simultaneous-Use checking
+and by radwho to see who has current sessions.
+| xref:redis.adoc[redis]       | Provides connectivity to single and clustered instances of Redis. This module exposes a string expansion that may be
+used to execute queries against Redis.
+| xref:redis_ippool.adoc[redis_ippool] | Implements a fast and scalable IP allocation system using Redis. Supports both IPv4 and IPv6 address and prefix
+allocation, and implements pre-allocation for use with DHCPv4.
+| xref:redis_who.adoc[redis_who]       | Records which users are currently logged into the service. The file is used mainly for Simultaneous-Use checking to see
+who has current sessions.
+| xref:sql.adoc[sql]   | Provides an abstraction over multiple SQL backends, via database specific drivers.
+| xref:sqlippool.adoc[sqlippool]       | SQL based IP allocation module.
+| xref:unix.adoc[unix] | Retrieves a user's encrypted password from the local system and places it into the ``control:Crypt-Password`` attribute.
+The password is retrieved via the ``getpwent()`` and ``getspwent()`` system calls.
+|=====
+
+== IO Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:detail.adoc[detail]     | Writes attributes from a request list to a flat file in 'detail' format.
+| xref:dhcpv4.adoc[dhcpv4]     | Implements DHCPv4 (Dynamic Host Configuration Protocol for IPv4) client and relay.
+| xref:files.adoc[files]       | Implements a traditional Livingston-style users file.
+| xref:linelog.adoc[linelog]   | Creates log entries from attributes, string expansions, or static strings, and writes them to a variety of backends,
+including syslog, flat files, and raw UDP/TCP sockets.
+| xref:logtee.adoc[logtee]     | Tee's request logging at runtime, sending it to additional log destinations.
+| xref:radius_client.adoc[radius_client]       | Allows Access-Requests, Accounting-Requests, CoA-Requests and Disconnect-Messages to be sent during request processing.
+| xref:rest.adoc[rest] | Sends HTTP requests to remote servers and decodes the responses.
+| xref:unbound.adoc[unbound]   | Performs queries against a DNS service to allow FQDNs to be resolved during request processing.
+|=====
+
+== Language Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:exec.adoc[exec] | Executes an external script, passing in FreeRADIUS attributes as environmental variables or as arguments.
+| xref:lua.adoc[lua]   | Allows the server to call embedded lua scripts.
+| xref:mruby.adoc[mruby]       | Allows the server to call a persistent, embedded mRuby script.
+| xref:perl.adoc[perl] | Allows the server to call a persistent, embedded Perl script.
+| xref:python.adoc[python]     | Allows the server to call a persistent, embedded Python script.
+|=====
+
+== Miscellaneous Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:abfab_psk_sql.adoc[abfab_psk_sql]       | ADFAB PSK
+| xref:cache_eap.adoc[cache_eap]       | Cache EAP
+| xref:cache_tls.adoc[cache_tls]       | Cache TLS Session
+| xref:cipher.adoc[cipher]     | Cipher
+| xref:client.adoc[client]     | Client
+| xref:cui.adoc[cui]   | CUI
+| xref:detail.example.com.adoc[detail.example.com]     | Detail (Sample)
+| xref:detail.log.adoc[detail.log]     | Detail (Log Sample)
+| xref:dhcp_sqlippool.adoc[dhcp_sqlippool]     | DHCP SQL-IP-Pool
+| xref:eap_inner.adoc[eap_inner]       | EAP/Inner
+| xref:echo.adoc[echo] | Echo
+| xref:etc_group.adoc[etc_group]       | etc_group
+| xref:isc_dhcp.adoc[isc_dhcp] | isc_dhcp
+| xref:mac2ip.adoc[mac2ip]     | Mac2IP
+| xref:mac2vlan.adoc[mac2vlan] | Mac2Vlan
+| xref:ntlm_auth.adoc[ntlm_auth]       | NTLM Auth
+| xref:radius.adoc[radius]     | Radius
+| xref:rediswho.adoc[rediswho] | REDISWho
+| xref:smbpasswd.adoc[smbpasswd]       | SMBPasswd
+| xref:sradutmp.adoc[sradutmp] | sRadutmp
+| xref:stats.adoc[stats]       | Stats
+|=====
+
+== Policy Modules
+[options="header"]
+[cols="20%,80%"]
+|=====
+| Module | Description
+| xref:always.adoc[always]     | Returns a pre-configured result code such as 'ok', 'noop', 'reject' etc...
+| xref:attr_filter.adoc[attr_filter]   | Filters attributes in a request. Can delete attributes or permit them to have only certain values.
+| xref:date.adoc[date] | Converts date strings between user configurable formats.
+| xref:delay.adoc[delay]       | Introduces an artificial non-blocking delay when processing a request.
+| xref:escape.adoc[escape]     | Escapes and unescapes strings using the MIME escape format
+| xref:example.adoc[example]   | An example module to use as a template when writing new modules.
+An example module to use as a template when writing new modules.
+| xref:expiration.adoc[expiration]     | Determines whether a user account has expired, with the expiration time set by another module.
+| xref:expr.adoc[expr] | Registers a string expansion "%{expr:}" that allows basic arithmetic and binary operations.
+| xref:idn.adoc[idn]   | Converts internationalized domain names to ASCII.
+| xref:json.adoc[json] | Parses JSON strings into an in memory format using the json-c library.
+| xref:logintime.adoc[logintime]       | Enforces the time span during which a user may login to the system.
+| xref:sometimes.adoc[sometimes]       | Is a hashing and distribution protocol, that will sometimes return one code or another depending on the input value
+configured.
+| xref:sqlcounter.adoc[sqlcounter]     | Records statistics for users such as data transfer and session time, and prevent further logins when limits are reached.
+| xref:test.adoc[test] | Contains test stubs for CIT and the ``make test`` build target.
+| xref:unpack.adoc[unpack]     | Unpacks binary data from octets type attributes into individual attributes.
+| xref:utf8.adoc[utf8] | Checks all attributes of type string in the current request, to ensure that they only contain valid UTF8 sequences.
+|=====
+
index e1725171d874a533370df01a1a10f9fce1f24875..49df765d32012342ccb64c86749b755ccebc32c0 100644 (file)
@@ -1,9 +1,33 @@
 = Modules in Version 4
 
-As of Version 3, all of the modules have been places in the
-`mods-available/` directory. This practice follows that used by other
-servers such as Nginx, Apache, etc. The `modules` directory should not
-be used.
+The server includes a number of "plug-in" modules which perform a
+variety of actions.  A full and annotated
+xref:mods-available/all_modules.adoc[module list] available on a
+separate page.
+
+Modules are divided up into a few categories:
+
+Authentication xref:mods-available/all_modules.adoc#_authentication_modules[list]::
+Modules which implement authentication protocols such as PAP, CHAP, MS-CHAP, EAP, etc.
+
+Datastore xref:mods-available/all_modules.adoc#_datastore_modules[list]::
+Modules which connect to external data stores such as SQL, LDAP, etc.
+
+IO xref:mods-available/all_modules.adoc#_io_modules[list]::
+Modules which write to disk, external log systems, etc.
+
+Language xref:mods-available/all_modules.adoc#_language_modules[list]::
+Modules which encapsulate a scripting language into the server such as
+Perl, Python, Lua, etc.
+
+Miscelleanous xref:mods-available/all_modules.adoc#_miscellaneous_modules[list]::
+Modules which do not belong elsewhere.
+
+Policy xref:mods-available/all_modules.adoc#_policy_modules[list]::
+Modules which implement policies to filter or enforce packets.
+
+
+== Enabling a Module
 
 Modules are enabled by creating a file in the mods-enabled/ directory.
 You can also create a soft-link from one directory to another:
@@ -44,19 +68,20 @@ server {
 }
 ```
 
-This says `require the LDAP module, but use the SQL module only if it
-is configured.`
+This configuration means that the server will _require the LDAP
+module, but use the SQL module only if it is configured._
 
 This feature is not very useful for production configurations. It is,
-however, very useful for the default examples that ship with the server.
+however, very useful for the default examples that ship with the
+server.
 
 == Ignoring module
 
 If you see this message::
 
-```
+---
 Ignoring module (see mods-available/README.adoc)
-```
+---
 
 Then you are in the right place. Most of the time this message can be
 ignored. The message can be fixed by find the references to `-module`
@@ -78,75 +103,3 @@ described above.
 Once the module is enabled, it will automatically be used in the default
 configuration.
 
-== List of available modules
-
-* <<abfab_psk_sql.adoc#,abfab_psk_sql>>
-* <<always.adoc#,always>>
-* <<attr_filter.adoc#,attr_filter>>
-* <<cache.adoc#,cache>>
-* <<cache_eap.adoc#,cache_eap>>
-* <<cache_tls.adoc#,cache_tls>>
-* <<chap.adoc#,chap>>
-* <<cipher.adoc#,cipher>>
-* <<client.adoc#,client>>
-* <<couchbase.adoc#,couchbase>>
-* <<csv.adoc#,csv>>
-* <<cui.adoc#,cui>>
-* <<date.adoc#,date>>
-* <<delay.adoc#,delay>>
-* <<detail.adoc#,detail>>
-* <<detail.example.com.adoc#,detail example com>>
-* <<detail.log.adoc#,detail log>>
-* <<dhcp_sqlippool.adoc#,dhcp_sqlippool>>
-* <<dhcpv4.adoc#,dhcpv4>>
-* <<digest.adoc#,digest>>
-* <<eap.adoc#,eap>>
-* <<eap_inner.adoc#,eap_inner>>
-* <<echo.adoc#,echo>>
-* <<escape.adoc#,escape>>
-* <<etc_group.adoc#,etc_group>>
-* <<exec.adoc#,exec>>
-* <<expiration.adoc#,expiration>>
-* <<expr.adoc#,expr>>
-* <<files.adoc#,files>>
-* <<idn.adoc#,idn>>
-* <<isc_dhcp.adoc#,isc_dhcp>>
-* <<json.adoc#,json>>
-* <<krb5.adoc#,krb5>>
-* <<ldap.adoc#,ldap>>
-* <<linelog.adoc#,linelog>>
-* <<logintime.adoc#,logintime>>
-* <<logtee.adoc#,logtee>>
-* <<lua.adoc#,lua>>
-* <<mac2ip.adoc#,mac2ip>>
-* <<mac2vlan.adoc#,mac2vlan>>
-* <<mruby.adoc#,mruby>>
-* <<mschap.adoc#,mschap>>
-* <<ntlm_auth.adoc#,ntlm_auth>>
-* <<opendirectory.adoc#,opendirectory>>
-* <<pam.adoc#,pam>>
-* <<pap.adoc#,pap>>
-* <<passwd.adoc#,passwd>>
-* <<perl.adoc#,perl>>
-* <<python.adoc#,python>>
-* <<radius.adoc#,radius>>
-* <<radutmp.adoc#,radutmp>>
-* <<redis.adoc#,redis>>
-* <<redis_ippool.adoc#,redis_ippool>>
-* <<rediswho.adoc#,rediswho>>
-* <<rest.adoc#,rest>>
-* <<smbpasswd.adoc#,smbpasswd>>
-* <<soh.adoc#,soh>>
-* <<sometimes.adoc#,sometimes>>
-* <<sql.adoc#,sql>>
-* <<sqlcounter.adoc#,sqlcounter>>
-* <<sqlippool.adoc#,sqlippool>>
-* <<sradutmp.adoc#,sradutmp>>
-* <<stats.adoc#,stats>>
-* <<unbound.adoc#,unbound>>
-* <<unix.adoc#,unix>>
-* <<unpack.adoc#,unpack>>
-* <<utf8.adoc#,utf8>>
-* <<wimax.adoc#,wimax>>
-* <<winbind.adoc#,winbind>>
-* <<yubikey.adoc#,yubikey>>