Linux -- 代理服务器(Squid Server)的配置与应用2

代理客户端的配置

本节分别以Linux和Windows系统环境下典型的Web浏览器Firefox和IE为例,为大家讲述代理客户端的配置工作过程。

16.5.1  Firefox代理设置

在Linux环境下通常都使用Firefox作为Web浏览器。下面我们就以在Red Hat Enterprise Linux 5 操作系统中的Firefox V1.5.0.9为例,讲解如何进行代理客户端的配置工作。

在Firefox浏览器中,选择"编辑"菜单中的"首选项"子菜单,如图16-24所示。

在弹出的"Firfox首选项"对话框中,在"常规"属性页中单击"连接设置"按钮,如图16-25所示。

在弹出的"连接设置"对话框中,我们选中"手动代理配置"选项,然后在"HTTP代理"文本框中输入正确的代理服务器的IP地址和端口号。如果还想通过代理服务器使用SSL、FTP、Gopher和SOCKS协议,则可以选中"为所有协议使用相同代理"复选框,最后单击"确定"按钮完成代理客户端的配置工作,如图16-26所示。

 

 

IE代理设置

在Windows环境下通常都使用IE作为默认的Web浏览器。下面就以配置Windows XP系统的IE 7.0为例,讲解如何进行代理客户端的配置工作。

打开IE浏览器,选择"工具"菜单中的"Internet选项"子菜单,如图16-27所示。

在弹出的"Internet选项"对话框中,选择"连接"属性页,单击"局域网设置"按钮,如图16-28所示。

在弹出的"局域网(LAN)设置"对话框中,首先勾选"为LAN使用代理服务器(这些设置不会应用于拨号或VPN连接)"复选框,然后在"地址"文本框中输入正确的代理服务器的IP地址,在"端口"文本框中输入正确的代理服务器的端口号。如果还想通过代理服务器使用SSL、FTP、Gopher和SOCKS等协议,则可以单击"高级"按钮,如图16-29所示。

在弹出的"代理服务器设置"对话框中,我们首先去掉已经勾选的"对所有协议均使用相同的代理服务器"复选框,然后根据各个协议代理服务器的配置情况,正确地填写相应的代理服务器地址和访问端口,最后单击"确定"按钮完成代理客户端的配置工作。

访问控制应用实例

通过前几节的学习,我们应该对Squid代理服务从理论上有了一定的认识,接下来通过应用实例的学习,希望能够使大家对Squid代理服务有一个更为深入的理解。在学习实例之前有必要强调一下,Squid访问控制列表是顺序读取的,应将配置文件squid.conf中的以下两个规则始终放置在acl语句的最后,否则这两条规则会覆盖其他的acl语句。

acl all src 0.0.0.0/0.0.0.0http_access deny all

同样的道理,当配置文件中配置多条访问控制规则时,必须注意其顺序,避免规则相互覆盖或屏蔽。另外,每次修改完配置文件后,若想使修改后的规则生效就必须重新载入配置文件,即运行命令"/etc/rc.d/init.d/squidreload"。

【实例一】禁止IP地址为192.168.1.102的客户机上网。

我们可以定义如下规则实现上述要求:

acl badclientip src 192.168.1.102http_access deny badclientip

该规则定义了一条名为badclientip的acl,acl类型为src源IP地址方式,列表值为192.168.1.102,然后使用http_access参数禁止badclientip规则。也就是在IP地址为192.168.1.102的客户机通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,该终端客户访问Internet资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息,如图16-31所示。

【实例二】禁止IP地址属于192.168.1.0这个子网的所有客户机上网。

我们可以定义如下规则实现上述要求:

acl badclientsubnet src 192.168.1.0/24http_access deny badclientsubnet

该规则定义了一条名为badclientsubnet的acl,acl类型为src源IP地址方式,列表值为192.168.1.0/24,然后使用http_access参数禁止badclientsubnet规则。也就是在IP地址为192.168.1.0子网的客户机通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,当前定义子网的终端客户访问Internet资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息。

【实例三】禁止所有终端用户访问IP地址为64.233.189.99(www.google.com)的网站。

我们可以定义如下规则实现上述要求:

acl badserverip dst 64.233.189.99http_access deny badserverip

该规则定义了一条名为badserverip的acl,acl类型为dst目标IP地址方式,列表值为64.233.189.99,然后使用http_access参数禁止badserverip规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,当前所有终端客户访问IP地址为64.233.189.99的服务器资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息。

【实例四】禁止所有终端用户访问域名为www.google.com的网站。

我们可以定义如下规则实现上述要求:

acl baddomain dstdomain -i http_access deny dstdomain

该规则定义了一条名为baddomain的acl,acl类型为dstdomain目标域名方式,列表值为www.google.com,然后使用http_access参数禁止baddomain规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,当前所有终端客户访问域名为www.google.com的服务器的Web资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息。但需要大家注意的是,这个限制规则仅对google.com域的WWW服务进行了限制,而对于Mail服务等并未限制。

【实例五】禁止所有终端用户访问域名包含为google.com的网站。

我们可以定义如下规则实现上述要求:

acl badurl url_regex -i google.comhttp_access deny badurl

该规则定义了一条名为badurl的acl,acl类型为url_regex URL规则表达式匹配方式,列表值为google.com,然后使用http_access参数禁止badurl规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,当前所有终端客户访问服务器的URL中含有google.com的所有资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息。例如,www.abc.com/google/test.indexwww.google.com、mail.google.com等URL均被拦截。

【实例六】限制IP地址为192.168.1.102的客户机并发连接的最大连接数为5。

我们可以定义如下规则实现上述要求:

acl clientip src 192.168.1.102acl clientmaxconn maxconn 5http_access deny clientip clientmaxconn

上述规则定义了一条名为clientip的acl,该acl类型为src源地址方式,列表值为192.168.1.102;还定义了一条名为clientmaxconn的acl,该acl类型为maxconn单一IP的最大连接数方式,列表值为5,然后使用http_access参数禁止clientip、clientmaxconn规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,终端用户通过IP地址为192.168.1.102的客户机同时访问Internet资源的线程数不能超过5。这样可以防止特定客户开太多线程而占用服务器资源和带宽。

【实例七】禁止客户机IP地址在192.168.2.0子网的所有终端客户在星期一到星期五的9:00到18:00访问Internet资源。

我们可以定义如下几条规则实现上述要求:

acl clientnet src 192.168.2.0/24acl worktime time MTWHF 9:00-18:00http_access deny clientnet worktime

上述规则定义了一条名为clientnet的acl,该acl类型为src源地址方式,列表值为192.168.2.0/24;还定义了一条名为worktime的acl,该acl类型为time时间段方式,列表值为MTWHF 9:00-18:00,然后使用http_access参数禁止clientnet、worktime规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,终端用户通过IP地址属于192.168.2.0网段的所有客户机不能在星期一到星期五的9:00到18:00期间访问Internet资源。

【实例八】禁止终端用户在任何客户机上下载文件扩展名为mp3、exe、zip和rar类型的文件。

我们可以定义如下规则实现上述要求:

acl badfile urlpath_regex -i \\.mp3$ \\.exe$ \\.zip$ \\.rar$http_access deny badfile

该规则定义了一条名为badfile的acl,该acl类型为urlpath_regex略去协议和主机名的URL规则表达式匹配方式,列表值为\\.mp3$ \\.exe$ \\.zip$ \\.rar$;同时使用-i参数是为了忽略列表值大小写的检查,然后使用http_access参数禁止badfile规则。也就是在终端用户通过Squid代理服务上网的模式下,由于Squid服务器增加了如上规则,所有终端客户访问服务器的URL中以mp3、exe、zip和rar结尾的所有资源的请求将会被拦截,终端客户的Web浏览器中会显示拒绝访问的错误提示信息。例如,http://www.abc.com/google/test.mp3http://www.cqit.edu.cn/cs/123.ziphttp://www.cqit.edu.cn/cs/siyanzhidao. rar等URL均被拦截。

 Squid日志管理

网络流量日志分析对于网络管理员来说非常重要。通过系统记载的流量日志,管理员可以清楚地看到用户对网络服务器的使用情况,能够从中挖掘及发现网络中可能存在的安全问题。

在Linux下有许多日志及流量分析软件。Webalizer是一个高效、免费的Web服务器日志分析程序,其官方站点为http://www.webalizer.org/,如图16-32所示。Webalizer分析结果以HTML文件格式保存,从而可以很方便地通过Web服务器进行浏览。Internet上的很多站点都使用Webalizer进行Web服务器日志分析。本节将以对Red Hat Enterprise Linux 5下的代理服务器Squid的流量日志分析为例,详细地介绍如何使用该软件进行流量分析。

Webalizer具有以下一些特性:

用C语言编写的程序,所以该系统具有很高的运行效率。在主频为1.6GHz的机器上,Webalizer每秒钟可以分析70000条记录,也就是说,分析一个200MB大小的日志文件只需要30秒。

Webalizer支持标准的一般日志文件格式(Common LogfileFormat);除此之外,也支持几种NCSA的组合日志格式(CombinedLogfile Format)的变种,从而可以统计客户情况及操作系统类型。现在Webalizer已经可以支持wu-ftpd/proftpd xferlog日志格式及Squid代理服务器日志文件格式了。

支持命令行配置及配置文件。

支持多种语言,也可以自己进行本地化工作。

支持多种平台,比如UNIX、Linux、NT、OS/2和Mac OS等。

安装Webalizer

1.源代码安装方式

Webalizer的安装过程如下:

访问Webalizer的下载地址http://www.webalizer.org/download.html,如图16-33所示,单击"The Completesource distribution"栏目中的"Tar/Gziparchive"超链接下载"webalizer-2.20-01-src.tgz"安装文件,当前最新的稳定版本为2.20-01,文件大小为525KB。

RPM包安装方式

以RPM包方式安装Webalizer的过程如下:

可以使用下面的命令检查系统是否已经安装了Webalizer,如图16-34所示。

[[email protected] ~]#rpm -qa|grep webalizer

如果当前系统还未安装Webalizer,则需要在Red HatEnterprise Linux 5的安装盘中找到并安装以下RPM包文件:

webalizer-2.01_10-11.i386.rpm  (位于第2张安装盘中)

要安装上述RPM包文件,可以将Red HatEnterprise Linux 5的安装盘放入光驱,加载光驱后在光盘的Server目录下找到相应的RPM安装包文件,然后使用rpm -ivh命令安装。

[[email protected] ~]# rpm -ivh webalizer-2.01_10-11.i386.rpm

配置Webalizer

我们可以通过命令行配置Webalizer,也可以通过配置文件进行配置。下面将重点介绍使用配置文件进行配置,该方法使用形式比较直观,使用比较普遍。

Webalizer的配置文件的路径是"/etc/webalizer.conf",它有一个对应的模板文件/etc/webalizer.conf.sample。在一般情况下,该配置文件的默认参数配置都能满足一定的应用需要,可以直接使用。接下来以实例的方式给大家介绍如何配置该文件。

使用vi编辑Webalizer配置文件。

Squid日志管理知识

Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。在网络环境下,本地网络管理员经常可以通过Squid来代理访问互联网上的很多资源,因而对其进行日志审核和管理具有重大意义。

Squid日志管理的功能比较强大。通过查看相关日志文件,用户可以实时、准确地了解代理服务器的访问记录、Cache的存储状况、Cache的访问记录等许多有用的信息,从而高效地对代理服务器进行管理。

Squid最重要的日志文件就是访问日志,其访问路径为"/var/log/squid/access.log"。该日志文件记录了客户使用代理服务器的许多有用信息,包括使用时间、请求的内容、客户端信息等。该文件的格式如下:

time eclapsed remotehost code/status bytes 
method URL rfc931 peerstatus /peerhost type

下面给出了实际应用中的一段真实的访问日志,只取出了其中的一部分。

#cd /var/log/squid
#cat access.log
1119263842.955 195 192.168.10.3 TCP_MISS/200
1286 GET . cn/sina/ae/ad_src/
popup/pops1.html? - DIRECT/218.30.108.19 text/html
1119263843.241 286 192.168.10.3 TCP_MISS/200 
44689 GET . cn/200506/15/
21135_300x250.GIF - DIRECT/218.30.108.18 image/gif

以第一条日志记录为例,其各个字段的含义如下:

客户访问代理服务器的时间为1119263842.955毫秒;处理缓存所花费的时间为195毫秒;客户端的IP地址为192.168.10.3,为内网地址;结果信息编码/状态信息编码为TCP_MISS/200;缓存字节数为1286;HTTP请求方法为GET;访问的目的地址的URL为:http://ad4.sina.com.cn/sina/ae/ad_src/popup/pops1.html;缓存级别/目的IP地址为:DIRECT/218.30.108.19;缓存对象类型为text/html;rfc913暂未使用,用"-"表示。

在上述的10个字段当中,结果信息编码及状态信息编码比较重要,其表明了代理服务器对于客户请求的信息的返回结果,与代理服务器的Cache命中率及Cache处理过程有直接关系。该信息能够真实地反映代理服务器的Cache的整体性能,具有较大的参考价值。

应用Webalizer查看Squid网络流量日志

Webalizer可以将大量的Squid日志信息综合起来进行统计,得出可视化的显示结果供网络管理员或者网络用户进行参考和评价Squid服务器的使用情况,对于做出相应的决策有相当的参考价值。

在使用过程中需要注意:由于该软件的使用结果都是通过Web页面来显示的,所以与Web服务器的联系比较紧密。下面给出该软件结合Squid服务器的使用示例。在通常情况下,配置好该软件之后,启动Web服务器(只有启动该服务器才能通过Web页面来查看日志统计的详细情况)和该软件即可。

[[email protected] ~]# service httpd start
[[email protected] ~]# /usr/sbin/webalizer -c /etc/webalizer.conf

启动Apache服务及该软件后,就可以通过浏览器来查看Squid代理服务器的流量分析结果了。在IE浏览器的地址栏中输入Apache服务器的地址:http://192.168.1.101/usage,则得到如图16-35所示的结果。

图16-35中给出了流量分析的示意图及一些数据说明,可以通过单击图中"Summary by Month"表格的"Jul 2005"超链接,来显示更详细的统计分析数据。通过分析和查看这些统计图表的结果,用户可以清楚地知道Squid代理服务器使用的细节情况,并可以根据显示情况来对服务器做出适当的调整和优化。

使用Webalizer还有一个需要注意的问题是:通常并不需要每个用户都有权限来查看代理服务器的流量情况,否则对于系统来说是不安全的。非法用户为了掩盖自己非法使用代理服务器的目的,可以对流量统计情况的结果进行修改、删除等操作。所以,我们需要使用访问控制策略来对上述分析图表的查看权限进行控制,可以在Apache的主配置文件/etc/htpd/conf/httpd.conf中进行认证和授权配置,如下所示:

< Directory "/var/www/html/usage"> 
//使用基本认证方式 
AuthType Basic 
//指定认证域名称 
AuthName "admin" 
//指定认证口令文件存放的位置 
AuthUserFile /var/www/passwd/admin 
//授权给认证口令文件中的所有用户 
require valid-user 
< /Directory>

认证和授权配置成功后,需要创建认证口令文件及添加用户。

[[email protected] ~]# mkdir /var/www/passwd
[[email protected] ~]# cd /var/www/passwd
[[email protected] passwd]# htpasswd -C admin jackiee
New password: 
Re-type new password: 
Adding passwor for user jackiee

然后,将口令文件的属主改为apache,并重新启动Apache。

[[email protected] ~]# chown apache.apache admin 
[[email protected] ~]# service httpd restart

经过上面的配置后,用户在IE地址栏内输入路径http://192.168.1.101/usage后,具有认证和授权的用户才能通过用户认证界面,查看Squid代理服务器的流量分析报表信息。

参考:http://book.51cto.com/art/200904/119292.htm

时间: 2024-10-07 11:47:05

Linux -- 代理服务器(Squid Server)的配置与应用2的相关文章

Linux代理服务器—squid正向代理实验

1.代理服务器squid简介 Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网.Squid主要设计用于在Unix一类系统运行. squid可以做代理也可以做缓存. squid不仅可以做正向代理,又可以做反向代理. 正向代理

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面)

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面): 既然要用 eclipse 可视环境下开发,那首先要安装图形界面喽!!! 对开发者来说,个人认为 linux 选择界面优先选择顺序:Awesome(性能最好) > Xfce4 > gnome > unity-2d //////////////////////////////////////////////// 首先

在Linux中samba server的配置

1.查看是否安装samba服务 # rpm –qa |grep samba 2.若没安装,则安 # yum install samba 执行4次此命令 3.查看安装的samba文件 #rpm–qa |grep samba 4.改动配置文件 # vim /etc/samba/smb.conf 注意: A: 做匿名訪问sambaserver--改动例如以下: a)     security =share b)     [public]中的 path=/home /hsx----------改动路径

Linux -- 代理服务器(Squid Server)的配置与应用1

一.代理服务器的配置与应用 随着Internet的迅速发展,宽带网络接入量快速增多,Internet终端用户数迅速膨胀,网络管理员面临的问题越来越多,问题也越来越严重,如IP资源匮乏.用户访问计费.内部网络安全等一系列问题.面临如此多的问题,我们迫切需要一个行之有效的方案应对,这个方案就是我们本章要重点学习的代理服务器.本章将介绍代理服务器的基本概念.工作原理.配置和使用方法等. 二. 代理服务器概述 在我们工作.生活和学习的这个社会环境中,代理服务是一种大家所熟知的服务形式,普遍存在于各个领域

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

Linux下Squid正向/反向代理配置

Squid是一个支持HTTP, HTTPS, FTP的web缓存代理,它能通过缓存和反复使用频繁访问的网页来减少带宽.提高响应速度.Squid被广泛用于访问控制和做前端加速,它能运行在大部分操作系统平台上,Squid能减少服务器的压力,提高客户端的响应速度,其高级的内容路由配置允许建立集群和负载均衡来处理各种WEB请求,3.2及之后的版本基本都已支持SMP和多CPU 应用场景: 1.正向代理 Squid被数以百计的网络提供商用来为他们的用户提供最好的网页访问,为了提升性能和常用内容来减少带宽sq

CentOS 6.4下Squid代理服务器的安装与配置

一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPH

squid代理服务器的安装和配置

CentOS 6.4下Squid代理服务器的安装与配置 一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速

Squid Linux 代理服务器

简介: Squid 是 Linux/Unix 平台下最为流行的高性能免费应用层代理服务器,它具有权限管理灵活.性能高和效率快的特点. 代理服务器可以提供文件缓存.复制和地址过滤等服务,充分利用有限的出口带宽,加快内部主机的访问速度. 同时可以作为一个防火墙,隔离内外网,并且能够提供监控网络和记录传输信息的功能,加强局域网的安全性. 代理服务器工作原理: 1.客户端 A 向代理服务器发出访问 Internet 的请求 . 2.代理服务器接受请求后,首先与访问控制列表中的访问规则相匹配,如果满足规则