论文部分内容阅读
LINUX是基于PC的操作系统,它是由分布在全世界的数以百计的程序员设计实现的。目的是创建一个脱离付版权费的UNIX产品,使得全世界的人都能免费使用。
如今的LINUX再也不是一年前的LINUX了,IBM、DELL、Compaq、SGI、HP等公司相继宣布在其高端服务器上开始支持LINUX,这意味着LINUX已经进入高端服务器市场,成为网络世界又一强劲的操作系统。本文便是介绍在LINUX环境下如何构筑代理服务器的。
代理服务与代理服务器
代理服务(Proxy Server)属于防火墙的一种。基于代理的防火墙源于人们对越来越牢不可破的安全方法的需求。由于基于包过滤的防火墙一旦允许某种数据包通过,内部网络的结果和运行状态全部“暴露”在外来用户面前,因而引入代理服务的概念,即防火墙内外的计算机系统应用层的链接是由两个终止于代理服务的链接来实现的,这样便成功地实现了防火墙内外计算机系统的隔离。代理服务是设置在 Internet 防火墙网关的应用,是在网管员允许或拒绝下的特定的应用程序或者特定服务,同时,还可应用于实施较强的数据流监控、过滤、记录和报告等功能。代理服务通常由单独的计算机和专有应用程序承担,即众所周知的代理服务器和代理服务器软件。
代理服务可提供更为安全的选项。功能上是作为网络与外部世界的连接者,内部客户则感觉不到它的存在,可以自由访问外部站点;对外部客户可开放单独的内部连接。代理可以提供极好的访问控制、登录能力以及地址转换功能,对进出防火墙的信息进行记录,便于管理员监视和管理系统。
但是,随着安全性问题的增多,代理服务的各种不便之处也越来越明显——就是每增加一种新的媒体应用,必须对代理进行设置。
代理的另一个显著缺点就是在处理通信量方面有瓶颈。由于代理要处理入和出的通信量,因而,比简单的包过滤程序慢得多。
由于代理服务有良好的过滤、记录功能,便于网管员管理,并可节约有限的资金,因而广泛地应用于企业网中。
优秀的代理服务器软件——Squid
代理服务器软件种类繁多,如Wingate就是一个在Windows 平台上广泛使用的Internet多协议代理服务器软件,还有Proxy Server、Socks、Squid等等。它们功能各有千秋,架设方法也大不相同。而Squid则是LINUX&UNIX环境下的优秀的代理软件。
Squid允许一个局域网的多个用户通过网中的一台可访问Internet的PC来访问Internet,当LAN中某一个用户有访问请求时,其请求被提交给Squid机,并由Squid机完成取回所需数据的任务,同时转交给用户,这一切的工作都是透明完成的,用户没有任何中介存在的感觉。这样便实现了多个用户共用同一个Modem、同一条ISDN以及同一条DDN专线上网,大大节省上网设备和使用费用。Squid能够处理诸如HTTP、FTP、Gopher、SSL和WAIS协议,但对POP、NNTP、RealAudio和一些多媒体应用却无能为力。
Squid的特点在于Cache方面的设计。Squid采用Parent、sibling的概念。特别是当存在Server群时,Squid可以实现Siblings Cache和Parent Cache的配置。这样,当用户的请求在某一服务器上没有时,Squid会发出UDP包,询问它的Siblings Cache是否有同样的请求,若是Siblings Cache也没有这样的请求,则继续询问Parent Cache中是否有同样的请求。当所有的服务器都没有满足用户的请求时,Squid再去外部网路上取回请求。这样,大大缩短了请求响应的时间,节省了网路带宽,并且提高代理服务的效率。
并且,很多代理软件,例如:Microsoft proxy server、Netcache、Netscape proxy server等等,在适当的配置下均可与Squid通讯。除了Microsoft proxy server,大多应用软件还可以作为Squid的Parent Cache。
对单独的代理服务器,Squid的优势主要体现在:可以定置Cache大小,即能将大量的磁盘空间赋予Cache,并能够极大的发挥内存Cache的作用;Cache Manager可对Cache进行优化。操作系统LINUX的较小的系统开销,也为提高Cache 效率提供可靠保障。
Squid可以运行在大多数版本的UNIX及OS/2下。诸如AIX、Digital、FreeBSD、HP-UX、Irix、Linux、NetBSD、Netstep、SCO、Solaris等等。
尽管WinGate对系统的需求并不大,由于WINDOWS NT操作系统本身占用了极多的系统资源,因而在某一瞬间访问量集中而又没有超出WINDOWS NT能够管理的范围之外的情况下,经常有代理服务器瘫痪或者极度拥塞的故障发生,影响了用户的使用,也给管理员带来许多不便。而LINUX操作系统具有精炼而稳定的内核,系统开销小,将大部分的资源留给了应用软件,使得用户可以根据实际情况进行系统及某些应用软件运行环境的优化。
下面详细介绍如何架构LINUX环境下的代理服务器。由于条件所限,没有做Server群。仅在单机情况下运行Squid,以解代理频频down机之急。
* 硬件环境
兼容机Pentium MMX 200MHz,64M内存,4G硬盘;两块兼容网卡,一块绑真实的IP地址,另一块绑局域网的IP地址。
* 软件环境
☆REDHAT LINUX 5.2操作系统,2.0.36的内核;
☆采用KDE界面;
☆分区、网卡的配置等则根据用户的具体情况具体分配。可将SWAP区按照内存的2倍分配;
☆所启的服务根据实际需要配置。如局域网内已有专门的域名和WWW服务器、邮件服务器、文件服务器,以及路由器,只需启动几个服务。主要有Telnetd、Ftpd等。为了安全起见,关闭了部分端口,并且严格禁止root权限远程登录,对部分可以远程登录的帐号进行口令使用期的限制和IP地址的限制。
☆Squid的安装、配置、编译及执行:从http://squid.nlanr.net上可获得免费的资源Squid-2.2.STABLE4-src.tar.gz(目前已有更高的版本)并将其解压在指定的地方。接下来,顺序做如下工作:
./configure
./make
./make all
整个编译过程仅需半个小时左右的时间便结束了。在启动Squid之前,可根据各自不同的要求进行定置。squid proxy默认配置文件/etc/squid.conf,其中的大多数配置勿需改动,仅需改动很小一部分。
例如:
1.http/ftp代理端口号修改成习惯的8080:http_port 8080;或者启动Squid服务时指定端口号。
2.添加存取控制表,可按照部门来命名每一个存取控制表名,每一行中指定包括在这个组中的机器IP地址。
acl all src 0.0.0.0/0.0.0.0
acl jsys src 10.67.53.0/255.255.252.0
acl dwbgs src 10.67.52.99/255.255.252.0 10.67.52.100/255.255.252.0
3.指定部分用户上网,如下:
http_access allow jsys
http_access allow dwbgs
http_access deny all
这样,除了允许jsys和dwbgs两个组中的用户可通过该proxy server上网外,其它人的HTTP等请求全部被拒绝。还有其它的控制方法,例如禁止访问某些网站。可参考/etc/squid.conf中的解释。若修改/etc/squid.conf文件,则在改动后做/etc/rc.d/init.d/squid restart重读配置文件即可。在squid.conf文档中可以定置cache的使用,使得cache发挥最大的作用。
通过执行 # /usr/local/squid/bin/RunAccel& (内存加速方式)
或者 # /etc/rc.d/init.d/squid start
启动代理服务。然后回到浏览器,重新设置代理服务器。看看你得到什么样的结果?在其官方网站上还有详细的FAQ 、Users Guide等资料,有什么问题去那里寻找答案吧。
至此,完成了LINUX操作系统下的代理服务器的架构工作。由于Squid能方便地做为Http和Ftp的代理,具有速度快、Cache定置好的优点,使得代理服务器不再成为网络瓶颈,大大提高了上网速度。
如今的LINUX再也不是一年前的LINUX了,IBM、DELL、Compaq、SGI、HP等公司相继宣布在其高端服务器上开始支持LINUX,这意味着LINUX已经进入高端服务器市场,成为网络世界又一强劲的操作系统。本文便是介绍在LINUX环境下如何构筑代理服务器的。
代理服务与代理服务器
代理服务(Proxy Server)属于防火墙的一种。基于代理的防火墙源于人们对越来越牢不可破的安全方法的需求。由于基于包过滤的防火墙一旦允许某种数据包通过,内部网络的结果和运行状态全部“暴露”在外来用户面前,因而引入代理服务的概念,即防火墙内外的计算机系统应用层的链接是由两个终止于代理服务的链接来实现的,这样便成功地实现了防火墙内外计算机系统的隔离。代理服务是设置在 Internet 防火墙网关的应用,是在网管员允许或拒绝下的特定的应用程序或者特定服务,同时,还可应用于实施较强的数据流监控、过滤、记录和报告等功能。代理服务通常由单独的计算机和专有应用程序承担,即众所周知的代理服务器和代理服务器软件。
代理服务可提供更为安全的选项。功能上是作为网络与外部世界的连接者,内部客户则感觉不到它的存在,可以自由访问外部站点;对外部客户可开放单独的内部连接。代理可以提供极好的访问控制、登录能力以及地址转换功能,对进出防火墙的信息进行记录,便于管理员监视和管理系统。
但是,随着安全性问题的增多,代理服务的各种不便之处也越来越明显——就是每增加一种新的媒体应用,必须对代理进行设置。
代理的另一个显著缺点就是在处理通信量方面有瓶颈。由于代理要处理入和出的通信量,因而,比简单的包过滤程序慢得多。
由于代理服务有良好的过滤、记录功能,便于网管员管理,并可节约有限的资金,因而广泛地应用于企业网中。
优秀的代理服务器软件——Squid
代理服务器软件种类繁多,如Wingate就是一个在Windows 平台上广泛使用的Internet多协议代理服务器软件,还有Proxy Server、Socks、Squid等等。它们功能各有千秋,架设方法也大不相同。而Squid则是LINUX&UNIX环境下的优秀的代理软件。
Squid允许一个局域网的多个用户通过网中的一台可访问Internet的PC来访问Internet,当LAN中某一个用户有访问请求时,其请求被提交给Squid机,并由Squid机完成取回所需数据的任务,同时转交给用户,这一切的工作都是透明完成的,用户没有任何中介存在的感觉。这样便实现了多个用户共用同一个Modem、同一条ISDN以及同一条DDN专线上网,大大节省上网设备和使用费用。Squid能够处理诸如HTTP、FTP、Gopher、SSL和WAIS协议,但对POP、NNTP、RealAudio和一些多媒体应用却无能为力。
Squid的特点在于Cache方面的设计。Squid采用Parent、sibling的概念。特别是当存在Server群时,Squid可以实现Siblings Cache和Parent Cache的配置。这样,当用户的请求在某一服务器上没有时,Squid会发出UDP包,询问它的Siblings Cache是否有同样的请求,若是Siblings Cache也没有这样的请求,则继续询问Parent Cache中是否有同样的请求。当所有的服务器都没有满足用户的请求时,Squid再去外部网路上取回请求。这样,大大缩短了请求响应的时间,节省了网路带宽,并且提高代理服务的效率。
并且,很多代理软件,例如:Microsoft proxy server、Netcache、Netscape proxy server等等,在适当的配置下均可与Squid通讯。除了Microsoft proxy server,大多应用软件还可以作为Squid的Parent Cache。
对单独的代理服务器,Squid的优势主要体现在:可以定置Cache大小,即能将大量的磁盘空间赋予Cache,并能够极大的发挥内存Cache的作用;Cache Manager可对Cache进行优化。操作系统LINUX的较小的系统开销,也为提高Cache 效率提供可靠保障。
Squid可以运行在大多数版本的UNIX及OS/2下。诸如AIX、Digital、FreeBSD、HP-UX、Irix、Linux、NetBSD、Netstep、SCO、Solaris等等。
尽管WinGate对系统的需求并不大,由于WINDOWS NT操作系统本身占用了极多的系统资源,因而在某一瞬间访问量集中而又没有超出WINDOWS NT能够管理的范围之外的情况下,经常有代理服务器瘫痪或者极度拥塞的故障发生,影响了用户的使用,也给管理员带来许多不便。而LINUX操作系统具有精炼而稳定的内核,系统开销小,将大部分的资源留给了应用软件,使得用户可以根据实际情况进行系统及某些应用软件运行环境的优化。
下面详细介绍如何架构LINUX环境下的代理服务器。由于条件所限,没有做Server群。仅在单机情况下运行Squid,以解代理频频down机之急。
* 硬件环境
兼容机Pentium MMX 200MHz,64M内存,4G硬盘;两块兼容网卡,一块绑真实的IP地址,另一块绑局域网的IP地址。
* 软件环境
☆REDHAT LINUX 5.2操作系统,2.0.36的内核;
☆采用KDE界面;
☆分区、网卡的配置等则根据用户的具体情况具体分配。可将SWAP区按照内存的2倍分配;
☆所启的服务根据实际需要配置。如局域网内已有专门的域名和WWW服务器、邮件服务器、文件服务器,以及路由器,只需启动几个服务。主要有Telnetd、Ftpd等。为了安全起见,关闭了部分端口,并且严格禁止root权限远程登录,对部分可以远程登录的帐号进行口令使用期的限制和IP地址的限制。
☆Squid的安装、配置、编译及执行:从http://squid.nlanr.net上可获得免费的资源Squid-2.2.STABLE4-src.tar.gz(目前已有更高的版本)并将其解压在指定的地方。接下来,顺序做如下工作:
./configure
./make
./make all
整个编译过程仅需半个小时左右的时间便结束了。在启动Squid之前,可根据各自不同的要求进行定置。squid proxy默认配置文件/etc/squid.conf,其中的大多数配置勿需改动,仅需改动很小一部分。
例如:
1.http/ftp代理端口号修改成习惯的8080:http_port 8080;或者启动Squid服务时指定端口号。
2.添加存取控制表,可按照部门来命名每一个存取控制表名,每一行中指定包括在这个组中的机器IP地址。
acl all src 0.0.0.0/0.0.0.0
acl jsys src 10.67.53.0/255.255.252.0
acl dwbgs src 10.67.52.99/255.255.252.0 10.67.52.100/255.255.252.0
3.指定部分用户上网,如下:
http_access allow jsys
http_access allow dwbgs
http_access deny all
这样,除了允许jsys和dwbgs两个组中的用户可通过该proxy server上网外,其它人的HTTP等请求全部被拒绝。还有其它的控制方法,例如禁止访问某些网站。可参考/etc/squid.conf中的解释。若修改/etc/squid.conf文件,则在改动后做/etc/rc.d/init.d/squid restart重读配置文件即可。在squid.conf文档中可以定置cache的使用,使得cache发挥最大的作用。
通过执行 # /usr/local/squid/bin/RunAccel& (内存加速方式)
或者 # /etc/rc.d/init.d/squid start
启动代理服务。然后回到浏览器,重新设置代理服务器。看看你得到什么样的结果?在其官方网站上还有详细的FAQ 、Users Guide等资料,有什么问题去那里寻找答案吧。
至此,完成了LINUX操作系统下的代理服务器的架构工作。由于Squid能方便地做为Http和Ftp的代理,具有速度快、Cache定置好的优点,使得代理服务器不再成为网络瓶颈,大大提高了上网速度。