[原创]CentOS下Radius服务器搭建
一、 实现环境:
1.系统:CentOS 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 ftp://ftp.samba.org/pub/ppp/ppp-2.4.5.tar.gz 下载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
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/radiuds/radiusclient.conf
logfile /var/log/pppd.log
表示让pppoe-server在运行时加入pppd的radius查检,可以让pppoe服务通过freeradius来验证和记账。 添加此行之后,可以创建/etc/ppp/radiuds/目录,创建完之后,需要使用一下ppp的源代码。 解压ppp的源代码目录:
#tar -xzf ppp-2.4.5.tar.gz
#cd ppp-2.4.5
#cd pppd/plugins/radius/etc/
#cp * /etc/ppp/radiuds/
2) 这个目录下有需要的所有相关的配置文件,其中最重要的是/etc/ppp/radiuds/radiusclient.conf,先打开此文件配置,其内容为(已去掉注释):
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/raddb/clients.conf配置客户端访问控制,文件内容如下:
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.com pm1.NY
livingston
#portmaster2.isp.com pm1.LA
livingston
localhost local portslave
此文件用来配置记录有哪些指定的nas服务器需要使用radius进行记账。现在指定的是localhost。
7)主控配置文件是radiusd.conf,此文件主要是用来指定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/ld.so.conf
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/raddb/sql.conf
Server = “localhost”
Login = “root”
Password = “123”
Radius_db = “radius” //数据库名称
8.修改/etc/raddb/radius.conf文件:
将$INCLUDE sql.conf的注释#去掉即可。
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则表示安装成功。
[原创]CentOS下Radius服务器搭建的更多相关文章
- centos 下git服务器搭建
准备 CentOS Linux release 7.0.1406 (Core) ssh 22端口 http 80端口 本文主要是ssh协议支持,http协议配置后还有问题. 摘抄的一段说明 SSH 协 ...
- 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...
- RHEL/Centos下VSFTPD服务器搭建
目的 Linux下安装配置vsfptd服务器,并通过客户端验证. 环境 Centos 6 局域网 内容 配置Vsftpd服务器:实现匿名用户.本地用户和虚拟用户登录的配置.匿名用户可以上载文件,上载后 ...
- RHEL/Centos下Sendmail服务器搭建
目的 Linux下配置Sendmail服务器,并通过客户端验证. 环境 Cento6 局域网(可访问互联网) 内容 配置Sendmail服务器,使得客户端能够通过foxmail或者outlook ex ...
- 阿里云(centos)下svn 服务器搭建
安装说明 系统环境:阿里云centos安装方式:yum install subversion 检查已安装版本 #检查是否安装了低版本的SVN[root@localhost /]# rpm -qa su ...
- CentOS下Web服务器环境搭建LNMP一键安装包
CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...
- (转)CentOS下用yum搭建LNMP服务器
原文链接:http://www.xiaohuai.com/2733 CentOS下搭服务器也折腾好几次了, 每次都知道个大概, 具体repo的地址什么的还都要现找, 实在不效率, 干脆整理记录下来. ...
- Linux centos7 下 svn 服务器搭建
摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...
- Windows下SVN服务器搭建方法整理(apache)
http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...
随机推荐
- hibernate的反转引擎生成两个实体类的问题
在使用myeclipse中自带的hibernate 进行jsp开发时候遇到了这个问题.使用hibernate的反转引擎从数据库生成生成实体类,一个表生成了两个类,xx.java和xxId.java . ...
- DataTable源码分析(二)
DataTable源码分析(二) ===================== DataTable函数分析 ---------------- DataTable作为整个插件的入口,完成了整个表格的数据初 ...
- c++中的namespace(附程序运行图)
实验于华中农业大学逸夫楼2017.3.10 namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越 来越细,全 ...
- onclick = xxx这种赋值写法绑定事件的原理是什么?
本文转自知乎貘吃馍香的回答 提问:刚入门不久,能力有限,这个问题我描述起来有点困难,只有劳烦各位大神细看了 我之前一直以为js底层存在类似下面这样的代码: //给所有dom对象定义好onclick值为 ...
- Coordinator节点
Coordinator节点 Coordinator 节点主要负责segment 的管理和分配.更具体的说,它同通过配置往historical 节点 load 或者 drop segment .Coo ...
- Java设计模式:生成器模式
问题的提出: 有些类很容易创建对象,直接调用其构造方法,例如Student student = new Student("1001","zhang",21); ...
- 商城项目实战 | 1.1 Android 仿京东商城底部布局的选择效果 —— Selector 选择器的实现
前言 本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 京东商城的底部布局的选择效果看上去很复杂,其实很简单,这主要是要 ...
- XtraBackup 原理与安装
简介 XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server ...
- phpcms添加视频
phpcms添加视频分为三种情况,一种是在首页播放,一种是在列表页播放,另一种是在内容页播放.其中在首页播放和在列表页播放的区别就是catid值是固定的还是取得当前catid的区别.而在首页和列表页播 ...
- win10用命令net启动服务没权限解决办法
法一.右击cmd命令图标,以管理员身份运行即可. 或者 法二.打开cmd命令的位置->右击属性->高级->勾上"以管理员身份运行"->确定.