【IT168 资讯】 "网速真是慢死了",估计这是很多上网朋友都说过的一句话,甚至很多人都骂过街了。但让我们都去增加网络带宽,这势必给我们带来财力上的损耗,谁都不乐意了。信维国际评测室今天给大家带来全面的解决方案----Cache服务器的应用。说到Cache服务器,我们就得先了解代理服务器,代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。我们说简单点吧,代理服务器就是网络信息的中转站。在一般情况下,我们都是使用网络浏览器直接去连接访问其他Internet站点取得网络信息,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。而代理服务器是介于浏览器和Web服务器之间的一台中间服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给我们的电脑。
信维国际评测室今天为大家介绍的Cache服务器就是代理服务器中的一种,它为什么可以提高我们的网速,提高我们的工作和学习效率。相信大家都知道内存就有Cache,甚至有一级,二级,三级,因为处理器从Cache读取数据的速度比其它地方和硬盘要快上N倍都不止。Cache服务器也一样,它就是利用服务器的缓存功能,它有很大的存储空间,它可以从网络上不断的将用户访问的新数据储存到本地的存储器,如果后来网内其它用户再来访问这些站点,浏览器就可以不再从internet上去读取数据,直接访问我们的Cache服务器的本地存储器就ok,而且这样的局域网式访问速度肯定比我们去访问internet要快很多,同时这样可以节省很多网络带宽,从而显著提高整个网络用户的网络速度,提高整个局域网的工作效率。
还有一好处就是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层,从而起到防火墙的作用。
讲完了Cache服务器的优点后,我们再来看看配置一台Cache服务器到底需要什么样的硬件配置。其实Cache并不属于高端服务器,所以其对硬件的要求也不是太高,满足两个条件我们便可以配置一台性能优越的Cache服务器,首先是大容量内存,再就是大的存储器。其它的能满足一般配置就ok。
主板比较难一句话说清楚,下面我们以今天要做评测的华硕Z8NR-D12为类来了解一下,首先来看这款主板共有12条插槽,最高支持内存容量可达98GB,这对于我们一般中小企业来说,应该完全可以满足要求;存储器方面,Z8NR-D12供提供了6个SATAII接口和8个SAS接口,同时可以配合华硕专有的PIKE卡做多种磁盘阵列,这也可以很好的支持。(图1)
华硕Z8NR-D12主板
满足了两个最重要的要求,其它的就好说了,简单介绍一下,该主板两个芯片组分别是英特尔5500和ICH10R,可以配置两个LGA -1366处理器,包含板载Aspeed AST2050显卡,2个Intel 82574L千兆网络接口,3个电源接口,24-pin SSI电源接口 + 8-pin SSI 12V + 8-pin SSI 12V电源接口, 1 个管理接口: 板载接针支持选购的管理卡,3 个 USB接口,8 个4-pin的风扇接口,2 个SMBus接口,1个机箱开启检测接口,2 个前置LAN LED指示灯接口,1个串口接针。
啰嗦了很多,下面正式进入服务器配置阶段,本次服务器的配置所选系统为RedHat Enterprise Linux Server 5.2,Cache服务器配置软件为目前在代理服务器界最被认可的Squid,Squid是一款流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为多人共享网络资源而缓存的万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid的发展历史相当悠久,功能也相当完善。除了HTTP外,对于FTP与HTTPS的支援也相当好,在3.0 测试版中也支持了IPv6。
下面开始配置,首先安装配置软件Squid,因为Linux下软件有多种格式,而每种格式文件的安装方法也不一样,关于这些Linux知识,笔者就不多说了。安装完成后,检查Squid的版本,在这里跟大家说明的是笔者本次配置的软件为RedHat系统本身自带的。(图2)
确定Squid安装成功后,再来配置网卡,先来配置内网网卡 用vi编辑 vi /etc/sysconfig/network-scripts/ifcfg-eth1配置文件如下图:(图3)
再来配置外网网卡eth0,大多人习惯把外网也配置成固定模式,但是笔者此次测试外网网卡不做手动配置,用自动分配。如下图:(图4)
用ifconfig -a看所有网卡配置信息,如下图:(图5)
首先搭建squid代理服务器,接下来要对Squid的运行进行配置。所有项目都在squid.conf中完成。Squid自带的squid.conf包括非常详尽的说明,相当于一篇用户手册,不过那时一大堆英文,相信很多朋友和我一样,不会看得很明白,只是必要时或对配置有疑问时用来参照解决。
#vi /etc/squid/squid.conf
对于初步接触Squid的朋友来说,我们不要像网上那样一大堆,先来做个最简单,增强一些信心和满足一下自己的好奇心,因为像这样的调试程序的过程一般都比较麻烦,经常会把人搞得云里来雾里去的,所以先来这一步是有必要的。因为squid.conf里德内容比较多,一项一项的去找来修改,很麻烦的,所以我们直接在squid.conf里加入以下内容:
http_port 3128
acl all src 0.0.0.0/0.0.0.0
cache_mgr surmanai@trusme.com.cn
cache_dir ufs /var/spool/squid 100 16 256
cache_mem 32 MB
cache_swap_low 90
cache_swap_high 95
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log
cache_effective_user squid
http_access allow all
接下来,用squid -z初始化squid,用service squid start 启动squid服务器,接下来再在用户端设定固定ip和代理服务器就可以网上冲浪了。是不是很简单哦。
第一步成功了,接下来应该就比较有信心了,就是需要什么样的功能就在里面增加相应的编程命令就ok,具体结合下面实例来看。(图6)
根据上面的编程语言,它是规定了在某些时间段某些网段IP可以上网,某些不可以上网,某些网站被禁止访问,某些格式文件禁止下载等。其实这些加起来专业点就叫squid的访问控制,使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。 Squid 访问控制有两个要素:ACL 元素和 访问列表。访问列表可以允许或拒绝某些用户对此服务的访问。acl选项的格式:
acl列表名称 列表类型 [-i] 列表值
列表名称:用于区分Squid的各个访问控制列表,任何两个访问控制列表不能用相同的列表名。虽然列表名称可以随便定义,但为了避免以后不知道这条列表是干什么用的,应尽量使用有意义的名称,如badurl、clientip和work time等。
列表类型:是可被Squid识别的类别。Squid支持的控制类别很多,可以通过IP地址、主机名、MAC地址和用户/密码认证等识别用户,也可以通过域名、域后缀、文件类型、IP地址、端口和URL匹配等控制用户的访问,还可以使用时间区间对用户进行管理
-i选项:表示忽略列表值的大小写,否则Squid是区分大小写的。
列表值:针对不同的类型,列表值的内容是不同的。例如,对于类型为src或dst,列表值的内容是某台主机的IP地址或子网地址;对于类型为time,列表值的内容是时间;对于类型为srcdomain和dstdomain,列表值的内容是DNS域名。
Squid会针对客户HTTP请求检查http_access规则, 定义访问控制列表后,就使用http_access选项根据访问控制列表允许或禁止访问。该选项的基本格式为:
http_access [allow | deny] 访问控制列表名称
- [allow | deny]:定义允许(allow)或禁止(deny)访问控制列表定义的内容。
- 访问控制列表名称:需要http_access控制的ACL名称。
下面看具体实例:
【例1】禁止IP地址为192.168.0.2的客户机上网。
acl badclientip1 src 192.168.0.2
http_access deny badclientip1
【例2】禁止192.168.0.0这个子网里所有的客户机上网。
acl badclientnet1 src 192.168.0.0/255.255.255.0
http_access deny badclientnet1
【例3】禁止用户访问IP地址为210.21.118.68的网站。
acl badsrvip1 dst 210.21.118.68
http_access deny badsrvip1
【例4】禁止用户访问域名为www.qq.com的网站。
acl baddomain1 dstdomain -i www.qq.com
http_access deny baddomain1
【例5】禁止用户访问域名包含有sina.com的网站。
acl badurl1 url_regex -i sina.com
http_access deny badurl1
【例6】禁止用户访问域名包含有sex关键字的URL。
acl badurl2 url_regex -i sex
http_access deny badurl2
【例7】限制IP地址为192.168.0.3的客户机并发最大连接数为5。
acl clientip1 src 192.168.0.3
acl conn5 maxconn 5
http_access deny client1 conn1
【例8】禁止192.168.0.0这个子网里所有的客户机在周一到周五的9:00到18:00上网。
acl clientnet1 src 192.168.0.0/255.255.255.0
acl worktime time MTWHF 9:00-18:00
http_access deny clientnet1 worktime
【例9】禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件。
acl badfile1 urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$
http_access deny badfile1
【例10】禁止QQ通过Squid代理上网。
acl qq url_regex -i tencent.com
http_access deny qq
我们来测试几条命令或者说小方案:以下几条是说明周一到周五1点到14点禁止网内0.11到0.200网段电脑上网,禁止网内电脑上网时下载mp3格式文件,最后一句被注射掉了,其意思是允许周一到周五在1:00到1:06和1:07到19:00时段期间,网段0.2到0.10用户可以上网。以上时间为笔者测试时随便编的,没逻辑性,希望大家不要介意。(图7)
以下命令是squid的基本配置,第一行是服务器管理者的电子邮件,当错误发生时,该地址会显示在错误页面上,便于用户联系,下面这些参数告诉Squid缓存的文件系统、位置和缓存策略,在这里,Squid会将/var/spool/squid目录作为保存缓存数据的目录,每次处理的缓存大小是32兆字节,当缓存空间使用达到95%时,新的内容将取代旧的而不直接添加到目录中,直到空间又下降到90%才停止这一活动。下面的几个关于缓存的策略配置中,较主要的是第一行,即用户的访问记录,可以通过分析它来了解所有用户访问的详尽地址,可以监控哦。(图8)
以上这些就可以实现Cache服务器了,看起来有点乱吧,下面有必要对squid.conf做一下总结:
#服务器配置
http_port 3128
cache_mgr surmanai@trusme.com.cn
cache_dir ufs /var/spool/squid 100 16 256
cache_mem 32 MB
cache_swap_low 90
cache_swap_high 95
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log
cache_effective_user squid
# 用户分类
acl normal proxy_auth REQUIED
# 行为分类
acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$
acl conncount maxconn 3
acl worktime time MTWHF 8:30-12:00 14:00-18:00
acl sinapage dstdomain sinapage4.sina.com.cn
acl qq dstdomain .tencent.com.cn
# 处理
http_access deny conncount normal
http_access deny !worktime
http_access deny mmxfile
http_access deny sinapage
http_access deny qq
http_access allow normal
信维评测室总结:
总体来说,Cache服务器可以完成两项大的功能:代理共享上网和客户端代理权限管理。在局域网内我们只需要配置一台这样的服务器,其他电脑就可以通过这台机器来代理共享上网,最大程度的减少了硬件费用和宽带费用。管理员还可以在Cache代理服务器里进行各种管理设置,这样可以方便的管理网内的所有用户规范上网。在提高员工工作效率和企业信息安全管理方面,Cache同样充当了非常重要的角色。
通过Cache代理服务器可以实现代理浏览网页,代理收发电子邮件,代理QQ通讯等,最重要的是它有缓存功能,能在不需要增加带宽的情况下,有效的提高局域网内的上网速度。Cache代理服务器提供的强大代理上网权限管理功能,这些功能概括起来有:控制局域网用户的代理上网权限,多达7种控制方式:IP地址,IP段,MAC地址,用户名/密码,IP+用户名/密码,MAC +用户名/密码,IP +MAC;控制用户的共享代理上网时间,可以使有些用户只能在非工作时间代理上网,而同时又可以让有些用户能全天候代理上网;对不同用户开放不同的代理上网功能;可以使有些用户只能浏览网页,有些用户只能代理收发邮件,而同时有些用户则能使用所有代理服务器提供的上网功能;可以给不同用户分配不同带宽,控制其代理上网速度和所占用的带宽资源,可以有效的控制有些用户因为下载文件而影响其他用户代理上网的现象,还可以统计每个用户每天的代理上网网络总流量;可以给不同用户设置网站过滤,特别可以保护青少年远离不健康网站;同时强大的日志功能可以有效的监视局域网代理上网记录。这些功能对于规范局域网的网络环境是非常实用的。
总之,Cache代理服务器非常适合于一些组织和企事业单位。无论是政府机关部门,大中小公司,学校,或是网吧,Cache代理服务器都是实现其理想网络的明智选择。