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基本安装完毕。

三、安装配置RouterOS

1. 安装RouterOS

i. 版本的选择:网络上的RouterOS版本是在是太多了,大家可以根据自己的需求选择需要使用的版本,在这里我选择了RouterOS3.22_L6_Registed这个版本,解压缩之后得到一个ISO文件,大家可以将ISO文件刻录成光盘用于启动安装RouterOS。

ii. 从光盘启动后如下图界面选择第一项安装RouterOS到硬盘上。

clip_image001[5]

iii. 根据需要选择组件,我的选择如下图所示。按“i”键开始安装。

clip_image003[4]

iv. 回车重启后设置为还是从光驱启动选择第二项进行破解。破解完成之后计算机将重新启动(适计算机配置不同破解的时间不同,我的机器只需要5分钟左右即可)。

 

2. 配置IP地址

i. 破解成功并且登陆后输入用户名:admin 密码为,空如下图所示。

ii. 使用以下命令输入查看IP地址:ip address print

iii. 当然IP地址为空,因为我们还没有设置,使用如下命令进行配置IP地址

#设置ether1网卡接口IP地址
ip address add interface=ether1 address=192.168.1.2/24
#查看网卡接口IP地址
ip address print
#测试IP地址配置的网卡接口对不对,因为有双网卡我们先尝试随意配置一块网卡IP地址如果可以ping通网关192.168.1.1说明接口正确,如果不能ping通就更换IP地址到另一个接口上。很明显,如图我的网卡地址不通说明配置错误,更换一个接口测试一下。
ping 192.168.1.1

clip_image004

#删除网卡IP地址
ip address remove 0
ip address print
#重新为另一块网卡设置IP地址测试连通性
ip address add interface=ether2 address=192.168.1.2/24
ip address print
ping 192.168.1.1
#配置默认网关
setup
#按a
#再按g
#网关输入192.168.1.1
#按两次x保存退出

clip_image005

iv. 打开浏览器浏览地址:http://192.168.1.2,下载图形化的管理工具

clip_image006

3. 通过图形工具连接进行配置

i. 通过图形工具连接并且上传授权文件,如图所示选择:system—license。点击Import Key按钮导入授权文件,如图

clip_image007

clip_image008

clip_image009

ii. 重新启动后为另一个网卡配置IP地址,按照拓扑地址应该为:172.16.1.1/16

选择IP—address如图添加另一块网卡的IP地址

clip_image010

clip_image011

iii. 添加Radius服务器,点击Radius菜单如图设置

clip_image012

clip_image013

iv. 设置RouterOS使用hotspot认证方式到RadiusManager服务器进行身份认证。选择IP—hotspot点击hotspot setup

选择需要认证的接口

clip_image014

需要地址转换的接口ip地址(一般默认即可)

clip_image015

其他步骤一路默认即可,同事创建了一个用户名为admin密码为空的测试账号,测试完成后请将其删除。

选择Server profiles标签页,双击编辑hsprof1配置文件如图进行设置

clip_image016

clip_image017

clip_image018

删除默认用户admin,选择users标签页删除admin即可

v. 至此RouterOS基本配置完成。

你可能感兴趣的:(manager,职场,休闲,radius,routeros)