CentOS下Radius服务器搭建
⼀、实现环境:
1.系统: release 6.6 (Final)
2.需要软件包:
1) freeradius-2.1.12-6.e16.x86_64
freeradius-mysql-2.1.12-6.e16.x86_64
2) ppp-2.4.5-5.e16.x86_64
3) rp-pppoe-3.10-11.e16.x86_64
4) mysql-5.1.73-3.e16_5.x86_64
mysql-devel-5.1.73-3.e16_5.x86_64
5) openssl-1.0.1e-30.e16_6.5.x86_64
⼆、服务器实际部署环境和简单原理分析:
Radius是Remote Access Dial In User Service的简称。Radius主要⽤来提供认证(Authentication)机制,⽤来辨认使⽤者的⾝份与密码,确认通过之后,经由授权(Authorization)使⽤者登⼊⽹域使⽤相关资源并可提供计费(Accounting)机制,保存使⽤者的⽹络记录。Freeradius是⼀款OpenSource软件,基于radius协议,实现RADIUS AAA(Authentication、Authorization、Accounting)功能。
如下拓扑图所⽰,为该radius服务器实际运⾏环境和功能。
Radius服务器和接⼊服务器配合使⽤实现⽤户宽带账号计费拨号获取权限连接Internet⽹络。
三、Radius服务器搭建:
1.安装CentOS系统配置好⽹络之后使⽤命令:#yum update 更新系统。
2.查看各个软件包是否安装:#rpm –q ppp rp-pppoe freeradius mysql-* openssl
如果没有安装则使⽤命令:#yum install ppp rp-pppoe freeradius-* mysql-* openssl
进⾏安装,⼀般openssl在系统更新之后就已经安装好了。安装好各个软件之后,使⽤命令:
#wget 下载ppp源代码包到创建的/etc/ppp/radius⽬录下。(#mkdir /etc/ppp/radius //创建⽬录)
下⾯就对各服务进⾏配置:
1. 配置 /etc/ppp/options⽂件:
lock
crtscts
nobsdcomp
nodeflate
nopcomp
2. 配置/etc/ppp/pppoe-server-options⽂件,内容为:
# PPP options for the PPPoE server
# LIC: GPL
auth
require-chap
default-mru
default-asyncmap
lcp-echo-interval 60
lcp-echo-failure 5
ms-dns 202.96.128.86
noipdefault
noipx
nodefaultroute
proxyarp
radius软件
noktune
logfile /var/log/pppd.log
3.让pppoe服务使⽤freeradius服务器进⾏验证
1)⾸先更改/etc/ppp/pppoe-server-options,添加两⾏设置:
#PPP options for the PPPoE server
#LIC: GPL
auth
require-chap
default-mru
default-asyncmap
lcp-echo-interval 60
lcp-echo-failure 5
ms-dns 202.96.128.86
noipdefault
noipx
nodefaultroute
proxyarp
noktune
->plugin /usr/lib/pppd/2.4.5/radius.so
->radius-config-file /etc/ppp/f
logfile /var/log/pppd.log
表⽰让pppoe-server在运⾏时加⼊pppd的radius查检,可以让pppoe服务通过freeradius来验证和记账。添加此⾏之后,可以创
建/etc/ppp/radiuds/⽬录,创建完之后,需要使⽤⼀下ppp的源代码。解压ppp的源代码⽬录:
#tar -xzf ppp-2.4.
#cd ppp-2.4.5
#cd pppd/plugins/radius/etc/
#cp * /etc/ppp/radiuds/
2) 这个⽬录下有需要的所有相关的配置⽂件,其中最重要的是/etc/ppp/f,先打开此⽂件配置,其内容为(已去掉注释):
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radiuds/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/ppp/radiuds/servers
dictionary /etc/ppp/radiuds/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radiuds/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
3) 另外,还需更改此⽬录下的servers⽂件,此⽂件⽤来指定读取的radius服务器的主机名称以及key值(需要在freeradius配置中指定)。编辑 /etc/ppp/radius/servers ,设定radius 服务器的位置
localhost testing123 //这⾥的testing123是密码
4) 编辑/etc/ppp/radius/dictionary ,修改⼀些路径设置,主要是最后⼀个dictionary.microsoft 的路径设置。
INCLUDE /etc/ppp/radiuds/dictionary.microsoft
5) 此时pppoe服务已经可以通过radius认证了。然后进⾏freeradius的配置。
其中freeradius-mysql包使⽤来让freeradius连接mysql数据库的,本部分还⽤不到。
⾸先打开/etc/f配置客户端访问控制,⽂件内容如下:
Client localhost {
Secret = testing123
Shortname = localhost
Nastype = other
}
表⽰客户端之允许从127.0.0.1的ip登录radius服务,并且需要验证的secret为testing123,就是在上⾯的servers⽂件中需要配置的信息。若要实现可以从别的机器访问,请参考注释获得帮助。
6)然后配置/etc/raddb/naslist⽂件,内容为:
# NAS Name Short Name Type
#portmaster1.isp pm1.NY
livingston
#portmaster2.isp pm1.LA
livingston
localhost local portslave
此⽂件⽤来配置记录有哪些指定的nas服务器需要使⽤radius进⾏记账。现在指定的是localhost。
7)主控配置⽂件是f,此⽂件主要是⽤来指定freeradius服务器默认的验证和记账⽅式。我们⽬前使⽤本地的⽂件⽅式,就
是/etc/raddb/users⽂件,在其中添加需要提供给pppoe服务认证的⽤户信息,内容如下(⽤户名前⾯⼀定不能有空格):
Aaa Auth-Type := Local, Simultaneous-Use := 1,User-Password:= "aaa"
[tab]Service-Type = Framed-User,
[tab]Framed-Protocol = PPP,
[tab]Framed-IP-Netmask = 255.255.255.255
其中Simultaneous-Use :=1字段⽤来设置每个⽤户同时登录的个数。
8) 为了让radius能正确地调⽤mysql,还要指定⼀下库的位置:
echo /usr/lib >> /etc/f
ldconfig
9) 都配置完毕后,可以通过radiusd -X命令以排错⽅式启动,此时再启动pppoe-server,⽤客户端拨号验证⼀下,检查pppoe服务是否成功通过freeradius来验证⽤户。如果成功,这⼀部分完成。可通过service radius restart来正常启动radius服务。
Radiusd -X
radtest aaa aaa localhost 0 testing123
看到 Access-Accept 之类的字样就表⽰成功了。这时可以正式启动radiusd。
5. 配置freeradius从mysql数据库读取⽤户信息
1.#mysql –u root –p 123 //登录mysql
2.>create database radius; //创建数据库
3.>exit //退出数据库
4.#cd /etc/raddb/sql/mysql
5.#mysql –u root –p radius < schema.sql //把表导⼊到数据库中,到数据库中查看是否导⼊7张表
6.修改/etc/raddb/sites-enabled/default⽂件,把authorize{}、accounting{}中的sql的注释#去掉,并把authorize{}中的files的注释#加上。如下所⽰:
Authorize{
Chap
Mschap
Suffix
Eap
#files
Sql
Pap
}
Accounting{
Detail
Unix
Redutmp
sql
}
7.修改mysql数据库连接的配置⽂件/etc/f
Server = “localhost”
Login = “root”
Password = “123”
Radius_db = “radius” //数据库名称
8.修改/etc/f⽂件:
将$f的注释#去掉即可。
9.在数据库中加⼊测试账号:
#mysql –u root –p 123
>use radius;
建⽴组信息:
>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’,’Feamed-IP-Address’,’:=’,’255.255.255.255’);
> insert into radgroupreply (groupname,attribute,op,value) values (’user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’);
建⽴⽤户信息:
> insert into radcheck (username,attribute,op,value) values (’test’,’User-Password’,’:=’,’110’);
将⽤户加⼊组中:
> insert into radusergroup (username,groupname) values (’test’,’user’);
>exit; //退出数据库
四、测试radius:
1.#radius –X //以检错⽅式启动radius服务
2.开另⼀个终端使⽤命令:
#radtest test 110 localhost 10 testing123 进⾏测试。
如果显⽰Access-Accept则表⽰安装成功。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论