服务器 频道

华硕Z8NR-D12做Cache服务器应用评测

  啰嗦了很多,下面正式进入服务器配置阶段,本次服务器的配置所选系统为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

0
相关文章