Radius Manager 计费系统基本安装手册
Linux 系统准备
Redhat, Fedora
在开始安装Radius Manager之前,要确保一些必要的软件安装到您的linux主机上.
1. 安装 mysql development libraries, curl, php-mysql, C++ library for GCC 3.3 和 libtool-ltdldevel:
[root@localhost]# yum install mysql-devel
[root@localhost]# yum install curl
[root@localhost]# yum install php-mysql
[root@localhost]# yum install compat-libstdc++-33
[root@localhost]# yum install libtool-ltdl-devel
2. 在/etc/sysconfig/selinux文件中设置SeLinux为禁止.
SELINUX=disabled
Debian, Ubuntu
如果您准备在Debian(linux)上安装该系统,请先安装如下程序.
Mysql development libraries, perl, curl, php-curl, php-mysql, C++ library for GCC 3.3 和libtool-ltdl-devel:
Nano /etc/apt/sources.list
[root@localhost]# apt-get -y install mysql-common mysql-server mysql-server-5.0
[root@localhost]# apt-get -y install libmysqlclient15-dev
[root@localhost]# apt-get -y install libperl-dev
[root@localhost]# apt-get -y install curl
[root@localhost]# apt-get -y install php5-mysql
[root@localhost]# apt-get -y install php5-curl
[root@localhost]# apt-get -y install libstdc++5
[root@localhost]# apt-get -y install apache2
[root@localhost]# apt-get -y install libapache2-mod-php5 php5-cli php5-common php5-cgi
[root@localhost]# apt-get -y install phpmyadmin
[root@localhost]# apt-get -y install build-essential
[root@localhost]# apt-get -y install mc zip unzip bzip2 screen vim rsync traceroute ftp lynx
在debian和类似的Linux系统上,您可以随意的用不同的顺序启动radius,rmpoller进程.您可以将如下语句加如/etc/rc.local中用于启动时运行该服务.个人建议这两句话等到最后再加进该文件里吧.在运行/usr/local/bin/rmpoller的时候如果您的/etc/radiusmanager.cfg里mysql部分错误就不会住的提醒您(在后面有详细的说明)
/usr/local/sbin/radiusd
/usr/local/bin/rmpoller
exit 0
安装 ionCube组件
由于radiusmanager采用了加密的php代码,所以我们必须安装ioncube去解密该php文件.在debian下的ioncube安装稍微麻烦一点,但是感觉还是比较简单的.首先从http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz 下载该文件.大家可以到如上网站去选择适合自己操作系统的版本.我保存在了/root/目录下:
解压并复制得到的ioncube目录到/usr/local/目录下.
radius:~# ls
ioncube_loaders_lin_x86.tar.gz
radius:~#tar zxvf ioncube_loaders_lin_x86.tar.gz
radius:~#cp -rf ioncube /usr/local/
编辑/etc/php5/apache2/conf.d/ioncube.ini文件,增加一行.如下.因为我安装的是php5.2如果您安装的是php4,那么请选择相应的版本.
radius:~#nano /etc/php5/apache2/conf.d/ioncube.ini
内容如下:
zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so
重启apache2,检查该模块是否加载.在输出的最后,可以看到 ioncube已经加载.
radius:~#php -m
….
….
….
….
…..
[Zend Modules]
the ionCube PHP Loader
安装FreeRadius
请选择freeradius 1.1.7,问为什么?本文只针对该版本而写.我事先下在了我个人ftp上面.然后通过ftp的命令行模式得到了该文件.解压,配置,编译,安装.
radius:~# tar zxvf freeradius-1.1.7.tar.gz
radius:~# cd freeradius-1.1.7
radius:~/freeradius-1.1.7# ./configure
radius:~/freeradius-1.1.7# make
radius:~/freeradius-1.1.7#make install
请先确认mysql-devel 已经被正确安装,默认情况下FreeRadius会安装在/usr/local目录下.
radius:~#chmod 644 /usr/local/etc/raddb/dictionary
运行测试 radiusd –x 检查输出结果是否正确.类似如下:
radius:~# radiusd -x
…
Listeni
ng on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
编辑各配置文件
编辑/usr/local/etc/raddb/clients.conf文件,在结尾部分增加如下内容,换行的部分请用tab来留空.
client 0.0.0.0/0 {
secret = testing123
shortname = private-network
}
编辑/usr/local/etc/raddb/sql.conf文件,修改数据库的相关配置.
# Connect info
server = “localhost”
login = “radius”
password = “radius123″
# Database table configuration
radius_db = “radius”
继续编辑该文件,找到如下部分,去掉各行前面的#号,再次强调,千万记得使用TAB来留空,而不是使用空格.
# Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = “SELECT COUNT(*)
FROM ${acct_table1}
WHERE UserName=’%{SQL-User-Name}’
AND AcctStopTime = 0″
编辑 /usr/local/etc/raddb/radiusd.conf 文件,去掉如下三项前面的#号
# See “Authorization Queries” in sql.conf
sql
# See “Accounting queries” in sql.conf
sql
##
See “Simultaneous Use Checking Querie” in sql.conf
sql
继续寻找到下面位置在radutmp前面加上备注符号#,去掉mysql前面的#
session {
# radutmp
##
See “Simultaneous Use Checking Querie” in sql.conf
sql
}
关闭accounting部分里的如下三项,防止磁盘空间不够存放日志文件.
# detail
# unix
# radutmp
在/usr/local/etc/raddb/users文件里插入2行,(留空请用TAB),记得,下面是2行.
DEFAULT Auth-Type = Local
Exec-Program-Wait=”/usr/local/bin/rmauth “%{NAS-IP-Address}” “%{User-Name}” “%{Calling-Station-Id}”"
在/usr/local/etc/raddb/acct_users增加如下6句, (留空请用TAB)
DEFAULT Acct-Status-Type == Interim-Update
Exec-Program-Wait = “/usr/local/bin/rmacnt %{Acct-Session-Id}”
DEFAULT Acct-Status-Type == Start
Exec-Program-Wait = “/usr/local/bin/rmacnt %{Acct-Session-Id}”
DEFAULT Acct-Status-Type == Stop
Exec-Program-Wait = “/usr/local/bin/rmacnt %{Acct-Session-Id}”
创建数据库
修改mysql的默认root用户密码,我们刚才安装了mysql5数据库,而且没做任何修改密码的操作.那么默认root密码为空.
radius:~#mysql -uroot -pxxxxxx (xxx为你刚才设置的密码)
mysql> create user ‘conntrack’@localhost identified by ‘conn123′;
mysql> create user ‘radius’@localhost identified by ‘radius123′;
mysql> create database radius;
mysql> create database conntrack;
mysql>GRANT ALL PRIVILEGES ON conntrack . * TO conntrack@’localhost’;
mysql>GRANT ALL PRIVILEGES ON conntrack . * TO conntrack@’localhost’;
然后在phpmyadmin里为radius和conntrack用户分别管理radius和conntrack数据的权限.
具体操作也很简单.我相信所有玩过linux/unix的朋友都会….然后分别使用radius和conntrack帐户去登陆phpmyadmin查看是否可以登陆,是否可以看到刚才授权的2个数据库.
安装radiusmanager管理程序
下载radiusmanager-3.3.0-pro-rel.tgz文件,解压.
radius:~# mkdir /var/www/html/
radius:~# tar zxvf radiusmanager-3.3.0-pro-rel.tgz
radius:~# cd radiusmanager-3.3.0-pro-rel
radius:~/radiusmanager-3.3.0-pro-rel# chmod 755 install.sh
radius:~/radiusmanager-3.3.0-pro-rel# ./install.sh
然后就开始了安装过程.
Radius Manager installer version 3.3.0
Copyright 2004-2008, DMA Softlab LLC
All right reserved.
(Use CTRL+C to abort any time)
Select installation type:
1. New installation
2. Upgrade old system
3. Exit
Choose a
n option: [1]
Choose an option: [1] 1
Selected installation method: NEW INSTALL
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 existing RADIUS database!
Are You sure to start installation? [n] y
Starting installation process…
Backing up radiusmanager.cfg
Backing up system_cfg.php
Backing up paypal_cfg.php
…
Installation finished!
检查输出结果,查看是否有任何报错.如果没有,进行下一步的操作.
radius:~#crontab -e
增加如下语句,用于定时执行文档..
02 0 * * * root /usr/bin/php /var/www/html/radiusmanager/rmscheduler.php 12345
然后在/var/www/html/radiusmanager/目录下建立一个lic.txt文件,内容就是我们的授权.经过测试3.5.0的授权变化了,需要2个文件,分别是mod.txt和lic.txt(我都有了!需要的话请联系15221240492)
radius:~#nano /var/www/html/radiusmanager/lic.txt
同时我们手动执行一次该语句,如没有任何显示.说明我们的lic.txt文件和网卡mac的相关信息是正确无误的.(记得上面的修改网卡mac么?)
radius:~# /usr/bin/php /var/www/html/radiusmanager/rmscheduler.php 12345
修改/etc/rc.local文件增加启动项目
/usr/local/sbin/radiusd
/usr/local/bin/rmpoller
exit 0
启动radius –x模式,用于测试
radius:~# radiusd -x
…
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
新开一个终端,输入命令测试:
radius:~# radtest user 1111 localhost 1812 testing123
Sending Access-Request of id 251 to 127.0.0.1 port 1812
User-Name = “user”
User-Password = “1111″
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=251, length=50
WISPr-Bandwidth-Max-Up = 262144
WISPr-Bandwidth-Max-Down = 262144
Acct-Interim-Interval = 60
如果看到Access-Accept说明我们的配置正确了.一旦显示的是别的结果那么请检如下部分,确认配置文件等是否有错误.
mysql数据库是否在运行
是否创建了raidus数据库和conntrack数据库
上述2数据库是够建立了对应的帐号
上述2帐号的权限.
请再下检查下面的各部分配置,尤其是那些我标注需要使用TAB键留空的部分,和mysql权限赋予的部分.我开始在这里走了不少弯路,好在及时的找到了原因.
修改/etc/radiusmanager.cfg文件,修改下面的这句,因为debian下的mysql运行产生的sock文件在/var/run/mysqld/目录下面.
db_sock /var/run/mysqld/mysqld.sock
为了保险起见.输入下面的命令给各文件合适的属性
[radius:~# chmod 755 /usr/local/bin/rmauth
radius:~# chmod 755 /usr/local/bin/rmacnt
radius:~# chmod 755 /usr/local/bin/rmpoller
radius:~# chmod 600 /etc/radiusmanager.cfg
radius:~# chmod 755 /usr/local/bin/rmconntrack
需要注意的是rmconntrack这个文件我在3.3.0版本的radiusmanager目录下的bin文件夹里没找到该文件.但是查看了3.5.0版本里是存在该文件的,于是我复制了一个该文件进去.感觉在3.3版本里这文件应该是不需要.但是3.3的官方手册里提到了这句.朋友们可以测试一下.
重启下机器,开一终端测试一下:
radius:~# rmauth 192.168.0.7 user 1
Mikrotik-Rate-Limit=”262144/262144″
说明rmauth认证模块已经工作.如若报错,请仔细检查各部分配置.
radius:~# chmod 4755 /usr/local/sbin/rootexec
给/var/www/html/radiusmanager/目录适当权限.我比较偷懒.也没太注重安全性,测试而已.
radius:~# chmod -R 777 /var/www/html/radiusmanager/
通过浏览器访问
http://yourhostip/html/radiusmanager/admin.php
默认用户
admin
默认密码
1111