博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2754|回复: 1

Linux在校校通通工程中的应用

[复制链接]
发表于 2007-9-13 21:33:28 | 显示全部楼层 |阅读模式
【关键词】Linux 校校通 Web站点 反向代理 防火墙 网站过滤
【摘要】校校通工程中,由于经费紧缺,相当多的学校只能把有限的资金投放在校园网络硬件建设上,花在软件建设上的资金所占比例相当低,更不用说能把资金花在网络安全、网络监控上了。而基于免费的源码开放的Linux系统下,有很多优秀软件,能轻松实现代理上网、过滤控制、流量分析、网站日志分析、代理日志分析、邮件服务器等功能。

为加快在中小学普及信息技术教育的步伐,2000年教育部下发了《关于在中小学实施“校校通”工程的通知》,决定在中小学实施“校校通”工程,目标是:用5-10年时间,使全国90%左右的独立建制的中小学校能够上网,使中小学师生都能共享网上教育资源,提高中小学的教育教学质量。
作为发展中国家的的中国, Linux 与开放源码的自由软件应该是信息化的的重要武器。因为,使用自由软件将大大降低各项信息化建设的成本,使我们能化紧张而有限的资金去办更多的事,把有限的资金主要投放到配备合适的校园网络硬件建设上;同时,由于使用开放源码的自由软件,避免使用盗版软件所引发的版权纠纷;还可值此培养一批Linux爱好者,创设应用环境,提高应用水平,推动IT行业的发展。
校校通工程中,经济发达地区资金比较到位,但对于大多数的农村学校,资金紧缺仍然是困扰校校通的核心问题,由于经费紧张,相当多的学校只能把有限的资金投放在校园网络硬件建设上,花在软件建设上的资金所占比例相当低,更不用说能把资金花在网络安全、网络监控上了,所以现在很多已建的校园网或者是在建的校园网,都是属于“网络开通型”,即只担任网络开通的简单功能,而对网络安全、网络应用处还在低级水平上。当今互联网上资源泛滥,充赤着大量色情、暴力、反动内容的网站,学校应是一个重要的互联网有害信息“隔离保护区”,但由于很多校园网络没有投入资金(或者无资金)搞网络安全,使学校成了互联网有害信息的“重灾区”。互联网应用率最高的美国,都有相关制度要求学校安装互联网过滤软件,防止分辨能力不高的学生过早接触到不良信息而误入歧途。如何有效地规范学生的上网行为,尽最大努力屏蔽这些不良网站,把负面影响减少到最低,应该是在校校通工程中优先考虑的问题。
现市面上单机版的过滤软件只适合家庭使用,很难在信息点数量大的学校中推广,网络版的过滤软件价格不菲,一般学校无力购买。
而基于免费的源码开放的Linux系统下,有很多优秀软件,能轻松实现代理上网、过滤控制、流量分析、网站日志分析、代理日志分析、邮件服务器等功能。
下面是Linux在校校通工程中应用的几个应用案例:

一、 在RedHat下构建Web站点

随着RedHat发布其新版操作系统RedHat7,我们可以设置最新版的以Apache、mod_ssl、mod_perl、PHP、Mysql等开放源软件为核心的Web服务器。
? 使用如下开放源软件来构建该网站。
Apache 1.3.22
OpenSSL 0.9.6b
Mod_ssl 2.8.5 for Apache 1.3.22
MM 1.1.3 共享内存库
Mysql 3.23.43 开放源数据库软件
Mod_perl 1.26 用以替代传统的mod_cgi,加速PERL程序的运行速度。
PHP 4.0.6
PHP 3.0.18 注意: 使用2个版本是考虑到如果现有的网站既包含PHP 3程序也包含PHP 4程序,新版本的Apache可以同时支持2种PHP编译作为DSO。
ZendOptimizer 1.1.0 for PHP 4.0.x
安装步骤
1.下载所有必需软件到某个目录下;
2.解开各软件源文件包。
3.编译和安装OpenSSL。
4.编译并安装MM共享内存库。
5.编译mod_ssl。
6.修补Apache HARD_LIMIT (最大子进程限制)。
7.编译Apache,启动DSO支持。
8.安装Mysql数据库软件
9.编译PHP 4.0.6。
10.安装Zend Optimizer。
11.编译安装PHP 3.0.18,与安装PHP 4的编译步骤相同。最后编辑 /usr/local/apache/conf/httpd.conf文件。
12.编译安装mod_perl。
13.为mod_perl配置Apache的httpd.conf。
14.启动Apache。
15.测试PHP是否安装成功。

二、 利用反向代理保护WEB服务器

 ?随着互联网的普及,网络上的破坏者也随之增多,尤其是一些年轻的对黑客性质认识不足的电脑天才,为了展示自己的能力,疯狂地对因特网的的主机进行扫描,攻击,这给许多没有防火墙的WEB管理者带来了很多麻烦。本文提供了一种对WEB服务器进行保护的比较切实可行的方法,该方法的优点是安全性较好,软件零成本,安装调试容易。?
基本原理:
利用squid的反向代理功能,使因特网用户可以通过代理访问内部WEB服务器。
利用John Saunders的transproxy软件,实现对内部WEB服务器透明访问。
环境:
内部网络和外部网络已经建成。
内部网络为192.168.1.0;
外部网络为218.13.32.14;
DNS服务器一台(不可以和反向代理服务器用同一台),假设IP为218.13.32.3;
反向代理服务器一台;
内部WEB服务器两台,它们的IP为192.168.1.10 和 192.168.1.18,他们对应的域名分别应该是xxt1.net.cn 和 xxt2.netn;
外部可用IP为218.13.32.14, 218.13.32.15。
实施:
一、安装反向代理服务器
1.下载反向代理服务器软件采用squid;
2.解压代理服务器软件包;
3. 编译源程序 ;
4、 安装Squid代理服务器
二、调试反向代理服务器
  安装结束后就是调试服务器,使其按照您的要求工作。Squid的配置文件只有一个,在etc目录里,名字是squid.conf,所有的配置选项都在这个文件里面。而且每个配置项目都有注释说明。
三、调整DNS服务器设置
假设DNS服务器(以下称标准DNS服务器)将xxt1.net解析为218.13.32.14,将xxt2.net解析为218.13.32.15,那么我们在配置反向代理服务器这台机器的DNS服务时(我们以下称为内部DNS服务器),可以针对内部地址的WEB做如下变换:
主机名 标准DNS解析为 内部DNS解析为
www.xxt1.net 218.13.32.14 192.168.1.10
www.xxt2.net 218.13.32.15 192.168.1.18
然后把218.13.32.14和218.13.32.15这两个IP绑定到反向代理服务器上。
四、安装透明代理软件
透明代理服务器安装分如下几步:下载、解压、编译、安装、配置几步。首先需要到http://www.transproxy.nlc.net.au/transproxy-1.3.tgz下载transproxy软件包,也放在/usr/local/src目录里,然后用gzip解压该软件包。
解压后在/usr/local/src目录下面生成tproxy目录,里面是transproxy的源程序。 进入该目录,用make命令编译该软件,用make install命令安装transproxy。Transproxy的编译和安装都很简单,下面就需要配置transproxy。根据系统负荷的轻重不同,transproxy可以配置为两种运行方式:负荷轻时,用inetd方式,负荷重时,用standalone server方式。
五、设置转发规则
ipchains -A input -p tcp -d 218.13.32.14/255.255.255.255 80 -j REDIRECT 81
ipchains -A input -p tcp -d 218.13.32.15255.255.255.255 80 -j REDIRECT 81
这里将送往218.13.32.14和218.13.32.1580端口的所有http请求转发给由transproxy管理的端口81。
? 到此为止,透明反向代理配置完成了。
反向代理应用过程中,要注意访问控制功能,应该只允许访问你开放的内部服务器,而不允许访问其他服务器,否则,你的反向代理服务器就会成为互联网上一台公开的不用验证的代理服务器,那就危险啦。另外,如果您有多台WEB服务器,可以选一台性能较好的作为反向代理服务器,内部的若干WEB服务器可以用PC或低档服务器代替,因为外部的访问压力主要集中在反向代理服务器上。
  另外此方案如果和linux下面的防火墙方案结合使用会更加完美。

三、 quid+squidGuard,进行网站过滤

当今互联网上资源泛滥,充赤着大量色情、暴力、反动内容的网站,为防止分辨能力不高的学生过早接触到不良信息而误入歧途,在校教育城域网和校园网中必须安装网站过滤系统,规范学生的上网行为,尽最大努力屏蔽这些不良网站,把负面影响减少到最低。
1、代理服务器squid的配置
和上面一样,先启用squid,确保squid代理服务器能正常工作。修改/etc/squid/squid.conf配置文件。
http_port?3128?#定义squid监听HTTP客户端请求的端口
cache_mem?10 MB?#squid可以使用的内存理想值,一般设为物理内存的1/3。
Cache_swap_low?95
Cache_swap_low?90
Maximum_object_size 4096 KB?#大于该值对象将不被存储
Cache_dir?ufs?/var/spool/squid/cache 200 16 256?#指定squid用来存储对象的交换空间大小及其目录结构。
Acl all src 192.168.1.1/24?#定义all 为192.168.1.1网段。
http_acceaa allow all??#192.168.1.1 网段的客户端可以使用squid代理上网。
cache_effective_user?squid?#使用的用户和用户组
cache_effective_group?squid
 (其余参数用默认值即可!)
[root@squid bin]# chmod 777 /var/spool/squid/cache
(使/var/spool/squid/cache目录为noboay用户具有写权限)
[root@squid bin]# squid -z
??(手工建立squid的缓存目录/var/spool/squid/cache。)
[root@squid bin]# /etc/rc.d/init.d/squid start
(启动squid,停止squid用/etc/rc.d/init.d/squid?stop)
在客户端进行测试,以windows为例。运行IE,单击"工具",接着单击"Internet选项",再单击"连接"选项卡,单击"局域网设置";在"局域网设置"窗口中,在"地址"处填上squid服务器的IP地址192.168.1.16,在"端口"处填上"3128",确定后退出。此时客户端应能浏览Internet,说明squid已正常运行。
接下来进行的是网站过滤功能的配置。
2、安装Berkeley DB 2.xredhat7.2下可不安装,其他低版本的要安装)
http://www.sleepycat.com 下载db-2.7.7.tar.gz并存在/usr/local/squidGuard/src/目录下
#cd /usr/local/squidGuard/src/
#tar xvzf db-2.7.7.tar.gz
#cd db-2.7.7
#cd build_unix
#../dist/configure
#make
#make install
(默认安装到/usr/local/BerkeleyDB目录下)
注意:squidGuard不支持Berkeley DB 3.x版本
3、squidGuard的安装与配置
方法一:请到这里下载RPM版本的squidGuard-1.2.0-3.i386.rpm
ftp://k12linux.mesd.k12.or.us/pub/squidGuard/
#rpm –ivh?squidGuard-1.2.0-3.i386.rpm
(安装后数据目录dbhome: /var/squidGuard/blacklists
日志目录logdir:?/var/log/squidGuard)
按提示修改/etc/squid/squid.conf文件中的有关配置行:
redirect_program/usr/sbin/squidGuard–c etc/squid/squidGuard.conf
redirect_child? 5
重启squid,查看 /var/log/squidGuard/squidGuard.log,看最后一行:2002-05-23 16:13:18[2237] squidGuard ready for requests则表明squidGuard已正常运行。
本人在使用本版本的squidGuard增添数据时不成功,老说找不到.diff文件,但不影响原有数据库的运行。
方法二:请到这里下载tar 版本的squidguard.tar.gz,并存放到根目录下。
http://squidguard.mesd.k12.or.us/squidguard.tar.gz
#cd?/? (进入根目录)
#tar vzxf squidguard.tar.gz?
(解压缩文件到/usr/local/squidGuard 下,
数据目录dbhome:?/usr/local/squidGuard/db?
日志目录logdir:??/usr/local/squidGuard/log)
修改/etc/squid/squidGuard.conf配置文件:
redirect_program:/usr/local/bin/squidGuard–c?/etc/squid/squidGuard.conf
重启squid,查看/usr/local/squidGuard/log/squidGuard.log确保squidGuard已正常运行
试浏览一些不健康网站,若能被重定向到你所指定的网页,则说明过滤功能已起作用(把IE下“找不到服务器”时出现的页面设定为所重定向的页面,则客户端根本意识不到过滤功能在起作用!)。
本人在使用tar版本的squidGuard时能成功增减数据。进入到数据目录:/usr/local/squidGuard/db下的porn文件夹,新建一个domains.diff文件,内容是:
+newsite1???(把newsite1加入黑名单,不能访问)
+newsite2???(把newsite2加入黑名单,不能访问)
-site3?????(把site3从黑名单去掉,可以正常访问)
-site4?????(把site4从黑名单去掉,可以正常访问)
然后执行:#/usr/local/bin/squidGuard –c?/etc/squid/squidGuard.conf?-u
查看squidGuard.log文件,若有:
db update done
squidGuard stopped(102233.823)
表明数据更新成功!再重启squid即可.
本方法优点:配置方便,硬件要求低,一般退役下来的486、586完全能胜任,代理服务器可以长时间工作。且所有软件都是免费的,黑名单更新快,只需到http://www.squidGuard.org下载最新版本的黑名单数据库替换旧的即可,也可以手工增减黑名单,squid还可以设定上网时间段。定期检查日志,及时发现学生上网中存在的不良倾向,使用灵活方便。

四、 实用软盘防火墙

一、软件下载网址:http://www.zelow.no/floppyfw,请下载当前版本:floppyfw-current.img
硬件要求:最好准备二块型号不同的常见网卡,如8139,21143等
Directly supported network devices:
3com 3c509, 3c59x and 3c90x
NE2000 Compatible cards
Tulip based cards.
intel EtherExpress PCI-cards.
RealTek rt8139 and friends.
RealTek rt8139+ and friends.
AMD PCNet32 (which also is the adapter used in vmware)
Other Network devices is supported but you have to download and install the modules.
二、安装:
1、Linux系统下,把floppyfw-current.img下载到/root,在终端输入:
#mount?-t msdos?/dev/fd0?/mnt/floppy??(挂装软驱)
#dd?if=/root/ floppyfw-current.img?of=/dev/fd0
#umount?/mnt/floppy???(卸载软驱,这时才真正把文件写入软盘).
2、Windows系统下,先从Linux光碟中找到MS-DOS版本的Rawrite.exe文件,运行该文件,当询问源文件路径时,则输入floppyfw-current.img文件的绝对路径(假设为d:\downloads\)后回车,再询问目标路径时,输入A:即可。
三、配置:其实质是利用iptables做防火墙,并提供NAT功能,使得内网机器能对外提供服务。
1、安装好的软盘文件是fat格式的,可在windows下打开,请用记事本或写字板打开config配置文件,修改有关设定,firewall服务器网关设定为防火墙的IP
2、测试,在提示符下ping?内外网卡,再ping网关。
3、客户端的设置,设定网关IP为防火墙的内部网卡IP
4、备份:
方法一:A盘复制,使用A盘备份,但安全系数不高。
方法二:硬盘备份,使用HD,先读出A盘内容到硬盘,设文件名为floppyfw.img,下次恢复时,再用HD先读取floppyfw.img文件,再写入A盘即可.
四、使用:用A盘启动成功后,会出现提示符:#,试ping 内网与外网,若通,则可带内网段上网了。
发表于 2007-9-14 05:59:49 | 显示全部楼层
不错,看LINUX应用了吧。比WIN强多了。
看了案例就要自己实际体验一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2026-5-16 14:28 , Processed in 0.095420 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表