当前位置: 首页 > 工具软件 > FreeRADIUS > 使用案例 >

freeradius学习9--mariadb

白镜
2023-12-01

本部分学习时,手欠升级了操作系统,索性freeradius软件也都进行了重装,操作系统版本Fedora37。

1、安装软件

#dnf install freeradius

#dnf install freeradius-utils

2、启动服务

#/etc/raddb/certs/bootstrap

#radiusd -X

屏幕调试信息最后出现如下内容,表示成功:

Ready to process requests

3、编辑/etc/raddb/users文件,在顶部添加如下内容:

alice   Cleartext-Password := "passme"

        Reply-Message := "Hello, alice"

4、重启服务,打开第二个窗口运行radtest命令进行测试:

Received Access-Accept Id 245 from 127.0.0.1:1812 to 127.0.0.1:50865 length 34

        Reply-Message = "Hello, alice"

屏幕出现上述信息表示成功。

5、数据库采用MariaDB,版本为10.5.18,数据库安装、配置和启动略过。

登录数据库服务器,创建名为radius的数据库

#mysql -u root -p

MariaDB [(none)]>create database radius;

MariaDB [(none)]>quit

6、安装freeradius-mysql

#dnf install freeradius-mysql

#cd /etc/raddb/mods-config/sql/main/mysql

#mysql -u root -p radius < schema.sql

编辑setup.sql文件,内容如下:

CREATE USER 'radius'@'localhost' IDENTIFIED BY 'password';

GRANT SELECT ON radius.* TO 'radius'@'localhost';

GRANT ALL on radius.radacct TO 'radius'@'localhost';

GRANT ALL on radius.radpostauth TO 'radius'@'localhost';

涂蓝色部分是radius数据库的用户名和密码,可根据需要调整。

#mysql -u root -p < setup.sql

向数据库中插入两条数据

insert into radcheck (username,attribute,op,value)

values ('bob','Cleartext-Password',':=','passme');

insert  into radreply(username,attribute,op,value) values('bob','Reply-Message','=','Hello,bob!');

至此,数据库方面准备完毕。

7、配置sql模块

#cd /etc/raddb/mods-enabled

#ln -s ../mods-available/sql sql

#vi sql

内容如下:

dialect = "mysql"

driver = "rlm_sql_mysql"

server = "localhost"

port = 3306

login = "radius"

password = "password"

8、重启服务,打开第二个窗口运行radtest命令

#radtest bob passme 127.0.0.1 0 testing123

Received Access-Accept Id 246 from 127.0.0.1:1812 to 127.0.0.1:46297 length 32

        Reply-Message = "Hello,bob!"

验证成功!

再观察下服务运行窗口的调试信息

(0) sql: EXPAND %{User-Name}

(0) sql:    --> bob

(0) sql: SQL-User-Name set to 'bob'

rlm_sql (sql): Reserved connection (0)

(0) sql: EXPAND SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' ORDER BY id

(0) sql:    --> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'bob' ORDER BY id

(0) sql: Executing select query: SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'bob' ORDER BY id

(0) sql: User found in radcheck table

(0) sql: Conditional check items matched, merging assignment check items

(0) sql:   Cleartext-Password := "passme"

(0) sql: EXPAND SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id

(0) sql:    --> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'bob' ORDER BY id

(0) sql: Executing select query: SELECT id, username, attribute, value, op FROM radreply WHERE username = 'bob' ORDER BY id

(0) sql: User found in radreply table, merging reply items

(0) sql:   Reply-Message = "Hello,bob!"

结论:数据库存储用户名/密码正常开展验证工作。

 类似资料: