1. RADIUS简介
RADIUS的全称为Remote AuthenticaTIon Dial-In User Service,是一种能够让服务器验证各种接入用户身份的协议,RADIUS能够对用户身份进行会集办理,安全性更好,战略也更灵敏,一起还能够记载用户的网络运用情况用于网管剖析或许计费,已经成为比较常用的工业规范。在运用中,路由器、交换机等设备在需求验证用户身份的时分,向RADIUS服务器发送恳求,RADIUS服务器则回来用户的相关信息,交给路由器、交换机等设备处理。
在本文中,咱们将根据Ubuntu(Linux的一个比较盛行的发行版别),以FreeRADIUS+MySQL+OpenSSL建立一个RADIUS服务器,其认证办法是PEAPv0/EAP-MSCHAPv2。
本文中所用的Linux及软件的版别如下:
OS:Ubuntu 8.04 (Linux Kernel 2.6.24-21)
FreeRADIUS:FreeRADIUS 1.1.7
FreeRADIUS-MySQL:FreeRADIUS-MySQL 1.1.7
MySQL:MySQL 5.0.51a
OpenSSL:OpenSSL 0.9.8g (操作系统自带)
2. 装置RADIUS
装置完Ubuntu8.04后,首要更新办理器,在终端输入如下指令:
sudo apt-get update
sudo apt-get dist-upgrade
装置根本的编译环境,指令如下:
sudo apt-get install build-essenTIal autoconf automake1.9 cvs subversion
apt-get install dpkg-dev
装置MySQL,指令如下:
sudo apt-get install mysql-server mysql-client
#装置过程中按提示设定办理MySQL数据库的暗码(如123456)
装置FreeRADIUS:
从FreeRADIUS的官方网站http://freeradius.org下载FreeRADIUS 1.1.7。然后在终端输入如下指令:
tar zxvf freeradius-1.1.7.tar.gz
cd freeradius-1.1.7
fakeroot dpkg-buildpackage -b –uc
#提示短少什么包就经过 apt-get install 装置什么包
cd ..
dpkg -i freeradius_1.1.7-0_i386.deb freeradius-mysql_1.1.7-0_i386.deb
3. 装备FreeRADIUS
修正装备文件:/etc/freeradius/radiusd.conf(留意如果在文件结尾修正的话,后边的值不会掩盖前面的值,所以要直接在原方位上修正),需更改的几个log项:
log_auth = yes
log_auth_badpass = yes
log_auth_goodpass = yes
恰当延伸发送认证失利音讯之前的暂停秒数,避免暴破,默以为1秒。
reject_delay = 5
把authorize、accounTIng、session、post-auth几个部分中sql一句前的注释撤销掉,启用MySQL认证。
修正装备文件:/etc/freeradius/clients.conf,设置答应运用radius服务的设备,一般是AP的IP地址,secret是AP衔接radius的暗码,在装备文件最终增加如下句子:
client 192.168.0.0/24 { secret = tesTIng123 shortname = dlink nastype = other }
修正装备文件:/etc/freeradius/eap.conf,将tls,ttls,peap三段的注释悉数撤销,这是启用PEAP的要害。
修正装备文件:/etc/freeradius/users,修正users文件中的如下内容:
#DEFAULT Auth-Type = System
#Fall-Through = 1
修正装备文件:/etc/freeradius/sql.conf,设置与MySQL相关的信息:
server = “localhost”
login = “radius”
password = “radius”
4. 装备MySQL
先建库和用户,指令如下:
mysql -u root –p123456
…………
mysql> create database radius;
mysql> GRANT ALL PRIVILEGES ON radius.* to radius@localhost IDENTIFIED BY ‘radius’;
mysql> FLUSH PRIVILEGES;
mysql> exit;
创立radius相关的表和初始数据:
将/usr/share/doc/freeradius/examples/mysql.sql.gz解压,将解压后的mysql.sql导入radius数据库,指令如下:
cd /usr/share/doc/freeradius/examples/
mysql -u radius -pradius radius <./mysql.sql
表结构创立好之后,就能够创立运用者账号了,默许是存储在radcheck表中的,能够运用这样的指令和sql句子:
mysql -u radius -pradius radius
mysql> insert into radcheck (username,attribute,op,value) values (‘test’, ‘User-Password’, ‘:=’, ‘test’);
…………
mysql> select * from radcheck
+-+———–+—————–+–+—–+
|id|UserName|Attriubute |op |Value|
+-+———–+—————–+–+—–+
| 1|test |User-Password|:= |test |
+-+———–+—————–+–+—–+
现在重启freeradius服务,能够简略测验一下(test1/test1是过错的用户名/暗码,testing123是默许在clients.conf中界说的本机用户的secret),在终端输入如下指令:
radtest test1 test1 localhost 0 testing123
Sending Access-Request of id 5 to 127.0.0.1 port 1812
User-Name = “test1”
User-Password = “test1”
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
Re-sending Access-Request of id 5 to 127.0.0.1 port 1812
User-Name = “test1”
User-Password = “test1”
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=5, length=20
能够看到服务器接纳到了恳求,并回来了用户名/暗码=test1/test1的reject信息。
5. 无线AP的设置
首要设置项如下:
Secrity Mode: WPA2
Clipher Type: AES(比TKIP办法愈加安全)
RADIUS Server IP/Secret: RADIUS服务器地点的IP以及在“clients.conf”中设置的对应的“secret”。
6. 客户端设置
无线网络衔接特点->无线网络装备Tab页->首选网络(特点)->相关Tab页,网络验证:WPA2,数据加密:AES;
然后在“验证”Tab页,EAP类型:受维护的EAP(PEAP),在特点中,不选“验证服务器证书”,挑选“启用快速从头衔接”,验证办法:安全暗码(EAP-MSCHAP v2),并在“装备”中不挑选“主动运用windows登录名和暗码”。
装备过程截图如下所示:
登录的时分,状态栏上会弹出提示用户替换凭据的小图标,其实便是提示用户输入用户名/暗码(如test/test)。