FreeRadius+Mysql+EAP认证身份认证系统安装及配置
使用FreeRadius,Mysql及EAP认证可以搭建用于无线、有线、VPN链路等的统一身份认证系统。
环境:Ubuntu 8.04.2-Server
各软件版本:
- Mysql:5.0.51a-3ubuntu5.4
- OpenSSL:0.9.8g-4ubuntu3.7
- FreeRadius:2.1.6
安装
**1.Mysql
**
执行命令:
sudo apt-get install mysql-server mysql-common mysql-client
2.OpenSSL
执行命令:
sudo apt-get install openssl libssl0.9.8 libssl-dev ca-certificates
3.FreeRadius
执行命令:
sudo apt-get install debhelper libltdl3-dev libpam0g-dev libmysqlclient15-dev build-essential libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev snmp autotools-dev dpatch libperl-dev libtool dpkg-dev libpq-dev libsnmp-dev
cd /usr/local/src/
sudo wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz
sudo tar -xzvf freeradius-server-2.1.6.tar.gz
cd freeradius-server-2.1.6
sudo ./configure –prefix=/usr/local/freeradius
sudo make
sudo make install
配置
1.Mysql
执行命令:
mysqladmin -u root -p create radius
mysql –u root –p radius < /usr/local/freeradius/etc/raddb/sql/mysql/schema.sql
配置权限:
mysql –u root –p
grant all on radius.* to radius@localhost identified by “it580.pass”;
exit
2.FreeRadius
执行命令:
sudo nano /etc/ld.so.conf
加入如下内容:
include /usr/local/freeradius/lib
执行命令:
sudo ldconfig
adduser radiususer
sudo chown -R radiususer:radiususer /usr/local/freeradius/
执行如下命令,看FreeRadius是否能够启动起来
sudo /usr/local/freeradius/sbin/radiusd –X
如果看到如下内容,说明FreeRadius启动正常。
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/freeradius/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
执行测试一(1.User文件方式认证),确认radius user方式认证正常。
通过后开始加入数据库支持。
执行命令:
nano /usr/local/freeradius/etc/raddb/sql.conf
修改里面的用户名和密码:
login = “radius”
password = “it580.pass”
执行命令,编辑radiusd.conf:
nano /usr/local/freeradius/etc/raddb/radiusd.conf
首先,将执行Freeradius的用户修改为:
user = radiususer
group = radiususer
开启sql支持,将以下的内容前的#去除:
$INCLUDE sql.conf
执行命令,编辑default:
nano /usr/local/freeradius/etc/raddb/sites-available/default
将以下的内容前的#去除:
sql
执行测试二(2.SQL方式认证),确认radius SQL认证正常。
通过后开始启动EAP支持。
检查/usr/local/freeradius/etc/raddb/sites-available/default,eap前的#是否去除。可以使用如下命令:
cat /usr/local/freeradius/etc/raddb/sites-available/default |grep -v ‘#’
执行测试三(3.EAP-MD5方式认证),确认radius EAP-MD5认证正常。
通过后开始启动EAP-PEAP。
执行命令:
nano /usr/local/freeradius/etc/raddb/eap.conf
修改md5为peap,显示如下,并保存:
default_eap_type = peap
检查证书是否存在,使用命令:
ls /usr/local/freeradius/etc/raddb/certs/*.pem
如果没有ca.pem文件,就执行命令,如果有的话,请不必执行该命令:
/usr/local/freeradius/etc/raddb/certs/bootstrap
执行测试四(4.EAP-PEAP方式认证),确认radius EAP-PEAP认证正常。
通过后开始启动EAP-TTLS-MD5。
执行命令:
nano /usr/local/freeradius/etc/raddb/eap.conf
修改peap为ttls-md5,显示如下并保存:
default_eap_type = ttls
执行测试五(5.TTLS-MD5方式认证),确认radius TTLS-MD5认证正常。
通过后开始启动TTLS-MSCHAPV2。
执行命令:
nano /usr/local/freeradius/etc/raddb/eap.conf
修改md5为mschapv2,显示如下并保存:
default_eap_type = mschapv2
执行测试六(6.TTLS-MSCHAPV2方式认证),确认radius TTLS-MSCHAPV2认证正常。
全文完。
测试
1.User文件方式认证
执行命令:
nano /usr/local/freeradius/etc/raddb/users
在该文件底部加入如下内容,增加一个用户radiususer,密码为it580.com:
radiususer Cleartext-Password := “it580.com”
执行命令,启动Freeradius的调试模式:
/usr/local/freeradius/sbin/radiusd –X
执行命令,测试新增的用户:
/usr/local/freeradius/bin/radtest radiususer it580.com localhost 0 testing123
如果输出如下内容,说明该用户验证成功:
Sending Access-Request of id 180 to 127.0.0.1 port 1812
User-Name = “radiususer”
User-Password = “it580.com”
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=180, length=20
2.SQL 方式认证
执行命令:
mysql –u radius –p radius
insert into radcheck(username,attribute,value,op) values(‘sqluser’,‘Cleartext-Password’,‘it580.com’,’:=‘);
执行命令,启动Freeradius的调试模式:
/usr/local/freeradius/sbin/radiusd –X
执行命令,测试新增的用户:
/usr/local/freeradius/bin/radtest sqluser it580.com localhost 0 testing123
如果输出如下内容,说明该用户验证成功:
Sending Access-Request of id 113 to 127.0.0.1 port 1812
User-Name = “sqluser”
User-Password = “it580.com”
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=113, length=20
3.EAP-MD5方式认证
执行命令,启动Freeradius的调试模式:
/usr/local/freeradius/sbin/radiusd –X
执行命