编辑中... ...
RADIUS安装配置
#sudo apt-get install freeradius //这里安装的是freeradius
(你可能需要安装其他东西#sudo apt-get install freeradius freeradius-mysql radiusclient1 php5 php5-mysql php5-gd php5-cgi php5-fpm php-pear php-db mysql-server-5.5)
#vi /etc/freeradius/clients.conf //添加需要认证的AP的网段
client 172.168.0.0/16 {
secret = radius
shortname = encrtption
}
test Cleartext-Password := "testing"
至此,第一阶段server的配置就结束了,在无线路由器上配置为802.1X RADIUS认证即可,RADIUS server IP + Port (默认1812) + server secret ;
然后client,以win7为例,新建一个无线网络,安全类型为WPA2-企业/AES(对应WLAN设置),取消“自动使用Windows登录名和密码”,取消“验证服务器证书”,然后连接的时候输入users中账户密码即可;
配置Dynamic VLAN
编辑 /etc/freeradius/users 文件,修改成下面的内容,主要是增加下面的三项:
test-100 Cleartext-Password := "test" //原账号密码
Tunnel-Type = VLAN,
Tunnel-Medium-Type = 6, //也可以是 =IEEE-802
Tunnel-Private-Group-Id = 100 //需要下发的VLAN ID
如果不分配地址还需要修改这个文件: /etc/freeradius/eap.conf
ttls {
... use_tunneled_reply = yes //no改成yes
}
peap {
... use_tunneled_reply = yes
}
配置MySQL:(还没实践)
#vi /etc/freeradius/radiusd.conf //取消这个文件中sql配置文件
$INCLUDE sql.conf
readclients = yes
/etc/freeradius/sql/mysql文件夹下的众多sql脚本文件用于构建FreeRadius的数据库,首先在admin.sql里修改数据库名称,用户名和密码等内容,这些内容必须和/etc/freeradius/sql.conf的设置相同;
simul_verify_query = "SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"
创建freeradius数据库:
#mysql -u root -p //登录mysql
输入:
create database radius;
source admin.sql;
source cui.sql;
source ippool.sql;
source nas.sql;
source schema.sql;
source wimax.sql;
对/etc/freeradius/sites-enabled/default做如下修改:
对/etc/freeradius/sites-enabled/inner-tunnel做如下修改:
找到authorize {}模块,注释掉files,去掉sql前的#号
找到session {}模块,注释掉radutmp,去掉sql前面的#号
找到post-auth {}模块,去掉sql前的#号,去掉sql前的#号(Post-Auth-Type REJECT内)
剩下的待实践
802.1x的认证过程
认证过程可以由用户主动发起,也可以由认证系统发起。一方面当认证系统探测到有未经过认证的用户使用网络时,就会主动向客户端发送EAP-Request/Identity报文,发起认证;另一方面客户端可以通过客户端软件向认证系统发送EAPOL-Start报文,发起认证。
802.1x系统支持EAP中继方式和EAP终结方式与RADIUS对接,从而利用远端的RADIUS服务器完成认证。以下关于两种认证方式的过程描述,都以客户端主动发起认证为例。
1. EAP中继方式
这种方式是IEEE 802.1x标准规定的,将扩展认证协议(EAP)承载在其他高层协议中,如EAP over RADIUS,以便扩展认证协议报文穿越复杂的网络到达认证服务器。
一般来说,EAP中继方式需要RADIUS服务器支持EAP属性:EAP-Message和Message-Authenticator。基本业务流程如图8所示。
认证过程如下:
(1) 当用户有访问网络需求时打开802.1x客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求(EAPOL-Start报文)。此时,客户端程序将发出请求认证的报文给设备端,开始启动一次认证过程。
(2) 设备端收到请求认证的数据帧后,将发出一个请求帧(EAP-Request/Identity报文)要求用户的客户端程序将输入的用户名发送过来。
(3) 客户端程序响应设备端发出的请求,将用户名信息通过数据帧(EAP-Response/Identity报文)发送给设备端。设备端将客户端发送的数据帧经过封包处理后(RADIUS Access-Request报文)送给认证服务器进行处理。
(4) 认证服务器收到设备端发送来的用户名信息后,将该信息与数据库中的用户名表对比,找到该用户名对应的密码信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字通过RADIUS Access-Challenge报文发送给设备端,由设备端转发客户端程序。
(5) 客户端程序收到由设备端传来的加密字(EAP-Request/MD5 Challenge报文)后,用该加密字对密码部分进行加密处理(此种加密算法通常是不可逆的,生成EAP-Response/MD5 Challenge报文),并通过设备端传给认证服务器。
(6) 认证服务器将收到的已加密的密码信息(RADIUS Access-Request报文)和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息(RADIUS Access-Accept报文和EAP-Success报文),设备收到认证通过的消息后触发打开端口的动作,允许用户的业务流通过端口访问网络。
(7) 认证通过后,设备端会定期监测用户的在线情况,方法是设备端向客户端发送握手报文。缺省情况下,两次握手请求报文都得不到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。
(8) 客户端也可以发送EAPOL-Logoff报文给设备端,主动终止已认证状态,设备端把端口状态从授权状态改变成未授权状态。
802.1x简介
IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1x协议。后来,802.1x协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。802.1x的体系结构
使用802.1x的系统为典型的Client/Server体系结构,包括三个实体,如图1所示分别为:Supplicant System(客户端)、Authenticator System(设备端)以及Authentication Server System(认证服务器)