From: Alan T. DeKok Date: Thu, 22 Aug 2019 14:54:51 +0000 (-0400) Subject: add an "all module" list X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8edaae8811fee13751b4331e87be238e44ff245a;p=thirdparty%2Ffreeradius-server.git add an "all module" list and a script to generate it. --- diff --git a/doc/all.mk b/doc/all.mk index 71c091e085d..b66366f97aa 100644 --- a/doc/all.mk +++ b/doc/all.mk @@ -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 # diff --git a/doc/antora/modules/raddb/nav.adoc b/doc/antora/modules/raddb/nav.adoc index 1740ab38133..9cfcf4b243b 100644 --- a/doc/antora/modules/raddb/nav.adoc +++ b/doc/antora/modules/raddb/nav.adoc @@ -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 index 00000000000..b8d272af9b4 --- /dev/null +++ b/doc/antora/modules/raddb/pages/mods-available/all_modules.adoc @@ -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. +|===== + diff --git a/doc/antora/modules/raddb/pages/mods-available/index.adoc b/doc/antora/modules/raddb/pages/mods-available/index.adoc index e1725171d87..49df765d320 100644 --- a/doc/antora/modules/raddb/pages/mods-available/index.adoc +++ b/doc/antora/modules/raddb/pages/mods-available/index.adoc @@ -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 - -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <> -* <>