创建 radius 数据库 创建 radius 数据库和用户名密码
1 2 3 4 5 6 mysql -h 127.0.0.1 -u root -p # 下列在 mysql 命令行中操作 mysql> create database radius; mysql> grant all on radius.* to radius@"localhost" identified by "radpass" ; mysql> flush privileges; mysql> exit
安装 FreeRadius 1 2 3 yum -y install freeradius freeradius-utils freeradius-mysql systemctl start radiusd.service systemctl enable radiusd.service
查看 Radius 使用的端口,然后添加 Radius 服务到防火墙中;也可以直接关闭防火墙
1 2 3 4 5 cat /usr/lib/firewalld/services/radius.xml firewall-cmd --state # 查看防火墙状态,启动状态才能添加规则 firewall-cmd --add-service=radius --permanent # 添加 Radius 服务到 firewalld 防火墙中。 firewall-cmd --reload # 让配置的防火墙策略立即生效 firewall-cmd --list-services # 列举区域中启用的服务
配置 FreeRadius 1 2 3 4 5 6 7 8 9 10 11 12 cd /etc/raddb/mods-config/sql/main/mysql/ # 备份 setup.sql 配置文件 mv setup.sql setup.sql-backup # 过滤有 grep -v "#" /etc/raddb/mods-config/sql/main/mysql/setup.sql-backup > /etc/raddb/mods-config/sql/main/mysql/setup.sql # 进入数据库命令行操作 mysql -h 127.0.0.1 -u root -p mysql> source /etc/raddb/mods-config/sql/main/mysql/setup.sql mysql> use radius mysql> source /etc/raddb/mods-config/sql/main/mysql/schema.sql mysql> exit ;
导入完成后,可以看到如下的表结构
1 2 3 4 5 6 7 8 9 10 11 12 +------------------+ | Tables_in_radius | +------------------+ | nas | | radacct | | radcheck | | radgroupcheck | | radgroupreply | | radpostauth | | radreply | | radusergroup | +------------------+
MySQL 中表结构的定义 针对 FreeRadius3,数据表的设计和结构定义在下面的文件中:/etc/raddb/sql/mysql/schema.sql 主数据库定义,8个表,包括nas # 网络设备表radacct # 计费情况表radcheck # 用户检查信息表radgroupcheck # 用户组检查信息表radgroupreply # 用户组回复信息表radpostauth # 认证后处理信息,可以包括认证请求成功和拒绝的记录。radreply # 用户回复信息表radusergroup # 用户和组关系表
为 /etc/raddb/mods-enabled 创建软连接(涉及到后续 Radius 验证是否使用数据库)
1 ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
配置 SQL 模块 /raddb/mods-available/sql,并更改数据库连接参数,以适合自己的配置环境:
1 vi /etc/raddb/mods-available/sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 31 # driver = "rlm_sql_null" # 注释掉这行32 driver = "rlm_sql_mysql" # 新增这行,表示使用 MySQL 数据库88 # dialect = "sqlite" # 注释掉这行89 dialect = "mysql" # 修改连接类型为 MySQL90 91 # Connection info:92 # (这里可以改成root账号) 93 server = "localhost" 94 port = 3306 95 login = "radius" 96 password = "radpass" # 对应数据库密码97 98 # Database table configuration for everything except Oracle99 radius_db = "radius" 247 read_clients = yes250 client_table = "nas" 其他配置默认无需更改。
然后,将 /etc/raddb/mods-enabled/sql 所属组更改为 radiusd:
1 chgrp -h radiusd /etc/raddb/mods-enabled/sql
添加启动服务,调整 FreeRadius 与 MariaDB 的启动顺序,FreeRadius 必须在 MariaDB 启动之后启动,在 [Unit] 部分,增加 After=mariadb.service,如下所示:
1 2 systemctl enable radiusd.service vi /etc/systemd/system/multi-user.target.wants/radiusd.service
1 2 3 4 [Unit ] Description =FreeRADIUS high performance RADIUS server.After =syslog.target network.target ipa.service dirsrv.target krb5 kdc.serviceAfter =mysqld.service
添加客户端(路由器、交换机等设备)连接设置,ip 可以自由更改。
1 2 3 mv /etc/raddb/clients.conf /etc/raddb/clients.conf-backup grep -v "#" /etc/raddb/clients.conf-backup > /etc/raddb/clients.conf # 过滤有 # 注释符号的信息行 vi /etc/raddb/clients.conf
1 2 3 4 5 6 7 8 9 10 11 client localhost { ipaddr = 127.0.0.1 proto = * secret = testing123 require_message_authenticator = no limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } }
需要注意,上面配置的 127.0.0.1 主要用于测试,将来真正的客户端要按照下面的信息进行补充: 将来你真正的 raidus 客户端,如路由器、交换机等需要在这里配置 ip 信息,例如:
1 2 3 4 5 6 7 8 9 10 client x.x.x.x { ipaddr = x.x.x.x # 交换机或者路由器等设备的IP地址 secret = xxxxxxxxxx # 自己定义的交换机或者路由器等设备和 radius 服务器的连接密码 client 0.0.0.0 /0 { secret = testing123 } }
可以执行 cat /var/log/radius/radius.log 去查看 radius 服务的日志看有没有错误。
安装 FreeRADIUS 管理界面 Daloradius 进入 Apache 网站根目录,下载 daloradius 源文件
1 2 3 4 5 yum install -y php-pear-DB cd /var/www/html/ wget https://github.com/lirantal/daloradius/archive/master.zip unzip master.zip mv daloradius-master/ daloradius
下载 daloradius-0.9-9.tar.gz,解压后合并到 daloradius 文件夹中
1 2 3 wget http://liquidtelecom.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz tar -zxvf daloradius-0.9-9.tar.gz mv daloradius-0.9-9 daloradius
进入 daloradius 目录,导入 daloradius 数据库
1 2 3 cd daloradius mysql -h 127.0.0.1 -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql mysql -h 127.0.0.1 -u root -p radius < contrib/db/mysql-daloradius.sql
复制一份 daloradius.conf.php.sample 为 daloradius.conf.php
1 mv /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php
设置 daloradius 目录用户组和用户,设置 daloradius.conf.php 权限
1 2 chown -R apache:apache /var/www/html/daloradius/ chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
设置 daloradius 数据库连接信息,打开 daloradius.conf.php 文件,修改 CONFIG_DB_USER,CONFIG_DB_PASS,CONFIG_DB_NAME。
1 vi /var/www/html/daloradius/library/daloradius.conf.php
找到下列变量进行修改
1 2 3 4 5 6 7 8 9 10 11 $configValues ['CONFIG_DB_ENGINE' ] = 'mysql' ;$configValues ['CONFIG_DB_HOST' ] = '127.0.0.1' ;$configValues ['CONFIG_DB_PORT' ] = '3306' ; $configValues ['CONFIG_DB_USER' ] = 'root' ; $configValues ['CONFIG_DB_PASS' ] = ' ' ; $configValues ['CONFIG_DB_NAME' ] = 'radius' ; $configValues ['CONFIG_FILE_RADIUS_PROXY' ] = '/etc/raddb/proxy.conf' ; $configValues ['CONFIG_PATH_DALO_VARIABLE_DATA' ] = '/var/www/html/daloradius/var' ; $configValues ['CONFIG_MAINT_TEST_USER_RADIUSSECRET' ] = 'testing123' ;
配置完成后保存退出 重启 radius、mysql、http 服务
1 2 3 systemctl restart radiusd systemctl restart mysqld systemctl restart httpd
如果提示: Warning: radiusd.service changed on disk. Run ‘systemctl daemon-reload’ to reload units. 执行以下的命令,没有上面提示就忽略此步
1 2 systemctl daemon-reload # 重新加载守护进程 systemctl restart radiusd
现在打开浏览器访问 http://your ip address// 就可以看到 daloradius 的界面了,默认登录的用户名和密码分别为 username: administrator, password: radius 至此 LAMP + FreeRadius + Daloradius Web 管理界面已经安装成功,下面是 Web 界面汉化教程。
Daloradius 中文版设置 进入 Daloradius 文件目录,修改 config-lang.php,添加中文选项:
1 2 vi /var/www/html/daloradius/config-lang.php # Simplified Chinese (79行)
RADIUS 操作命令
启动 RADIUS 服务(调试模式)
1 2 3 4 5 6 7 8 9 systemctl stop radiusd radiusd -X ``` 2. 配置文件添加账号 ```shell vi /etc/raddb/users # steve Cleartext-Password := "testing" (这个注释去掉)
允许外部访问
1 vi /etc/raddb/clients.conf
1 2 3 client 192.168.0.0 /24 { # 地址根据实际情况去配置 secret = testing123 }
远程客户端登录 RADIUS 服务器
1 radtest steve testing 192.168.70.116 1812 testing123
访问成功会收到 Access-Accept 的提示