<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://it-arts.net/index.php?action=history&amp;feed=atom&amp;title=FreeRADIUS_-_Requests</id>
	<title>FreeRADIUS - Requests - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://it-arts.net/index.php?action=history&amp;feed=atom&amp;title=FreeRADIUS_-_Requests"/>
	<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=FreeRADIUS_-_Requests&amp;action=history"/>
	<updated>2026-05-02T18:41:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://it-arts.net/index.php?title=FreeRADIUS_-_Requests&amp;diff=892&amp;oldid=prev</id>
		<title>Admin: Text replacement - &quot;Category:Wiki&quot; to &quot;Category:Wiki

&#039;&#039;&#039;&#039;&#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&#039;&#039;&#039;&#039;&#039;
&quot;</title>
		<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=FreeRADIUS_-_Requests&amp;diff=892&amp;oldid=prev"/>
		<updated>2026-01-17T07:07:03Z</updated>

		<summary type="html">&lt;p&gt;Text replacement - &amp;quot;&lt;a href=&quot;/index.php/Category:Wiki&quot; title=&quot;Category:Wiki&quot;&gt;Category:Wiki&lt;/a&gt;&amp;quot; to &amp;quot;&lt;a href=&quot;/index.php/Category:Wiki&quot; title=&quot;Category:Wiki&quot;&gt;Category:Wiki&lt;/a&gt;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; &amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:07, 17 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Wiki]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Wiki]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&#039;&#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&#039;&#039;&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://it-arts.net/index.php?title=FreeRADIUS_-_Requests&amp;diff=566&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;Category:Wiki  == Introduction ==  FreeRADIUS is a widely used open-source RADIUS server that handles requests from network devices such as Wi-Fi access points, VPNs, or network switches. A request is any authentication, authorization, or accounting operation that FreeRADIUS processes. This document provides an in-depth exploration of FreeRADIUS request processing, covering the types of requests, handling mechanisms, and configuration examples.  == Types of Requests...&quot;</title>
		<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=FreeRADIUS_-_Requests&amp;diff=566&amp;oldid=prev"/>
		<updated>2025-12-14T16:10:35Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/Category:Wiki&quot; title=&quot;Category:Wiki&quot;&gt;Category:Wiki&lt;/a&gt;  == Introduction ==  FreeRADIUS is a widely used open-source RADIUS server that handles requests from network devices such as Wi-Fi access points, VPNs, or network switches. A request is any authentication, authorization, or accounting operation that FreeRADIUS processes. This document provides an in-depth exploration of FreeRADIUS request processing, covering the types of requests, handling mechanisms, and configuration examples.  == Types of Requests...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Wiki]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
FreeRADIUS is a widely used open-source RADIUS server that handles requests from network devices such as Wi-Fi access points, VPNs, or network switches. A request is any authentication, authorization, or accounting operation that FreeRADIUS processes. This document provides an in-depth exploration of FreeRADIUS request processing, covering the types of requests, handling mechanisms, and configuration examples.&lt;br /&gt;
&lt;br /&gt;
== Types of Requests ==&lt;br /&gt;
&lt;br /&gt;
FreeRADIUS handles different types of requests based on the authentication method used. These types include:&lt;br /&gt;
&lt;br /&gt;
* **Authentication Requests**: These requests verify the identity of users or devices.&lt;br /&gt;
* **Authorization Requests**: After authentication, these requests determine if the user or device is authorized to access the network.&lt;br /&gt;
* **Accounting Requests**: These requests record data about user or device activity, such as session duration or data usage.&lt;br /&gt;
* **Proxy Requests**: These are forwarded requests to another RADIUS server for processing.&lt;br /&gt;
* **CoA (Change of Authorization) Requests**: These requests are used to change the authorization of an active session.&lt;br /&gt;
&lt;br /&gt;
Each request type follows a specific flow of operations within FreeRADIUS.&lt;br /&gt;
&lt;br /&gt;
== Request Flow ==&lt;br /&gt;
&lt;br /&gt;
When FreeRADIUS receives a request from a client (NAS or network access server), it goes through the following stages:&lt;br /&gt;
&lt;br /&gt;
* **Pre-Authentication**: FreeRADIUS checks if the incoming request should be accepted or rejected before any authentication takes place. This includes checks for known IP addresses, authentication method types, and so on.&lt;br /&gt;
* **Authentication**: FreeRADIUS verifies the identity of the user or device by checking the credentials in the backend (e.g., SQL database, LDAP, etc.).&lt;br /&gt;
* **Authorization**: Once authenticated, FreeRADIUS checks the user’s permissions to determine what services they are allowed to access.&lt;br /&gt;
* **Accounting**: FreeRADIUS logs relevant session information to a backend (e.g., PostgreSQL, MySQL) for billing or session tracking.&lt;br /&gt;
* **Post-Processing**: Additional checks or modifications can be applied to the request after the core processing stages.&lt;br /&gt;
&lt;br /&gt;
Each stage can be customized via FreeRADIUS configuration files.&lt;br /&gt;
&lt;br /&gt;
== Authentication Requests ==&lt;br /&gt;
&lt;br /&gt;
Authentication requests come in the form of a RADIUS Access-Request packet, typically containing the following information:&lt;br /&gt;
&lt;br /&gt;
* **User-Name**: The username of the user trying to authenticate.&lt;br /&gt;
* **User-Password**: The password for the user.&lt;br /&gt;
* **NAS-IP-Address**: The IP address of the NAS device.&lt;br /&gt;
* **NAS-Port**: The port number on the NAS that the request came from.&lt;br /&gt;
&lt;br /&gt;
Example of handling an authentication request:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example of handling an authentication request in the `default` configuration&lt;br /&gt;
authorize {&lt;br /&gt;
    # Check user credentials in the SQL database&lt;br /&gt;
    sql&lt;br /&gt;
    # Additional checks, e.g., check for temporary block&lt;br /&gt;
    files&lt;br /&gt;
}&lt;br /&gt;
authenticate {&lt;br /&gt;
    # Process user authentication with the PAP method&lt;br /&gt;
    pap&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, FreeRADIUS checks the credentials of the user against a SQL database and applies additional checks (e.g., checking files for authorization settings). The authentication method used in this case is PAP (Password Authentication Protocol).&lt;br /&gt;
&lt;br /&gt;
== Authorization Requests ==&lt;br /&gt;
&lt;br /&gt;
Once authentication is successful, FreeRADIUS processes authorization requests, which define what resources the authenticated user can access. Authorization can be enforced by checking the user&amp;#039;s group membership, attributes, or other properties.&lt;br /&gt;
&lt;br /&gt;
Example of handling an authorization request:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example of handling an authorization request in the `default` configuration&lt;br /&gt;
authorize {&lt;br /&gt;
    # Check user attributes from the database&lt;br /&gt;
    sql&lt;br /&gt;
    # Assign VLAN based on group membership&lt;br /&gt;
    files&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, FreeRADIUS checks the SQL database for additional attributes that dictate the level of access (e.g., VLAN assignments). It can also load static files to check predefined rules.&lt;br /&gt;
&lt;br /&gt;
== Accounting Requests ==&lt;br /&gt;
&lt;br /&gt;
Accounting requests track user activity and session information. These requests usually come in the form of Access-Request or Accounting-Request packets that include information such as session start, stop, and interim updates.&lt;br /&gt;
&lt;br /&gt;
Example of handling an accounting request:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example of handling an accounting request in the `default` configuration&lt;br /&gt;
accounting {&lt;br /&gt;
    # Log accounting information to the SQL database&lt;br /&gt;
    sql&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The `sql` module is used to log session information (e.g., session start, session stop, data usage) to a backend database such as PostgreSQL or MySQL. The accounting module ensures that any changes to session states are logged for future reference.&lt;br /&gt;
&lt;br /&gt;
== Proxy Requests ==&lt;br /&gt;
&lt;br /&gt;
Proxy requests are forwarded to another RADIUS server for processing. This can be useful in large-scale systems where one FreeRADIUS server acts as a proxy to another for load balancing or delegation of authentication tasks.&lt;br /&gt;
&lt;br /&gt;
Example of proxy request handling:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example of proxy request handling&lt;br /&gt;
proxy_requests {&lt;br /&gt;
    # Proxy to another FreeRADIUS server&lt;br /&gt;
    realm = &amp;quot;example.com&amp;quot;&lt;br /&gt;
    server = &amp;quot;radius-backend.example.com&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this configuration, FreeRADIUS forwards requests that are destined for `example.com` to another server, `radius-backend.example.com`.&lt;br /&gt;
&lt;br /&gt;
== CoA (Change of Authorization) Requests ==&lt;br /&gt;
&lt;br /&gt;
Change of Authorization (CoA) requests are used to dynamically change the authorization of an existing session. This could include things like changing a user’s IP address, re-assigning a VLAN, or limiting bandwidth.&lt;br /&gt;
&lt;br /&gt;
Example of handling a CoA request:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example CoA handling in `default` configuration&lt;br /&gt;
coa {&lt;br /&gt;
    # Apply changes to user attributes&lt;br /&gt;
    sql&lt;br /&gt;
    # Notify the NAS about changes&lt;br /&gt;
    files&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, FreeRADIUS processes the CoA request by applying changes to user attributes stored in a backend database and notifies the NAS device accordingly.&lt;br /&gt;
&lt;br /&gt;
== Advanced Request Handling Customization ==&lt;br /&gt;
&lt;br /&gt;
FreeRADIUS allows advanced customization of how requests are processed by using modules, policies, and hooks. For example, you can write custom scripts or use external programs to process specific types of requests.&lt;br /&gt;
&lt;br /&gt;
Example of a custom policy script for request processing:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Example of a custom script for processing requests&lt;br /&gt;
post-auth {&lt;br /&gt;
    if (&amp;quot;%{User-Name}&amp;quot; =~ /^specialuser/) {&lt;br /&gt;
        # Special handling for certain users&lt;br /&gt;
        exec /path/to/custom-script.sh&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how to use a custom script (`custom-script.sh`) to handle requests from users whose usernames start with &amp;quot;specialuser&amp;quot;. The `post-auth` section allows you to manipulate requests after authentication has been completed.&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
* [FreeRADIUS Official Documentation](https://freeradius.org/docs/)&lt;br /&gt;
* [FreeRADIUS Wiki](https://wiki.freeradius.org/)&lt;br /&gt;
* [RADIUS Request Packet Format](https://tools.ietf.org/html/rfc2865)&lt;br /&gt;
* [FreeRADIUS Configuration Files](https://freeradius.org/radiusd/configuration.html)&lt;br /&gt;
* [FreeRADIUS Advanced Configuration](https://wiki.freeradius.org/config/advanced)&lt;br /&gt;
* [PostgreSQL for FreeRADIUS](https://wiki.freeradius.org/modules/rlm_sql_postgresql)&lt;br /&gt;
* [FreeRADIUS Policies](https://wiki.freeradius.org/config/policies)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>