2024年4月29日发(作者:)
什么是FreeRADIUS?
RADIUS是Remote Access Dial In User Service的简称。 RADIUS主要用来提供认证
(Authentication)机制,用来辨认使用者的身份与密码 –> 确认通过之后,经由授权
(Authorization)使用者登入网域使用相关资源 –> 并可提供计费(Accounting)机制,保
存使用者的网络使用记录。 FreeRADIUS是一款OpenSource软件,基于RADIUS协议,实
现RADIUS AAA(Authentication、Authorization、Accounting)功能。
Radius认证的过程:
1,supplicant向NAS发起802.1X的EAP0L-START;
2,NAS收到EAP0L-START之后发给supplicant一个eap/identity;
3,supplicant收到这个eap/identity之后将username作为response发回给NAS;
4,NAS将包含有username的eap包封装入RADIUS包的的eap_message属性中,并作
为access request包(包ID假定为1)发给RADIUS服务器;
5,RADIUS服务器收到这个含有eap_message属性的RADIUS包之后,发回一个带有
eap_message(其内部的EAP包为md5 challenge)给NAS;
6,NAS收到这个RADIUS包之后将eap_message属性中的EAP包提取出来,然后封装在
EAPOL中发给supplicant;
7,supplicant收到这个EAP/MD5 CHALLENGE之后将passwd放入EAP包中发给NAS,
然后NAS再次打包发给RADIUS
8,RADIUS进行认证,如果username和passwd匹配之后认证通过。
目的:搭建freeradius服务器 实现用户上网的Mac地址认证
环境:centos+freeradius+mysql
安装:
一、安装openssl
二、安装mysql
1
[root@zhinan~] yun groupinstall "MySQL Database" /#安装MySQL数据库
2
[root@zhinan~] service mysqld start /#启动数据库
3
[root@zhinan~] netstat -nax /#查看3306端口是否在使用,从而确定安装是否成功
4
[root@zhinan~] mysqladmin -u root password '123' /#修改root的密码为123
5
[root@zhinan~] mysql -u root -p123 /#进入mysql,查看数据库是正常使用。正常使用则
退出
三,安装freeradius
最新的freeradius的版本是2.2.0。
1
[root@zhinan~] tar -xzvf /#解压缩
2
[root@zhinan~] cd freeradius-server-2.2.0 /#进入解压缩后的目录:
3
[root@zhinan~] ./config /#检测安装环境
4
[root@zhinan~] make /#编译
5
[root@zhinan~] make install /#安装
安装完后,可以使用命令
1 [root@zhinan~] radiusd -x /#进入radiusd服务器的调试模式,如果能进入则安装成功。
安装成功后freeradius的配置文件的路径是:usr/local/etc/raddb/
日志文件的路径是:usr/local/var/log
一般以上过程不会出问题,主要的问题在于配置。
radius 服务器几个配置文件
服务器端配置
存储radius客户端(NAS,ROUTER)的验证信息,主要是配KEY
./modules/ 主要是针对LDAP,MYSQL、数字证书等的配置
四、配置过程
1
[root@zhinan~] mysql -u root -p123 /#登陆mysql
2
mysql> creat database radius; /#创建数据库
3
mysql> exit /#退出数据库。
4
[root@zhinan~] cd usr/local/etc/raddb/sql/mysql /#进入
5
usr/local/etc/raddb/sql/mysql下
[root@zhinan~] mysql -u root -p radius < /#把表导入到数据库中
(注意,2.1.1版本的数据库文件是 ,这跟其他版本不同,1.1.7版本之前的数
据库文件是 ,或者rlm_,而且存放路径不同)
导入后,可以在用命令
1
mysql> use radius;
2
mysql> show tabels; /#看到以下数据库表:
3
4
+------------------+
5
6
| Tables_in_radius |
7
8
+------------------+
9
10
| radacct |
11
12
| radcheck |
13
14
| radgroupcheck |
15
16
| radgroupreply |
17
18
| radpostauth |
19
20
| radreply |
21
22
| radusergroup |
23
24
+------------------+
发布评论