作为一种免费的网络操作系统,Linux越来越受到广大网络爱好者的欢迎,目前Internet上运行的主机有相当一部分采用的就是Linux,而且中国已经把Linux作为政府上网的指定网络操作系统。种种迹象表明,Linux正在逐渐走向成熟。
为了解决Internet发展迅速和IP地址资源紧张的矛盾,代理服务器的使用越来越广泛。Squid是一种在Linux系统下使用的比较优秀的代理服务器软件。
代理服务
代理服务是指由一台拥有标准IP地址的机器代替若干没有标准IP地址的机器和Internet上的其它主机打交道,提供代理服务的这台机器称为代理服务器。拥有内部地址的机器想连接到Internet上时,先把这个请求发给拥有标准IP地址的代理服务器,由代理服务器把这个请求通过它的标准IP地址发到请求的目的地址。然后目标地址的服务器把返回的结果发回给代理服务器,代理服务器再原封不动的把资料发给内部主机。若干拥有内部地址的机器就组成了内部网,代理服务器的作用就是沟通内部网和Internet,解决内部网访问Internet的问题。这种代理事不可逆的,Internet上的主机不能访问任何一台拥有内部地址的机器,这样又可以保障内部资料的安全性。
代理软件的一个优点是它能够检验除了数据包之外的许多东西。Squid对数据包的有效载荷进行检验,也就是穿越防火墙的数据包中TCP(或者UDP)部分所占地份量。根据数据包报头(数据包中的IP部分)和数据包有效载荷(TCP部分)的信息,代理防火墙能够决定数据包将发往何处,数据包请求什么,以及根据数据包所必须提供的这些信息决定采取什么样的行动。
对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
编译安装Squid
squid软件包有两种:一种是RedHat所使用的rpm包,另一种是源代码包。
rpm包的安装:
1.进入/mnt/cdrom/RedHat/RPMS。
2.执行rpm -ivh squid-2.2.STABLE4-8.I386.rpm。
源代码包的安装:
1.从http://www.squid-cache.org下载squid-2.2.STABLE4-src.tar.gz。
2.将该文件拷贝到/usr/local目录。
3.解开该文件tar xvzf squid-2.2.STABLE4-src.tar.gz,在/usr/local目录下生成一个新的目录squid-2.2.STABLE4,为了方便使用mv squid-2.2.STABLE4 squid将目录更名为squid。
4.进入squid目录。
5.执行./configure,可以用./configure -prefix=/directory/you/want指定安装目录。系统默认安装目录为/usr/local/squid。
6.执行make all。
7.执行make install。
8.安装结束后,Squid的可执行文件在安装目录的bin子目录下,配置文件在etc子目录下。