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
本文出自 “幼��@童鞋” 博客,转载请与作者联系!