Linux如何安装和配置 FreeRadius 服务器
近期有些网友想要了解的相关情况,小编通过整理给您分享一下。
FreeRadius是一个开源的RADIUS(远程用户拨号认证服务)服务器,广泛用于网络认证、授权和计费。无论是企业内部的Wi-Fi认证,还是ISP的用户管理,FreeRadius都能提供强大的支持。本文将详细介绍如何在Linux系统上安装和配置FreeRadius服务器,帮助你快速搭建一个高效的认证系统。
一、安装FreeRadius
1. 准备工作

在开始安装之前,确保你的Linux系统已经更新到最新版本,并且具备管理员权限。以下操作基于Ubuntu 20.04 LTS,其他Linux发行版的步骤可能略有不同。
sudo apt updatesudo apt upgrade
2. 安装FreeRadius
使用包管理器安装FreeRadius非常简单。在终端中输入以下命令:
sudo apt install freeradius freeradius-mysql freeradius-utils
这里我们不仅安装了FreeRadius主程序,还安装了MySQL支持模块和实用工具,以便后续进行更复杂的配置。
3. 启动FreeRadius服务
安装完成后,启动FreeRadius服务并设置为开机自启:
sudo systemctl start freeradiussudo systemctl enable freeradius
你可以通过以下命令检查服务状态,确保FreeRadius已经成功启动:
sudo systemctl status freeradius
二、配置FreeRadius
1. 基本配置
FreeRadius的配置文件位于/etc/freeradius/3.0/
目录下。主要的配置文件包括clients.conf
、users
和radiusd.conf
。
1.1 配置客户端
编辑clients.conf
文件,添加允许连接的客户端信息。例如:
sudo nano /etc/freeradius/3.0/clients.conf
在文件中添加以下内容:
client localhost { ipaddr = 127.0.0.1 secret = testing123 require_message_authenticator = no}
这里我们定义了一个名为localhost
的客户端,IP地址为127.0.0.1
,共享密钥为testing123
。
1.2 配置用户
编辑users
文件,添加允许认证的用户信息。例如:
sudo nano /etc/freeradius/3.0/users
在文件中添加以下内容:
testuser Cleartext-Password := "testpassword"
这里我们定义了一个用户名为testuser
,密码为testpassword
的用户。
2. 测试配置
在完成基本配置后,可以通过以下命令测试FreeRadius是否正常工作:
radtest testuser testpassword localhost 0 testing123
如果配置正确,你应该会看到类似以下的输出:
Sent Access-Request Id 1 from 0.0.0.0:42815 to 127.0.0.1:1812 length 73Received Access-Accept Id 1 from 127.0.0.1:1812 to 0.0.0.0:42815 length 20
这表明FreeRadius已经成功处理了认证请求。
三、高级配置
1. 集成MySQL
对于更复杂的应用场景,你可能需要将FreeRadius与MySQL数据库集成。首先,确保你已经安装了MySQL服务器和客户端:
sudo apt install mysql-server mysql-client
然后,创建一个新的数据库和用户:
sudo mysql -u root -p
在MySQL命令行中执行以下命令:
CREATE DATABASE radius;CREATE USER 'radius'@'localhost' IDENTIFIED BY 'radiuspassword';GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost';FLUSH PRIVILEGES;
接下来,导入FreeRadius的数据库架构:
sudo mysql -u root -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
最后,编辑FreeRadius的SQL模块配置文件,启用MySQL支持:
sudo nano /etc/freeradius/3.0/mods-available/sql
找到以下行并进行修改:
driver = "rlm_sql_mysql"dialect = "mysql"server = "localhost"port = 3306login = "radius"password = "radiuspassword"radius_db = "radius"
保存并退出,然后重启FreeRadius服务:
sudo systemctl restart freeradius
2. 配置EAP-TLS
对于需要更高安全性的场景,你可以配置EAP-TLS(扩展认证协议-传输层安全)。首先,生成所需的证书和密钥:
sudo openssl genpkey -algorithm RSA -out /etc/freeradius/3.0/certs/server.keysudo openssl req -new -key /etc/freeradius/3.0/certs/server.key -out /etc/freeradius/3.0/certs/server.csrsudo openssl x509 -req -in /etc/freeradius/3.0/certs/server.csr -signkey /etc/freeradius/3.0/certs/server.key -out /etc/freeradius/3.0/certs/server.crt
然后,编辑eap.conf
文件,启用EAP-TLS:
sudo nano /etc/freeradius/3.0/mods-available/eap
找到以下行并进行修改:
tls { private_key_file = /etc/freeradius/3.0/certs/server.key certificate_file = /etc/freeradius/3.0/certs/server.crt}
保存并退出,然后重启FreeRadius服务:
sudo systemctl restart freeradius
四、总结
通过以上步骤,你已经成功在Linux系统上安装和配置了FreeRadius服务器。无论是简单的用户认证,还是复杂的数据库集成和高级安全配置,FreeRadius都能满足你的需求。希望本文能帮助你快速上手FreeRadius,并在实际应用中发挥其强大的功能。如果你有任何问题或需要进一步的帮助,欢迎在评论区留言讨论。