14proxy server的应用1.docx

上传人:b****4 文档编号:4307699 上传时间:2022-11-29 格式:DOCX 页数:32 大小:37.85KB
下载 相关 举报
14proxy server的应用1.docx_第1页
第1页 / 共32页
14proxy server的应用1.docx_第2页
第2页 / 共32页
14proxy server的应用1.docx_第3页
第3页 / 共32页
14proxy server的应用1.docx_第4页
第4页 / 共32页
14proxy server的应用1.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

14proxy server的应用1.docx

《14proxy server的应用1.docx》由会员分享,可在线阅读,更多相关《14proxy server的应用1.docx(32页珍藏版)》请在冰豆网上搜索。

14proxy server的应用1.docx

14proxyserver的应用1

课程名称

更安全的LINUX网络

教学对象

网络工程师专业

教材

更安全的LINUX网络

授课内容

防火墙的基本概念

课时

3(40-42)

教学目的

与要求

•了解术语:

什么是代理服务器

•熟悉代理服务器能够支持的通信协议

•掌握代理服务器的分类

•学会安装代理服务器

重点、难点

•掌握安装代理服务器

•以squid构建缓存代理服务器

课型

教学方法

教学过程

设计

(包括讲授知识、演示内容及案例、提问及学生演示内容)

第六章ProxyServer的应用

课程回顾

SNAT、DNAT分别表示什么,有哪些典型应用?

通过提问的方式回顾上次课的内容,根据学员的回答情况进行点评和总结

部分答案提示:

SNAT:

修改数据包源地址,典型应用——实现局域网用户共享单个公网IP地址接入Internet

DNAT:

修改数据包目标地址、目标端口,典型应用——在Internet中发布局域网内的应用服务器(如网站、邮件等)

前面的话

Proxy这个名词在网络安全的领域里似乎已渐渐被淡忘了,只要一提到网络安全,第一个被联想到的几乎都是“防火墙”,但你可能不知道,在早期有不少企业以Proxy来维护其企业网络安全,而现今由于防火墙技术不断发展,且价格不再像以往那么“昂贵”,因此,防火墙几乎已成为企业网络的安全中心,但事实上,Proxy在现今的企业网络中还是有其存在的价值及意义,当然,这些优点绝非防火墙所能办到的,本章将为大家介绍Proxy在企业中所扮演的重要角色。

6.1什么是ProxyServer

在没有Proxy的环境下Client及Server是直接连接的。

因此,不管是Client或Server都有可能遭受对方恶意的攻击,如果在有Proxy的环境下就如图所示,Client及Server被Proxy隔离在两侧,因此,Client端并无法直接连接到Server端,在这样的环境下,如果Client端需要访问Server端的资源,就必须借助ProxyServer的帮忙才有可能访问到Server上的资源。

例如,

Client端通过eth0告诉ProxyServer其所需要的网页是什么①,

这时ProxyServer由ethl向真正的WebServer提出Client端刚才所提出的请求②,

接着Server端响应Proxy所提出的请求③,

当ProxyServer收到这些信息后,再将这些信息交还给Client④

这样即完成Client端的一个服务请求动作。

看完上述例子,我们有问题?

这个例子让我们思考一个问题,如果ProxyServer不支持HTTP通信协议,那么Client端是否能看到网页?

答案当然是不行的。

例如,我们在两个只懂中文的人之间找了一个美国人来当传讯者,你觉得结果会怎样?

因此,使用Proxy之前请记得,只有ProxyServer能够支持的通信协议才能在ProxyServer下正常工作。

另一个ProxyServer很重要的特点是,我们都知道如果要以Linux主机来担任Router角色,就一定要把ip_forward的功能开启,否则lP封包就无法从一个接口被转送到另一个接口。

但是开启ip_forward功能之后,我们所需要面对的就是安全方面的问题了,因为Cracker可以利用LinuxRouter将攻击封包转送到真正的Server上,但请仔细思考我们的环境,我们是否需要开启ProxyServer上的ip_forward功能?

其实在ProxyServer的环境并不需要开启ip_forward机制,因为Proxy是一个DaemonProcess.而这个DaemonProcess同时服务在eth0及ethl两块网卡上,当Client端从eth0界面送入请求时,Proxy这个DaemonProcess再由ethl接口对WebServer提出服务请求。

因此,只要ProxyServer(ProxyDaemonProcess)本身没有安全上的漏洞,那么放置在ProxyServer后方的Client或Server基本上都可拥有一个很安全的执行环境。

6.2ProxyServer能够支持的通信协议

以本节中所要介绍的以SquidProxy为例,其能够支持通信协议的就只有HTTP、HTTPS、FTP、GOPHER及WAIS这5种,因为时代的变迁。

GOPHER及WAIS目前已经很少有人使用了,现在就只剩下HTTP、HTTPS及FTP这3种协议较为常用。

因此,千万要记住刚才我们特别提醒的:

只有ProxyServer能够支持的通信协议才能在ProxyServer下正常工作,所以我们在规划ProxyServer时一定要把通信协议考虑进来。

6.3ProxyServer的分类

ProxyServer的主要功能就是“代理”,我们可以借助Proxy来达到“屏蔽”的目的,这样即可提供Client或Server一个安全的服务执行环境,另外,ProxyServer在应用上因为保护“对象”的不同,大致上可分为CacheProxy及ReverseProxy两种,以下就让我们来看看什么是CacheProxy及ReverseProxy。

缓存代理概述

6.3.1什么是CacheProxy

以图为例来说明CacheProxy存在的重要性,ProxyServer就无须再到WebServer上重新取得网页数据,这样不但可以加速客户端的网页浏览,又可以有效节省企业的外网带宽。

我们假设企业内有10部WindowsXP的客户端,如果这10个客户端都要连到因特网来进行套件更新,那么,相同的一份更新数据将会被重复下载10次,这样不但浪费企业的外网带宽,又很没效率;但这样的问题在有ProxyServer的环境下将不再会发生。

首先,我们假设ProxyServer的Cache内空无一物,当Client-3对CacheProxy提出服务请求时①,

由于CacheProxy的Cache内容空无一物,因此,ProxyServer会对WebServer提出刚才Client-3所提出的请求②,

接着WebServer把ProxyServer所需要的I捌页内容传递给ProxyServer③,

在ProxyServer收到这个网页数据后,随即将网页数据存一份到ProxyServer上的Cache空间内④,

并将取得的网页数据传递一份给Client-3⑤,这样Client-3即可得到其所需要的网页内容;

假设这时Client-l也对ProxyServer提出与Client-3相同灼请求内容⑥,

由于Proxy刚才已经把网页内容存一份到Cache中,ProxyServer就会从Cache内将Client-1所需要的数据接直f专递给Client-1⑦,

因此,ProxyServer就无须再到WebServer上重新取得网页数据,这样不但可以加速客户端的网页浏览,又可以有效节省企业的外网带宽。

本图中,由于ProxyServer是放置在Gateway的位置上,在这个结构下的客户端除了HTTP、HTTPS及FTP之外,就无法再使用因特网上的其他服务了。

或许你会有疑问,真的会有人把ProxyServer放在Gateway的位置上吗?

其实在早期防火墙机制还不是很完善的年代里,ProxyServer大概就是如此这般的应用,不过,近年来因为防火墙机制越来越完善,且价格不断下降,因此,ProxyServer的应用架构大多已改成如上图所示,也就是说,以防火墙来保护企业内部网络,而Proxy就只拿来当做Cache使用。

6.3.2什么是ReverseProxy

反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途,目前有许多反向代理软件,比较有名的有Nginx和Squid。

Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP等多种协议,是现在Unix系统上使用、最多功能也最完整的一套软体。

ProxyServer除了可以用米保护客户端之外(如CacheProxy),其实ProxyServer也可以用来保护Server端,这个机制我们称为ReverseProxy。

6.3.2什么是ReverseProxy

以图为例来解说ReverseProxy的运行原理,首先我们把企业真正的WebServer放置在企业的内部网络中,并且在DMZ的区段中放置ReverseProxy,并且在DNSServer中把www记录指向ReverseProxy所在的lP,这样一来,任何要浏览这家企业网站的服务请求都会送给ReverseProxy,

接着,ReverseProxy会帮客户端到真正的WebServer上②

取回其所需要的网页内容③,

最后ReverseProxy再把取得的网页数据传递给客户端④,

这样客户端即可得到其所需的网页内容,同时ReverseProxy也可以拥有Cache能力,客户端所需要的网页在ReverseProxy的Cache内已经存在时,ReverseProxy就会直接从Cache中供应给客户端,而无须再对WebServer提出服务请求,所以ReverseProxy也有着降低WebServerLoading的功效。

从以上的流程中可以发现,客户端并不会知道自己所访问的是一台ReverseProxy,而且就算客户端知道自己是通过ReverseProxy的代理才能访问到WebServer,客户端还是无法得知真正WebServer所在的位置,因此,Cracker并无法直接攻击到企业真正的WebServer,如果你所服务的企业是使用MSIIS为其WebServer,那么建议你,可以在IIS之前放置一台ReverseProxy,这样即可大大提升IISWebServer的可靠度。

6.4poxyserver的硬件需求

相较于Netfilter来说,ProxyServer的硬件可就马虎不得了,因为ProxyServer必须处理客户端所下载回来的网页数据,而且ProxyServer还可能被用来过滤客户端所访问的URL,再加上ProxyServer的网络流量通常都非常大,因此,在硬件的要求上会比较严格一点,以下就让我们来看看ProxyServer在各硬件上的要求。

·处理器(CPU):

虽然ProxyServer需要执行一些运算的动作,但ProxyServer性能的好坏与CPU并没有太大的关联,但也无须太刻意去寻找很旧的硬件,若以一个拥有500人的企业为例.如果单就任务,那么使用P42.0就已经足够了只执行Proxy的

·内存(Memory):

由于ProxyServer的Cache管理机制是将所有的Cache放置于硬盘中,而SquidProxy的创造者考虑到硬盘访问速度不够快,因此,将硬盘中“点击率”较高的Cache复制一份到内存之中,这样当客户端需要Cache数据时,即可从内存中快速提供给客户端。

因此内存的大小是严重影响ProxyServer性能的重要指标,至于内存该装多少,并没有标准答案,通常我们建议是“越大越好”。

·硬盘(HardDisk):

在前面的解说中我们了解了SquidProxyCache的管理方式,虽然Cache会额外被复制一份到内存中,但如果客户端数量庞大或是内存空间不够大,那么当客户端需要这些Cache数据时,还是得到服务器区访问资源,硬盘是影响ProxyServer性能的指标之一。

以硬盘本身的性能来讨论SCSI接口的硬盘绝对是百选,如果是叟应用在学校(大专院校),我们比较建议将SCSI组合成RAID5或RAID10;如果只是运用在一般的中小企业,如500人的企业,那么使用单块的SCSI硬盘就已足够了。

如服务于某一拥有200多个客户端的公司,当时在ProxyServer上所安装的只是一块20GB的IDE硬盘,感觉一点也不慢;如果你有预算上的考虑,不妨先试着用IDE或SATA的硬盘,如果真的不符合需求,再选择SCSI的硬盘也不迟。

·网卡:

因为ProxyServer昀网络流量很大,因此,选用一块稳定度高且性能好的网卡绝对是有必要的,虽然市场上可以选用的网卡品牌众多,但我们还是建议选用3COM的网卡,如果没有3COM,至少也要选用Intel的网卡,至于其他品牌的网卡产品,就不建议使用了。

6.5安装SquidProxy

安装软件SquidProxy

Centos找到RPM套件管理系统

rpm-ivhsquid-2.6.STABLE6-3.e15.i386.rpm

/etc/squid/squid.conf

注意:

LINUX9在第一张光盘

Squid基本配置

squid软件包

软件包名:

squid-2.6.STABLE6-3.el5

服务名:

squid

主程序:

/usr/sbin/squid

配置目录:

/etc/squid/

主配置文件:

/etc/squid/squid.conf

默认监听端口:

TCP3128

默认访问日志文件:

/var/log/squid/access.log

讲解Centos5自带的代理服务软件包squid的相关内容

接下来介绍主配置文件squid.conf中的常用配置项

需要修改squid.conf配置文件之前,提醒学员先作好备份(squid提供了一个默认配置squid.conf.default,也可以用作备份)

配置squid实现基本的代理功能

普通代理服务的典型应用环境

下面通过普通代理服务器的配置实例来讲解squid的基本应用过程

首先讲解案例的应用环境,包括代理服务器所处的位置、局域网段地址、外部网络环境等,主要实现几个简单需求:

为局域网用户(192.168.1.0/24)访问Internet网站提供缓存加速

6.6以Squid构建CacheProxy

在本节中,我们将以Squid来构建CacheProxy,我们以图为例来说明CacheProxy的设置方式。

首先假设ProxyServer的外网接口为eth0,并且其lP地址为10.0.1.200,此外,ProxyServer对内的接口为ethl,并且其IP地址为192.168.0.1,而企业内部的网段假设为192.168.0.0/24;

由于SquidProxy的参数众多,因此,我们将设置的参数分成两阶段来讨论,分别为“CacheProxy的基本设置”及“CacheProxy的高级设置”。

6.6.1CacheProxy的基本设置

如果我们的目的只是要让CacheProxy动起来,其实并不需要做什么复杂的设定,只需要把服务的Port编号、Cache空间,以及简单的连接访问控制设置好就可以了,关于这些参数的设置分别如下。

1.指定SquidProxy的服务Prot编号

“http_port3128:

定义squid监听HTTP客户请求的端口。

例:

http_port8080

2.设定CacheDisk的大小

cache_dir:

定义squid用于存储对象的交换空间的大小及其目录结构。

CacheDisk的结构:

SquidProxy的Cache存储结构如所示,在Cache的目录下,我们可以看见许多的目录,这些称为Ll的目录,在L1的目录底下,可以看见其他的目录,是称为L2的目录,最后在L2目录下又看见许多文件,这就是SquidProxy所存储下来的Cache.

cache_dir参数计算,cache_dir的参数共可分为5个字段,其意义分别如下:

Cache_dirufs/var/spool/squid10016256

ufs:

为指定Squid存储Cache的方式,其可分为ufs、aufs、diskd等,单就以性能来考虑,ufs会是比较好的选择,因为ufs与其他方式比较起来,ufs在各种不同的环境下,其性能及稳定度会是比较好的。

/var/spool/squid:

Cache文件所存储的路径,Squid的内定值为/var/spool/squid,不过,这并不足一个很好的建议值,如果可以的话,尽量让Cache存储于独立的Partition上,这样可以增加SquidProxy读取Cache的速度。

此外,Squid的建议,一个Cache存储空间最好不要超过3GB,但若所需的Cache空间大于3GB,我们可以在squid.conf设置文件中同时加入多行的cache_dir参数,然后指向不同Partition。

Cache_dirufs/var/spool/squid10016256

100:

指定单一Cache空间的存储上限,定义缓存空间总量,其单位为MB

16、256:

16、256为L1及L2的目录数量

注意:

如果想要让SquidProxy的性能再好一些,那么这两个数值最好是经计算而来,其计算公式如下:

L1*L2=Cache总容量(KB)/第二层目录下文件总数/平均每个文件的大小(KB)

假设Cache总容量为9GB,因为9GB已经超过Squid组织的建议值,因此,我们将其划分为3个3GB的Partition,接着,由于Squid组织建议“第二层目录下文件总数”最好不要超过256个,因此,我们就定为256,另外,假设Cache下来文件的平均大小为20KB,这20KB是一个经验值,你也可以假设为30KB、40KB都可以,而之所以定为20KB,是因为一般网页的HTML文件、图片等其平均值约为20KB。

有了这些数值之后,我们就可以套用以下公式:

L1*L2=Cache总容量(KB)/第二层目录下文件总数/每个文件的大小(KB)

L1*L2=3000000KB/256/20KB

L1*L2=585.9375

16*37=592略大于586

以以上的计算公式可以发现,其中Ll×L2=585.9375,而Ll及L2并没有标准的答案,不过根据Squid的建议是“尽量让两个数值”较为接近,因此,这里选定了16×37=592略大于586,最后我们可以把cache_dir的参数设定如下:

Cache_dirufs/cache-130001637

Cache_dirufs/cache-230001637

cache_dirufs/cache-330001637

3.设定CacheMemory的大小

SquidProxy会将所有Cache数据存放于CacheDisk中,但是会将被使用率较高的Cache复制到内存中。

设定一个适当的CacheMemory空间将有助于提升SquidProxy的性能。

CacheMemory的大小可以借助cache_mem参数来指定,至于值的大小通常会设定为物理内存的1/2,但如果ProxyServer主机是专门用来执行CacheProxy的任务,我们可以试着再把值调大到物理内存的2/3也还算合理

4.连接访问控制

默认情况

“本机”的应用程序通过其连上因特网,所以对来自其他主机的请求会一律拒绝

SquidProxy为了避免一些不必要的困扰,因此,在预设的情况下只允许“本机”的应用程序通过其连上因特网,所以对来自其他主机的请求会一律拒绝,

我们以图来解释这个问题。

首先看到①的部分,在预设情况下,如果我们在SquidProxyServer上启动Firefox浏览器,并将(Fireox的ProxyServer设定值指向“本机(127.0.0.1)"的Port3128.那么将可以顺利通过SquidCacheProxyServer来连接因特网。

接着来看②的部分,如果我们是在Client-A主机上将浏览器的ProxyServer设定值指向SquidCacheProxyServer,那么浏览器将无法通过SquidCacheProxyServer来连上因特网。

若要了解以上问题的成因,我们得从Squid的设定文件来讨论。

2394行:

来自于“任何地方”的客户端都称为all。

2396行:

来自于“127.0.0.1’’这个lP的客户端称为localhost。

2526行:

只有“localhost"这台主机可以通过Proxy来连上因特网。

2527行:

只要是“all"这些主机都不能通过Proxy来连上因特网。

以下所列为squid.conf预设的文件内容,我们列出影响这些行为的关键4行,其意义分别如下。

2394行:

aclallsrc0.0.0.0/0.0.0.0

2396行:

acllocalhostsrc127.0.0.1/255.255.255.255

2526行:

http_accessallowlocalhost

2527行:

http_accessdenyall

 

在了解了以上意义之后,接着我们来看SquidProxy的连接机制是如何进行的。

在阅有先后差异的,也就是说,SquidProxy在看这个设定文件时,其匹配的原则

是“优先匹配”,例如,当127.0.0.1主机提出服务请求时,SquidProxy即会以由上往下的方向来匹配,当SquidProxy匹配到第2396行时,SquidProxy就会把这个请求定义为localhost,接着匹配到第2526行时,就开放这个客户端可以连到因特网,当然底下的2527行就不会被SquidProxy考虑在内了;

但如果提出服务请求的客户端不是127.0.0.1时,就会在第2394行被定义为all,而all并无法满足2526行的条件,因此,匹配的动作将继续进行到第2527行,但2527行的限制是说:

“只要是all的客户端,就拒绝其所有的访问行为”。

在看完以上说明之后,相信你对于SquidProxy的连接访问控制应有了初步的认识。

接着,我们再将这些参数整理如下,并做最后的说明。

参数整理如下:

73http_port8080

738cachemem512MB

993cache_dirufs/cache30001637

2524acluuusrc192.168.0.0/24

2525http_accessallowuuu

2526http_accessallowlocalhost

2527http_accessdenyall

Squid控制方式

Servicesquidstart|stop|restart|reload|status|

73行:

指定http_port为80800

·738行:

指定cache_mem为512MB,如果你的测试主机没有足够的内存,可以试着将值调整小一点,毕竟只是做实验而已。

·993行:

指定cache_dir的路径为/cache目录,因此,请切割一个分区来作为存放Cache之用,但请务必记得将cache目录的权限设定为“rwxr-x---squidsquid”,若是你的硬盘没有足够的空间也没有关系,就使用预设的/var/spool/squid目录来做实验即可,但是Cache的空间请务必大于cache_mem的空间。

·2524行:

这一行为新加入的,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1