利用radiusmanager实战搭建认证服务器(rm)

radius简介

RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是目前应用最广泛的AAA协议。

RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、 CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。

由于RADIUS协议简单明确,可扩充,因此得到了广泛应用,包括普通电话上网、ADSL上网、小区宽带上网、IP电话、VPDN(Virtual Private Dialup Networks,基于拨号用户的虚拟专用拨号网业务)、移动电话预付费等业务。最近IEEE提出了802.1x标准,这是一种基于端口的标准,用于对无线网络的接入认证,在认证时也采用RADIUS协议。

具体介绍请打开该链接http://hi.baidu.com/anyidea/blog/item/89239202987f11dd267fb526.html

radius搭建服务

我使用的radiusmanager3.9这个开源软件,需要注册花钱的一个软件软件,当然也有破解的。我利用的是破解的rm。

我的实验环境是centos 5.7 ,搭建认证服务,我们需要个web管理页面,所以请大家事先搭建好LNMP或者LAMP环境。我环境已经搭建好了。

好的,下面我们开始搭建rm认证!

1.安装centos 5.6,搭建lnmp环境。

 

2.改MAC、IP、GATEWAY、nameserver,关闭SELINUX,重启系统。

改MAC地址

/etc/rc.d/rc.sysinit

ifconfig eth0 down

ifconfig eth0 hw ether 00:D0:09:B8:B7:34

ifconfig eth0 up

配置IP地址,因为上面改了MAC地址,所以需要重启网络

重启网络

/etc/init.d/network restart

关闭SELINUX

/etc/sysconfig/selinux

SELINUX=disabled

重启系统

reboot

 

3.lnmp环境搭建完成,但是我们还是需要点环境

yum install compat-libstdc++-33 libtool-ltdl-devel -y

 

4.安装ionCUBE

安装ionCUBE

tar zxvf ioncube_loaders_lin_x86.tar.gz

cp -rf ioncube /usr/local/

显示php版本,记下版本为5.2

php  -v

PHP 5.2.17 (cli) (built: Sep 28 2011 22:08:39) 

修改php.ini,其中5.2和上步显示php版本一致。

vim  /usr/local/php/etc/php.ini  

zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so

php -m

重启nginx服务。

service nginx restart

 

5.FreeRadius安装及配置

FreeRadius安装

tar xvf freeradius-server-2.1.8-dmamod-1.tar.gz

cd freeradius-server-2.1.8

./configure

cp libltdl/ltdl.h src/include/

make

make install

ldconfig

文件所有者和权限配置

chmod 644 /usr/local/etc/raddb/dictionary

chown www /usr/local/etc/raddb

chown www /usr/local/etc/raddb/clients.conf

 

测试FreeRadius,显示Ready to process requests.

radiusd  -X

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /usr/local/var/run/radiusd/radiusd.sock

Listening on proxy address * port 1814

Ready to process requests.

 

6.建立MySql相关的数据库并作设置。

修改mysql配置文件sql.conf(可使用默认值)

vim /usr/local/etc/raddb/sql.conf                                    

# Connection info:

server = "localhost"

#port = 3306

login = "radius"

password = "radius123"

重启mysqld服务

/etc/init.d/mysql restart

创建相关数据库和连接数据库的用户

mysql -uroot -pmysql                                           

CREATE DATABASE radius;                                         

CREATE DATABASE conntrack;                                      

CREATE USER 'radius’@'localhost' IDENTIFIED BY 'radius123′;     

CREATE USER 'conntrack’@'localhost' IDENTIFIED BY 'conn123′;    

GRANT ALL ON radius.* TO radius@localhost;                      

GRANT ALL ON conntrack.* TO conntrack@localhost;                

exit                                                            

 

————————————————————————————

 

7.安装Radius Manager,在交互式安装模式下可全部使用默认选项,只有最后一步按y回车确认安装。

注意,我使用的是LNMP环境,我的web服务器是nginx,我的网页目录

是/home/wwwroot 在下面选项时,切忌这两点需要修改。

tar zxvf radiusmanager-3.9.0.tgz

cd radiusmanager-3.9.0-rel/

vim etc/radiusmanager.cfg

修改如下两行信息,如下显示。(可根据自己环境情况而定来修改)

db_sock                 /tmp/mysql.sock ; mysql main socket location

radman_path             /home/wwwroot/radiusmanager     ; Radius Manager full path

 

chmod  755  install.sh

./install.sh

如果报错,请查看具体错误信息,进行修改。

vim /home/wwwroot/radiusmanager/config/system_cfg.php

找到如下这行

define("radman_dir", "/var/www/html/radiusmanager"); 

修改为

define("radman_dir", "/home/wwwroot/radiusmanager"); 

vim  /usr/local/etc/raddb/sites-enabled/default

找到349行 将files注释掉

chmod 755 -R /home/wwwroot/radiusmanager/

 

————————————————————————————

 

8.注册radius manager

 

把注册相关文件复制到radiusmanager目录下,否则radius manager的rmpoller和rmconntrack服务不能启动。

cp mod.txt /home/wwwroot/radiusmanager/

cp lic.txt /home/wwwroot/radiusmanager/

cp mac.txt /home/wwwroot/radiusmanager/

9.配置radius manager

使rmscheduler.php每到午夜执行。

/etc/crontab

02 0 * * * root /usr/bin/php /home/wwwroot/radiusmanager/rmscheduler.php 12345     #使用12345

注意下面的12345是默认密码,可在system_cfg.php修改)

 

10.设置相关服务开机自动启动

通过rc.local脚本使用相关服务自动运行。

vim /etc/rc.local

/usr/local/sbin/radiusd

/usr/local/sbin/rmpoller

/sbin/service rmpoller start

/sbin/service rmconntrack start

这边为了方便,我就没有重启机器了,直接在命令行下,让以上服务启动。

 

11.测试

修改下admin用户的密码,因为3.8和3.9不一样,用户名和密码都发生了变化,我提供下3.8admin的md5加密密码,

b59c67bf196a4758191e42f76670ceba,请进入数据库radius修改表rm_managers的数据,将这段密码覆盖即可。

查看管理面板,默认用户名密码admin/1111

http://ip/radiusmanager/admin.php

添加新用户(测试用户user密码我并未修改),test/test

查看用户面板,使用用户名密码test/test

http://ip/radiusmanager/user.php

测试用户利用数据库验证

一个终端窗口启动FreeRadius Debug模式

radiusd  -X

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /usr/local/var/run/radiusd/radiusd.sock

Listening on proxy address * port 1814

Ready to process requests.

 

另一个终端窗口发请求认证报文,会得到

radtest user 1111 localhost 1812 testing123

能得到以下报文,则用户验证成功。

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=28, length=53

如上,rm认证服务器搭建完成。

 

修改myql数据库密码,需要修改以下三个文件。

/etc/radiusmanager.cfg

/var/www/html/radiusmanager/config/system_cfg.php

/usr/local/etc/raddb/sql.conf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章