赞
踩
Freeradius+AC认证过程(为了简化,此操作在yum下)
系统要求:Centos7.5 内存:4G 硬盘:50G ,这里关闭了防火墙和selinux,如有需要自行开启,本教程不做介绍。
更新系统
yum install-y update
安装freeradius 和freeradius工具包
yum install freeradius freeradius-mysql
yum -y install freeradius freeradius-utils freeradius-mysql
freeradius的测试
该文件是/etc/raddb/users,使用vi工具打开,命令如下:
vi /etc/raddb/users
打开文件后,查找 steve Cleartext-Password :="testing" (76-84行), 取消该段内容的注释。
打开一个新的终端运行radius -X
另一终端输入
radtest steve testing localhost 0 testing123
到此freeradius安装基本完成,下面是集合mariadb数据库实现联动认证的。
安装mariadb数据库
yum install -y mariadb-server mariadb-devel
启动mariadb
systemctl start mariadb
创建认证数据库,给相应的权限
mysql -u -p
密码自行设置
mysql>set password for 'root'@'localhost'=password('newpasswd');
创建数据库
mysql>create database radius;
给权限
mysql>grant all on radius.* to radius@localhost identified by "radpass"; mysql>exit;
Exit
导入表结构
mysql -u root radius< /etc/raddb/mods-config/sql/main/mysql/schema.sql
或者
/etc/raddb/mods-config/sql/main/mysql/schema.sql
表的说明
上面的指令,共导入了7个表,分别是:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。
在数据库里建立组
1、建立组信息:(在此新建组名称为user)
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');
2、建立用户信息:(在此新建用户名为test,密码为testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
将用户加入组中:
insert into radusergroup (username,groupname) values ('test','user');
3.5.6.修改 FreeRADIUS中的mysql 认证配置
执行如下命令:
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql
.修改 FreeRADIUS中的mysql 配置文件
该配置文件位于/etc/raddb/mods-available目录,名称为sql
可以通过vi来修改,命令如下:
vi /etc/raddb/mods-available/sql
找到driver = “rlm_sql_null”这一行,修改为driver = “rlm_sql_mysql”。保持并退出。
取消注释
vim /etc/raddb/mods-available/sql
31 #driver = "rlm_sql_null"
32driver = "rlm_sql_mysql"
88 #dialect = "sqlite"
89dialect = "mysql"
90
91 # Connection info:
92 #
93 server = "localhost"
94 port = 3306
95login = "radius"
96password = "radpass"
97
98 # Database table configuration for everything except Oracle
99 radius_db = "radius"
247read_clients = yes
250 client_table = "nas"
位于245行
修改所属组
然后,将/etc/raddb/mods-enabled/sql所属组更改为radiusd:
chgrp -h radiusd /etc/raddb/mods-enabled/sql
配置 /etc/raddb/sites-available/default
注意:注释398行files
不注释会导致任意账号密码认证通过
添加启动
3.5、添加启动服务,调整FreeRadius与MariaDB的启动顺序,FreeRadius必须在MariaDB启动之后启动,在[Unit]部分,增加After=mariadb.service,如下图所示:
# systemctl enable radiusd.service
# vi /etc/systemd/system/multi-user.target.wants/radiusd.service
After=mariadb.service
添加客户端连接(对接外部设备密码)
添加客户端连接设置,添加允许所有用户接入,如需特定ip访问,ip可以自由更改。
# vi /etc/raddb/clients.conf
client all_client {
ipaddr = 0.0.0.0/0
secret = testing123
require_message_authenticator = no
}
根据radius的debug信息,深信服的验证数据中,深信服发送了一个核心信息就是Service-Type = Authenticate-Only
freeradius内修改radius的配置文件(/usr/local/etc/raddb/users)或者
vim /etc/raddb/users
vi users 增加下一行可以让深信服通过验证。
DEFAULT Service-Type = Authenticate-Only,Auth-Type := Accept
终于做到了深信服的radius验证测试只要1秒就成功。
如果启动警告
输入
systemctl daemon-reload
到此。搭建完毕
日志功能配置
修改radiusd.conf配置文件
vim /etc/raddb/radiusd.conf
Log{
auth = yes
auth_badpass = yes
auth_goodpass = yes
}
配置 /etc/raddb/sites-available/default
Authorize{
auth_log
}
post-auth{
reply_log //732
}
注释了398files
增加用户名 密码用MD5加密。认证设备选择PAP
insert into radcheck (username,attribute,op,value) values ("20008","MD5-Password",":=",md5("123456"));
本次教程只讲了操作,原理会在后面和大家讲述
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。