1. 我经常会告诉各位,兵马未动粮草先行的重要性,一定在动手之前先要构建拓扑,按照拓扑实施才会思路明确。
2. 该拓扑使用微软visio2010构建。以下操作通过Routeros和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进行浏览 |
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
iii. 选择NAS菜单下的列出NAS选项,如图所示进行修改。(密钥可以根据需求自己修改,主要是为了和RouterOS进行连接时使用,如果这里更改了,那么RouterOS中对应步骤也需要更改)
至此RadiusManager基本安装完毕。