Radius、Firewall 安装配置

1、说明

  • 使用 freeradius 和 mariadb 配置 Radius 认证服务器

2、安装命令

  • 使用在线 yum 源安装,保证网络畅通,执行以下命令等待安装完成
yum install -y freeradius freeradius-utils freeradius-mysql mariadb-server
  • 验证安装,使用如下命令,如下图所示
rpm -qa |grep mariadb
rpm -qa |grep freeradius

freeradius绑定mysql freeradius搭建_mysql


3、启动服务、设置开机自启

systemctl start mariadb.service  #启动数据库
systemctl enable mariadb.service #添加开机自启动
systemctl start radiusd.service  #启动 radiusd 服务
systemctl enable radiusd.service  # 添加开启自启动

4、调整服务开机启动顺序

  • 在 radiusd.service 文件中加入 mariadb.service ,位置如下图所示
vi /usr/lib/systemd/system/radiusd.service

freeradius绑定mysql freeradius搭建_数据库_02


5、替换配置文件

  • 将 ”users“ 文件 覆盖替换到 /etc/raddb/ 目录下
  • 将 ” radiusd.conf” 文件,覆盖替换到 /etc/raddb/目录下
  • 将 “default” 文件,覆盖替换到 /etc/raddb/sites-available/ 目录下
  • 配置文件见附件

6、数据库配置

  • 1)设置数据库密码、远程访问
  • 设置 mysql 数据库密码,执行以下命令
mysql
MariaDB [(none)]> SET password for 'root'@'localhost'=password('123456');   # 123456 为数据库密码
  • 2)设置远程访问
MariaDB[(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
MariaDB [(none)]> flush privileges;
  • 3)创建 radius 库
mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.3.2-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database radius;
Query OK, 1 row affected (0.09 sec)
    MariaDB [(none)]> exit;
Bye
  • 4)导入 Radius 表结构
mysql -u root -p123456 radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
  • 5)验证数据库导入数据,如下图
mysql -uroot -p123456
MariaDB [(none)]> show databases;
MariaDB [(none)]> use radius;
MariaDB [radius]> show tables;
MariaDB [radius]> exit

freeradius绑定mysql freeradius搭建_数据库_03


  • 说明:共导入了7个表,分别是:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录

7、修改 Radius 配置

  • 1)修改 FreeRadius中的mysql 认证配置文件,执行如下命令
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql
  • 修改 Radius 中的 mysql 配置文件
vi /etc/raddb/mods-available/sql
  • 找到 driver = “rlm_sql_null” 这一行,修改为 driver = “rlm_sql_mysql” 保存并退出,保持与截图一致
  • freeradius绑定mysql freeradius搭建_Linux_04


  • 找到 dialect = “sqlite” 这一行,修改为 dialect = “mysql” 保存并退出,保持与截图一致
  • freeradius绑定mysql freeradius搭建_Freeradius_05


server : MariaDB 数据库IP地址,若Radius和 MariaDB 同一服务器可默认为 “localhost“
port : MariaDB 数据库端口默认为”3306”
login : MariaDB数据库登录用户名”root”
password : MariaDB数据库root用户登录密码

8、添加测试数据

  • 在数据库中插入测试数据
mysql -uroot -p123456
use radius;
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local'); 
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User'); 
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
insert into radusergroup (username,groupname) values ('test','user');
  • 停止 Radius 服务以调试方式运行,如下图所示
systemctl stop radiusd.service
radiusd -X

freeradius绑定mysql freeradius搭建_Freeradius_06



freeradius绑定mysql freeradius搭建_Linux_07


  • 再打开一个新ssh窗口,运行测试工具命令,结果如下图所示,为验证通过!至此 Raduis 服务搭建完成
radtest test testpwd localhost 1812 testing123

freeradius绑定mysql freeradius搭建_mysql_08


  • 测试完毕后,按 Ctrl + C 结束调试,使用正常的启动服务命令启动 Radius 服务

附录

  • 开启防火墙-Radius 使用端口 1812-mariadb 使用 3306
systemctl start firewalld.service    #启动
systemctl enable firewalld.service   #开机自启
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=1812/tcp --permanent
firewall-cmd --zone=public --add-port=1812/udp --permanent
firewall-cmd --reload
  • 修改数据库 mariadb 端口号,在 mysqld 增加 port 字段
vi /etc/my.cnf


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3307  #修改此处
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  • 若 mysql 启动失败可在 该目录查看 报错日志 /var/log/mariadb/mariadb.log
  • Radius 日志默认路径为 /var/log/radius/radius.log
  • 使用第三方 Radius 工具测试 如 RadiusTest 需要在 Radius 服务器中的 /etc/raddb/clients.conf 配置文件中增加 clients 的请求地址和标示