新闻 重要资讯 专题 专家专栏 理论研究 分析报告 行业观察 学术会议 建设快车道 远程教育 基础网络 数字化校园 锐捷专栏
您所在的位置:EDU首页  >  教育信息化(旧)  >  基础网络  >  网络管理
Squid代理服务器的计费与流量控制
http://www.edu.cn   2006-10-10 中国教育网络 作者:尤国君 李杏姣
字体选择  【】 【】 【

4.启动MySQL服务。

使用下列命令启动MySQL服务

/etc/init.d/mysqld start

5.修改MySQL用户root的口令。

缺省MySQL的root用户没有口令,为了保证数据库安全,应该使用以下命令修改MySQL用户root的口令(本例设置口令为ygjalarm):

mysqladmin -u root password ygjalarm

第四步:安装和设置MySAR。

1.访问http://giannis.stoilis.gr/software/mysar,点击 “download”下载最新版的MySAR安装软件mysar-2.0.7.tar.gz。

2.使用命令tar zxvf mysar-2.0.7.tar.gz -C /usr/local将其解压到/usr/local目录中。

3.使用命令vi /usr/local/mysar/www/install/index.php打开安装向导的源文件index.php,在第70行插入语句“usr_iptables tinyint(1) unsigned NOT NULL default '0',”,创建usr_iptables字段用于判断用户是否已被限制访问服务器。

4.使用命令vi /etc/httpd/conf/httpd.conf打开httpd.conf配置文件,在配置文件的末尾添加语句“Alias /mysar/  "/usr/local/mysar/www/" ”设置虚拟目录,使虚拟目录指向MySAR目录中的www子目录。

5.使用命令/etc/init.d/httpd restart重启Apache服务器。如图1所示,通过访问http://服务器IP地址或域名/mysar/这一地址打开MySAR的安装向导,并依照向导提示完成MySAR的安装。

6.使用命令vi /usr/local/mysar/bin/mysar-importer.php打开mysar-importer.php文件(注:该文件的作用是读取Squid的日志文件/var/log/squid/access.log,并对日志进行分析,然后将相应的数据写入数据库中),并在103行插入如图2方框内的语句,用于判断访问的目的主机是否为网内主机(该处假设网内目的主机为IP地址192.168.*.*),如果为网内目的主机,则访问流量不进行统计。

7.使用命令vi /usr/local/mysar/etc/mysar.cron打开文件mysar.cron,并在文件末尾添加语句“01 1 * * *  root squid -k rotate”,使Squid的日志每天循环保存一次(注:由于MySAR是通过分析Squid日志的方法来统计流量的,如果日志文件太大会降低MySAR的运行效率,同时也可能使统计出错)。然后再使用命令crontab /usr/local/mysar/etc/mysar.cron设置自动作业,这时就可以通过访问http://服务器IP地址或域名/mysar/查看用户使用Squid代理服务器访问外网的情况了。

第五步:编写C程序用于执行iptables命令。

出于安全上的考虑,PHP程序默认情况下是不允许直接调用Linux系统命令的,因此通过该C程序来间接调用iptables命令可以在很大程度上保护服务器的安全。具体程序源代码如下。

#include <stdio.h>

#include <getopt.h>

#include <unistd.h>

int main(int argc ,char *argv[])

{int optch;

while( (optch = getopt( argc , argv , "ad" ) ) != -1 )/*分析命令行参数*/

{switch( optch )    {

case 'd':

execlp("iptables","iptables","-I","INPUT","-s",argv[2],"-j","DROP",(char *) 0 );

break;/*设置iptable规则,禁止用户访问服务器*/

case 'a':

execlp("iptables","iptables","-D","INPUT","-s",argv[2],"-j","DROP",(char *) 0 );

break;/*删除iptable规则*/

default:    printf("error \n");}    }}

1.编写完成后以.c为后缀名保存文件(本例文件名为uip.c),然后再分别使用gcc -c uip.c和make uip.o编译连接程序。

2.使用命令chmod u+s uip修改程序uip的执行权限,使PHP程序能够调用它。

第六步:编写PHP程序mysar.php用于管理代理用户。

该程序通过统计数据库中代理用户的流量数据判断是否超出限制,如果超出则调用c程序设置iptables规则,禁止用户访问代理服务器(需要具体代码的读者可和作者联系)。

使用体会

通过以上六个步骤的设置,解决了基于Linux系统代理服务器Squid的计费与流量控制。笔者所在单位应用该系统后,不仅有效掌握了用户的上网情况,而且实现了对大量占用网络带宽的用户的有效的控制。

页面功能 【打印】 【关闭】 【我有话说
延伸阅读
这个不显示的层是用来处理IE粑粑情况的,如果没有这个层IE里就会多出来一行字

 要 闻

热点新闻
建设快车道
中国教育和科研计算机网版权与免责声明

 

①凡本网未注明稿件来源的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:中国教育和科研计算机网",违者本网将依法追究责任。

 

②本网注明稿件来源为其他媒体的文/图等稿件均为转载稿,本网转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

版权所有:中国教育和科研计算机网网络中心 Copyright©1994-2008 CERNIC,CERNET 京ICP备020072

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com