📄 install.txt
字号:
首 页 中国教育 教育资源 科研发展 教育信息化 教育在线 CERNET 校园之窗
新闻 重要资讯 专题 专家专栏 理论研究 分析报告 行业观察 学术会议 建设快车道 远程教育 基础网络 数字化校园 教学产品
您所在的位置:EDU首页 > 教育信息化 > 基础网络 > 网络管理 Squid代理服务器的计费与流量控制
http://www.edu.cn 2006-10-10 中国教育网络 作者:尤国君 李杏姣 字体选择 【大】 【中】 【小】 最新推荐CANS’2007 中美高级网络技... 07-18 APAN学术会议通知 07-18
CERNET第十四届学术会议征文... 07-04 数字图书馆 改变每个人的生活 06-28
随着宽带网络用户数量的迅速膨胀,网络管理员通常面临IP地址缺乏、用户访问计费困难以及内部网络安全难于管理等一系列问题,而使用代理服务器是解决这些问题的有效方法之一。Squid以其权限管理灵活、性能高和效率快等特点成为Linux和UNIX平台下最为流行的高性能免费应用层代理服务器。但只有解决了该服务器软件本身不提供日志分析软件功能所带来的计费和流量控制等问题,才能提高其应用性能
实现思路
使用MySAR对Squid日志进行分析,将用户访问外网的记录保存在MySQL数据库中,然后利用所编写的程序,对用户的流量进行统计。当流量超过设置值时调用iptables防火墙,禁止用户再访问Squid服务器。
实现方法
第一步:安装和配置Squid服务(这里安装的系统版本均为Red Hat Enterprise Linux 4 Update 1,4张光盘分别简称为光盘1、光盘2、光盘3、光盘4)。
1.将光盘2放入光驱,加载光驱后,使用下面命令安装Squid:
rpm -ivh /media/cdrom/RedHat/RPMS/squid-2.5.STABLE6-3.4E.5.i386.rpm
2.先将Squid主配置文件/etc/squid/squid.conf复制为/etc/squid/squid.conf.bak,然后删除/etc/squid/squid.conf配置文件的原有内容,并加上下面这些语句,有了这些最基本的设置Squid就可以启动使用了。
http_port 192.168.1.8:8080
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 61.144.56.101
cache_access_log /var/log/squid/access.log #设置日志的保存路径和文件名
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
acl all src 0.0.0.0/0.0.0.0
http_access allow all
logfile_rotate 30 #设置循环保存日志文件的个数
3.使用命令/usr/sbin/squid -z建立硬盘缓冲区的缓存目录结构。
第二步:安装Apache和PHP解释器。
1.将光盘2放入光驱,加载光驱后,使用下面命令安装Apache服务:
rpm -ivh /media/cdrom/RedHat/RPMS/httpd-2.0.52-12.ent.i386.rpm
2.将光盘2放入光驱,加载光驱后,使用下面命令安装PHP解释器:
rpm -ivh /media/cdrom/RedHat/RPMS/php-4.3.9-3.6.i386.rpm
第三步:安装MySQL。
1.安装MySQL服务及相关程序。
将光盘4放入光驱,加载光驱后,使用下面命令安装MySQL服务及其相关程序:
rpm -ivh /media/cdrom/RedHat/RPMS/perl-DBD-MySQL-2.9004-3.1.i386.rpm
rpm -ivh /media/cdrom/RedHat/RPMS/mysql-server-4.1.10a-2.RHEL4.1.i386.rpm
rpm -ivh /media/cdrom/RedHat/RPMS/mysql-devel-4.1.10a-2.RHEL4.1.i386.rpm
2.安装MySQL客户端程序。
将光盘3放入光驱,加载光驱后,使用下面命令安装MySQL客户端程序:
rpm -ivh /media/cdrom/RedHat/RPMS/mysqlclient10-3.23.58-4.RHEL4.1.i386.rpm
3.安装PHP -MySQL支持包。
将光盘2放入光驱,加载光驱后,使用下面命令安装PHP -MySQL支持包:
rpm -ivh /media/cdrom/RedHat/RPMS/php-mysql-4.3.9-3.6.i386.rpm
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的计费与流量控制。笔者所在单位应用该系统后,不仅有效掌握了用户的上网情况,而且实现了对大量占用网络带宽的用户的有效的控制。
共2页 首页 上一页 1 2 下一页 尾页 转到第页 页面功能 【打印】 【关闭】 【我有话说】延伸阅读分类信息集团接入 个人接入 技术服务 数据中心 专业解决方案
赛尔毕博 拨号接入 信息服务 网络新校园 NIC服务
这个不显示的层是用来处理IE粑粑情况的,如果没有这个层IE里就会多出来一行字 要 闻下一代互联网
专家呼吁中国抓住互联网技术“换代”机遇
下一代互联网盛会在京开幕 欲打造中国"IETF"
让P2P为IPv6应用解“渴”
借IPv6东风完善国内互联网建设
IPv6发展迅速 将成为下一代网络核心技术
综述:IPv6的优势、演进方案和前景展望
热点新闻
联通与中国教育网合作升级开通波道服务
HP校园网应用:在升级的历练中成长
教育信息化建设关键在“用”
一个现代信息技术教育的新观念——全息教育观
发展研究:网络时代教育技术研究的必然选择
情感——网络教育中不可缺少的组成部分
建设快车道数字图书馆
家校通
多媒体教室
远程教育
校园一卡通
校校通
校园广播电视
教育信息化学术会议长江学者信息科学学术论坛6月6日召开
下一代互联网示范工程CNGI工程技术论坛6月召开
2007(第三届)教育行业信息安全大会暨校园网安全应急响应机制建设研讨会通知
2007中国教学仪器设备分会科研课题申报
第29届全国高教仪器展五月在哈尔滨开展
专题报道
2007年第三届教育行业信息安全大会
家校通:携手托起明天的太阳
中国教育和科研计算机网版权与免责声明
①凡本网未注明稿件来源的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:中国教育和科研计算机网",违者本网将依法追究责任。
②本网注明稿件来源为其他媒体的文/图等稿件均为转载稿,本网转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。 版权所有:中国教育和科研计算机网网络中心 Copyright?1994-2007 CERNIC,CERNET 京ICP备020072
关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -