RouterOS+RadiusManager3.8实现互联进行认证计费(一)

一、拓扑介绍(试验成功的关键是对拓扑的了解)

1. 我经常会告诉各位,兵马未动粮草先行的重要性,一定在动手之前先要构建拓扑,按照拓扑实施才会思路明确。

2. 该拓扑使用微软visio2010构建。以下操作通过Routeros和RadiusManager对接实现校园网络流量管理。

小拓扑

二、安装配置RadiusManager

1. 安装操作系统

i. RadiusManager是一套基于web可管理Radius服务器的程序,需要使用PHP环境运行,并且必须安装在Linux操作系统上才行。在这里我们选择了CentOS5这款RHEL5的再编译操作系统。Linux操作系统的安装在这里不做冗述,请参见其他文章进行安装。(当然,其他Linux发行版也可用,目前我只测试过Debian、RHEL和CentOS可以正常运行)

ii. 更改IP地址,执行setup进行设置即可,设置完成之后执行:

service network restart指令使网卡ip设置生效。

iii. 更改系统默认运行级别和默认语言

# vi /etc/sysconfig/i18n #更改系统默认语言为英文
LANG="en_US"
# vim /etc/inittab
id:3:initdefault: #找到类似内容更改为3,使Linux默认工作在文本模式
# reboot #重启系统让更改生效

2. 添加YUM源,实现在线yum安装php5.2

#安装GPG密钥
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
#添加源实现yum安装php5.2。请注意:用系统默认php5.1是不行的。
# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

3. 使用YUM安装必须软件

#安装RadiusManager所需RPM包,目前发现PHP5.2可以正常工作,PHP5.1中症状为访问RadiusManager页面为空白页。
# yum install gcc php mysql mysql-server mysql-devel php-mysql php-mcrypt curl php-curl compat-libstdc++-33 libtool-ltdl-devel httpd
#启动MySQL服务并且设置密码保证安全性
# service mysqld start
#设置MySQL数据库密码为123456(请按自己的需求修改切记!!)
# mysqladmin -u root password '123456'

4. 安装ionCube

i. 可以到:http://www.dmasoftlab.com/downloads下载ionCube,该组件为使PHP可以解密加密过的文件,因为RadiusManager程序是加密过的,该组件为关键组件请确保安装无误。

#解压缩下载的软件包
# tar -zxvf ioncube_loaders_lin_x86.tar.gz
# cp -r ioncube /usr/local/
#修改PHP配置文件
# vi /etc/php.ini
zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so
# php -v
#如果输出的最后几行类似于下面内容则证明配置正确ionCube已经安装成功
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with the ionCube PHP Loader v3.1.31, Copyright (c) 2002-2007, by ionCube Ltd.

5. 编译安装FreeRadius

i. 可以到http://www.dmasoftlab.com/downloads下载FreeRadius2.1.8(请注意版本,其他版本我未尝试是否可安装成功)。

#解压缩下载的软件包
# tar -zxvf freeradius-server-2.1.8-dmamod-2.tar.gz
#请记住一点编译四步走,这是我的私藏秘籍:1,编译一定要进入源码目录中(我的人生中只见到在做LFS的时候有过一次编译不许进入源码目录的时候)。2,执行预编译:./configure 3,执行编译:make 4,执行安装make install 其实Linux编译安装是非常简单的。
# cd freeradius-server-2.1.8
#预编译生成Makefile
# ./configure
#编译生成2进制文件
# make
#拷贝2进制文件和配置文件到他们该去的地方
# make install
#测试FreeRadius是否工作正常,红色字体表示安装正常
# 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.
#修改权限
# chown apache /usr/local/etc/raddb
# chown apache /usr/local/etc/raddb/clients.conf
#修改FreeRadius配置文件和MySQL数据库结合工作
# vi /usr/local/etc/raddb/sql.conf
#按如下内容进行修改(用户名和密码可以自定义,但是之后的用户名和密码也需要按需修改才行)
# Connection info:
server = "localhost"
#port = 3306
login = "radius" #访问MySQL时的用户名
password = "radius123" 访问MySQL时使用的密码

6. 修改网卡MAC地址

i. 修改MAC地址的用意是因为我手头的RadiusManager是别人购买好的版本,RadiusManager是根据MAC地址授权用户的。我只需要将自己的MAC地址更改为已授权即可了

ii. 查看网卡MAC地址:(如需购买正版RadiusManager应该将该MAC地址递交获取授权文件)

# ifconfig
#红色字体为本地网卡的MAC地址我们要修改其为已授权网卡MAC地址
eth0 Link encap:Ethernet HWaddr 00:0C:29:6A:68:2F
inet addr:172.16.4.10 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe6a:682f/64 Scope:Link

iii. 修改网卡MAC地址:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
#将自动识别到的MAC地址注释,按照我的软件修改MAC地址。MACADDR为更改MAC地址的配置选项,请根据实际情况修改MAC地址
#HWADDR=00:0c:29:6a:68:2f
MACADDR=00:50:11:22:33:44

ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.3
TYPE=Ethernet
GATEWAY=192.168.1.1
#更改MAC地址之后重新启动计算机
# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]

7. 安装RadiusManager

i. 配置MySQL为RadiusManager创建MySQL帐号

#登陆MySQL服务器进行用户创建(注意:-p之后紧跟数据库管理员密码,无空格)
# mysql -u root -p123456
mysql>CREATE DATABASE radius;
mysql>CREATE DATABASE conntrack;
#CREATE USER后紧跟的为MySQL帐号用户名,IDENTIFIED BY之后紧跟的为密码
mysql>CREATE USER 'radius'@'localhost' IDENTIFIED BY 'radius123';
mysql>CREATE USER 'conntrack'@'localhost' IDENTIFIED BY 'conn123';
mysql>GRANT ALL ON radius.* TO radius@localhost;
mysql>GRANT ALL ON conntrack.* TO conntrack@localhost;

ii. 解压缩RadiusManager

# tar -zxvf radiusmanager-3.8.0.tgz

iii. 开始安装RadiusManager

# cd radiusmanager-3.8.0-rel
# chmod 755 install.sh
# ./install.sh
#提示信息如下几乎一路回车即可,只是在最后输入一个“y”
Radius Manager installer
Copyright 2004-2010, DMA Softlab LLC
All right reserved.
(Use CTRL+C to abort any time)
Select the type of your operating system:
1. Redhat (Fedora, CentOS etc.)
2. Debian (Ubuntu etc.)
Choose an option: [1]
Select installation type:
1. New installation
2. Upgrade old system
Choose an option: [1]
Choose an option: [1] 1
Selected installation method: NEW INSTALLATION
WWW root path: [/var/www/html]
RADIUS database host: [localhost]
RADIUS database username: [radius]
RADIUS database password: [radius123]
CTS database host: [localhost]
CTS database username: [conntrack]
CTS database password: [conn123]
Freeradius UNIX user: [root]
Httpd UNIX user: [apache]
Create rmpoller service: [y]
Create rmconntrack service: [y]
Create database backup: [y]
WARNING! If You continue You will overwrite the existing RADIUS database!
Are You sure to start the installation? [n] y
#开始安装的提示信息
Starting installation process...
Backing up radiusmanager.cfg
Backing up system_cfg.php
Backing up netcash_cfg.php
Backing up paypal_cfg.php
Backing up authorizenet_cfg.php
Backing up dps_cfg.php
Copying web content to /var/www/html/radiusmanager
Copying binaries to /usr/local/bin
Copying rootexec to /usr/local/sbin
Copying radiusmanager.cfg to /etc
Creating database backup
Creating mysql tables
Creating rmpoller service
Creating rmconntrack service
Copying logrotate script
Setting permission on raddb files
Copying radiusd init script to /etc/init.d
Installation finished!

iv. 更改任务计划

# vi /etc/crontab
#在任务计划末尾增加如下内容,如需修改密码请查看system_cfg.php
02 0 * * * root /usr/bin/php /var/www/html/radiusmanager/rmscheduler.php 12345
#拷贝授权文件到RadiusManager安装目录中
# cp /root/lic/lic.txt /var/www/html/radiusmanager
# cp /root/lic/mod.txt /var/www/html/radiusmanager
#更改Apache的配置文件如下(注意:是修改不是增加)
# vi /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html/radiusmanager”
DirectoryIndex index.html index.html.var user.php
#重启Apache使配置生效
# service httpd restart
# service mysqld restart
#打开浏览器,在地址栏中输入:
http://192.168.1.3即可浏览。如果浏览白屏请确认几件事情:

1就是php是否安装版本为5.2。
2. ionCube那个步骤测试是否正常。
3.你的授权文件lic.txt和mod.txt是否复制到了RadiusManager安装目录中。
4.你的浏览器字符集是不是不对,尝试使用UTF-8进行浏览

clip_image003[4]

v. 进行测试

# 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
#返回如下内容为正常
Sending Access-Request of id 57 to 127.0.0.1 port 1812
User-Name = "user"
User-Password = "1111"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=57, length=50
WISPr-Bandwidth-Max-Up = 262144
WISPr-Bandwidth-Max-Down = 262144
Acct-Interim-Interval = 60
#执行如下语句关闭Freeradius
# service radiusd stop

8. 修改php.ini优化日志输出

#如果你仔细观察Apache的错误日志会发现一些错误提示,不用担心这是因为PHP默认对于日志筛选的安全级别设置过低造成的,并不是错误,只需要按如下内容修改就可以避免看到该死的错误日志。
# vi /etc/php.ini
#找到error_reporting选项修改如下。
error_reporting = E_ERROR | E_WARNING | E_PARSE
#重启Apache服务
# service httpd restart

9. 尝试登陆RadiusManager配置NAS支持RouterOS

i. 打开浏览器:http://192.168.1.3/admin.php

ii. 默认帐号:admin 密码:1111

clip_image004

iii. 选择NAS菜单下的列出NAS选项,如图所示进行修改。(密钥可以根据需求自己修改,主要是为了和RouterOS进行连接时使用,如果这里更改了,那么RouterOS中对应步骤也需要更改)

clip_image005

至此RadiusManager基本安装完毕。

RadiusManager3.8最新下载地址(自解压)

你可能感兴趣的:(mysql,PHP,linux,centos,Zend)