[IT认证]第 10 章 配置squid代理服务器.ppt
《[IT认证]第 10 章 配置squid代理服务器.ppt》由会员分享,可在线阅读,更多相关《[IT认证]第 10 章 配置squid代理服务器.ppt(85页珍藏版)》请在三一办公上搜索。
1、第 10 章 配置Squid代理服务器,本章介绍Linux上的Squid的安装及使用技巧,并对应用中的认证问题进行讨论,介绍了ADSL连接实现代理上网的具体方法。,10.1 代理服务器概述,一般说来,代理服务器可以通过缓存增加访问速度,提供用私有IP访问Internet的方法,提高网络的安全性。Squid是Linux下最为流行的代理服务器软件,它支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理,设置简单,具有权限管理灵活、性能和效率较高的特点,应用较为广泛。,10.1.1 Squid简介,Squid是一款功能十分强大的代理服务器软件,可以将它配置成向内的服务器(提高自己的服务
2、器的响应能力),或者是用多个squid机器构成复杂的缓冲系统等。1.实际工作中的需求实际工作中会有这样的需求:让多台计算机/局域网共享一条线路访问Internet,一个典型的应用环境如图10.1所示。,图10.1 典型的应用环境,图中把网络划分为两个区域:Private区和Internet区。对外提供服务的Internet服务器也放在Private区,和局域网其它主机使用同一网段地址(当然,也可以不单独设Internet服务器而在接入服务器上安装Internet服务)。Linux接入服务器(通常称之为Internet网关、防火墙或代理服务器)使得局域网可以共享Internet连接,并保护局域网
3、内的主机和服务器不受来自Internet的攻击。图中的Linux接入服务器所实现的就是常说的代理服务器/防火墙。局域网内的终端通过Linux服务器来访问Internet,Linux 服务器是局域网和Internet连接之间的一个网关(Gateway),这时所有对Internet的访问都会经过Linux服务器。,要实现共享上网,Linux接入服务器通常有两种处理方法:(1)使用网络地址翻译(Network Address Translation,NAT);(2)架设代理服务器(Proxy Server)。局域网用户通过NAT方式上网时,客户端不需要作任何的特殊设置,和直接使用公网IP地址上网没什
4、么区别;而Proxy则更方便对用户进行权限控制,并且还可以实现访问内容的本地缓存,加快访问速度以及内容过滤等等。NAT和Proxy在Linux上的实现是Linux的典型应用之一,并且还可以结合NAT和Proxy配置透明代理(Transparent Proxy)。,2.Squid的工作原理Squid是一个缓存Internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,他向 Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立
5、即传给用户。目前,Squid 可以代理HTTP、FTP、GOPHER、SSL 和 WAIS等协议。Squid并不缓存信用卡账号、可以远方执行的scripts、经常变换的主页等。这些作为缓存是不合适的也是不安全的。Squid可以自动的进行处理,也可以根据自己的需要设置Squid,过滤掉不想要的东西。,每一台Squid 代理服务器上有若块硬盘,每块硬盘又分割成多个分区,每一个分区下可建立很多目录,目录下存放文件,Squid 把文件称为对象(object)。(1)Hash Table 和 Digest Table 如果每一个客户都经过硬盘的文件分配表去取数据,速度较慢;Squid 启动之后,在RAM
6、 建立一个 Hash Table,记录硬盘中对象配置的情形。Squid 还在 RAM 中建立一个 Digest Table(摘要表),其内容是和其他有合作关系的 Squid(Sibling)互相交换的摘要,当客户端需要的数据本地没有时,可以很快的知道哪台Squid Server上有数据(Squid 也可以通过 ICP 向其他 Squid 查询,但速度较慢)。但摘要表要占用内存,如果 Server 的内存不够,对外网络带宽不够,反而比 ICP 查询更慢。,(2)下级、上级和友邻 Squid 服务器之间的第一种关系是下级和上级。当下级Squid服务器没有数据时,会直接向上级Squid 服务器请求数
7、据,然后一直等待到上级给数据为止。Squid服务器之间的第二种关系是友邻和友邻(Sibling)。,3.Squid Server 的一般运作模式,(1)当 Squid Server 没有数据时,会先向友邻的 Squid Server 要数据,如果友邻没数据,就直接向上级要求数据。(2)Squid Server向上级要求数据,然后等待上级给出数据,上级如果有数据则给出数据,如果上级也没有,则上级到Internet查找。(3)没有上级时,自己到Internet查找。(4)如果这三者都找不到数据,则向用户端报告取不到数据。一般来说,把网络上一层的 Squid Server 设成友邻是不错的选择(例如
8、:一个学校将所在城市网和附近的大学设成友邻)。因为网络上一层的 Squid服务器的服务对象较多,其硬件功能较强,距离比较近,速度也比较快;万一要不到数据,还可以自己上 Internet 去取。当出口只有一个,或者如果上层 Squid服务器取不到数据时,自己也一定取不到,只好将上一层 Squid Server 设为上级(Parent)。Squid还有很多高级的功能,如作WEB服务器的高速缓存,作二级代理服务器,作为防火墙以及设定过滤规则等。,4.运行Squid,首先以root身份登录。运行如下命令:/usr/local/squid/bin/squid?z 该命令会产生Squid所有的缓存目录。如
9、果想前台执行Squid,接着执行命令:/usr/local/squid/bin/squid-NCd1 该命令正式启动Squid。如果一切正常,会看到一行输出:Ready to serve requests.如果想后台运行Squid,把它作为一个守护进程,执行命令:/usr/local/squid/bin/squid 观察Squid是否运行,使用命令:%squid-k check 输出Squid的当前状态。,10.1.2 用Webmin管理squid,Squid 代理服务器的配置文件squid.conf 文件位于/etc/squid/目录。通过手工修改来配置 Squid相当复杂。使用基于浏览器管
10、理界面的系统管理工具Webmin,可方便地管理squid。,图10.2 Squid服务管理页面,若作为代理的机器的IP地址是192.168.0.180/24。需要通过代理上网的机器的IP地址是192.168.0.10/24,安装Windows XP。/24表示子网掩码的位数,就是点分十进制的255.255.255.0。在代理配置以前,2台机器应当能正常连通。在任意一台机器上打开浏览器,进入http:/192.168.0.180:10000,登录Webmin,并点击“Squid代理服务器”。进入Squid服务管理页面,如图10.2所示。在下面配置Squid的步骤中,有*号的步骤不是必须的。Squ
11、id可配置的参数很多,但是作为一般应用,只配置必要的参数,它就能工作了。,1.端口和网络,首先点击【端口和网络】图标,设置代理服务器的网络端口。【代理地址和端口】选择Listed below.,可以设置新的端口,比如常用的 8080。如果采用默认选项Default,那么端口就是3128。点击【保存】按钮可以将新的设置保存起来。点击回到squid 索引链接,回到如图界面继续别的设置。以上设置也可以在Squid的配置文件/etc/squid/squid.conf中完成,即分别在该文件中加入以下语句:http_port 8080 http_access allow all,2.内存使用*,squid
12、使用高速缓存来保存页面。squid默认占用8M内存作为高速缓存,自定义可以设置大些。,3.高速缓存选项*,在“高速缓存选项”中可以修改磁盘上交换空间的相应选项。点击“列表”可以自定义高速缓存交换空间目录:目录:输入自定义高速缓存交换空间目录地址类型:默认大小:缓存目录在磁盘上的大小一级目录:在缓存目录中可建立一级目录的数目二级目录:在缓存目录中可建立二级目录的数目若目录数目太小,则造成存储在一个目录下的文件数目增多,造成系统寻找某个文件的时间增长,所以采用增加目录、一级、二级目录的方法来解决这个问题。,4.登录*,点击“登录”,指定生成LOG记录文件。依次指定:访问登录文件/var/log/s
13、quid/access.log调试登录文件/var/log/squid/cache.log储存登录文件/var/log/squid/store.log“保存”退出。,5.管理选项*,进入“管理选项”,指定运行squid的等效用户单击“当作Unix用户运行”的浏览链接,指定一个等效用户,一般用squid用户即可。用相同的方法还可以指定squid的等效组。在这个页面还能指定squid管理员的Email地址和可见主机名等。“保存”退出,单击“改变所有者”按钮对其进行更新。,6.操作控制,设置用户访问规则和访问控制是squid最重要的配置项之一。点击“操作控制”进入访问控制页面。这里可以进行所有对sq
14、uid的访问控制设置。合理配置访问规则不但可以杜绝未授权的访问,还可以过滤掉含有特殊字符串的URL请求,比如可以禁止内网用户访问某些不健康的站点等等。,(1)首先创建客户访问列表CL,可以自定义自己的访问控制列表。单击从“创建新的ACL”旁边的下拉列表中选择“客户地址”项。再单击“创建新的ACL”按钮,进入创建页面,在“ACL名”文本框中指定该ACL的名称,并在“来自IP”文本框中输入IP地址。“保存”创建该ACL。,(2)根据ACL来定义访问规则,若要增加一条新的访问规则,可以单击添加代理约束规则链接,进入创建代理约束页面。给代理约束指定一定的动作,来控制特定的用户、地址、端口对代理的访问权
15、限。新增的访问规则可在“代理约束”列表中找到。squid按照指定的顺序来应用所有定义的访问规则,也可以用上下箭头按钮来改变访问规则的应用顺序。点击代理约束下all前面的链接,然后动作选择允许,匹配 ACL选择all,再点击保存 按钮。这样就允许访问控制列表中的all列表指定的所有客户地址,通过Squid代理访问外网了。,7.其他高级缓存*,squid的一个突出特点是它可以与其他代理服务器一起构成一个层次结构。用户请求的页面数据既可以从squid的缓存中获得,也可以从squid的上级或友邻代理服务器处获得,这样尽量充分使用了有限的带宽,这也是squid之所以性能优越的原因之一。为了充分发挥squ
16、id的强大功能,需要对squid的上级和友邻代理服务器进行相应的设置。进入“其他高级缓存”页面,在这里可以为squid设置上级或友邻代理服务器。,(1)设置上级代理:,进入“创建高级缓存”页面:在“主机名”文本框中输入上级代理服务器的域名 在“类型”下拉框中选择“父”项 在“代理端口”中输入上级代理服务器所使用的通信端口号 在“ICP端口”一般采用默认的3130端口。其他选项一般采用默认值即可。需要注意的是:“是否仅仅代理”选项。若选择“是”,则表明数据取回后不存储,这样可以节省硬盘空间。设置好后单击“保存”就可以找到刚刚设置的上级代理了。,(2)设置友邻代理,与创建上级代理步骤基本相同,只是
17、在类型下拉框中选择“同族”项。若squid过多的向上级或友邻代理服务器请求,同样会消耗不少的网络带宽,所以实际应用中不应设置过多的上级或友邻服务器。以免造成网络阻塞,反而使得性能下降。,8.用户身份认证*,若不想局域网中所有的用户都通过squid来访问Internet,则可以使用身份认证的方法来解决。但squid本身并不具备身份认证的功能,所以要借助其他的身份认证程序。webmin专门为squid编写了一个用perl语言写的身份认证脚本。可用其来对用户进行身份认证。进入“Authentication Programs”页面,选择“Webmin default”选项,然后在“Authentica
18、toin realm”文本框中输入要求用户进行身份认证的提示信息,单击“保存”。也可以使用传统的HTTP认证程序/user/lib/squid/ncsa_auth,要在squid中使用该身份认证程序,需要在“Authentication Programs”页面中的“Basic authentication programs”文本框中输入身份认证程序和密码文件的绝对地址。例:/user/lib/squid/ncsa_auth/user/etc/passwd注意:此处为两个文件名,用空格分开。这两个文件此处不存在,在后面会自动生成,此处只要手动指出这两个文件即可。指定身份认证后,下面就必须添加合法
19、的代理用户,进入“代理认证”页面,进行代理用户的添加。,9.初始化高速缓存,经过以上的简单设置,代理服务器就应当能开始服务了。当然首先必须启动Squid服务,首次运行squid时,需要对交换空间进行初始化。单击“初始化高速缓存”按钮。然后返回Squid代理服务器界面,单击“启动squid”链接,即可启动squid服务器。以后仍可以在webmin中对squid的参数进行修改。修改后需要单击“变动生效”按钮旧可使新设置生效,而无需重新启动squid服务器。手工重启Squid服务的命令是/etc/rc.d/init.d/squid reload。,10.设置客户机,(1)若客户机为Windows系统
20、,则要为IE浏览器设置代理服务器。以Internet Explorer 6.0为例,在Internet属性设置里设置“连接”属性,点“局域网设置”按钮,如图10.3所示。在弹出的对话框中选中“为LAN使用代理服务器”,在地址栏填入代理服务器地址,这里是:192.168.100.254,端口为squid默认的3128,如图10.4所示。点【确定】按钮后,再用Internet Explorer上网就是使用squid代理。可以察看squid的log文件来观察到客户端主机通过squid的访问情况:rootmylinux#tail-f/var/log/squid/access.log squid代理服务
21、器不仅可以提供HTTP服务,还可以提供FTP、Gopher服务。,图10.3 Internet属性设置,图10.4 局域网设置,10.1.3 用Webmin管理squid实例,下面举一个最简单的例子,拒绝访问。进入Squid服务管理页面,点击【操作控制】进入访问控制页面。如图10.5所示。(1)选择“web服务器主机名”并点击【创建新的ACL】。(2)点击【创建新的ACL】,配置ACL访问控制列表名字。如图10.6所示。在ACL名称中输入:sohu,这只是个名称,可以随便输入。在域中输入。然后点击【保存】。,图10.5 访问控制页面,图10.6 配置ACL访问控制列表名字,(3)保存好了以后,
22、将回到类似第(1)步的画面,但不同的是,将看到“访问控制列表”中多了一个“sohu”,这时还不能控制对sohu的访问,点击【添加代理约束规则】,将出现如图10.7的画面。,图10.7添加代理约束规则,然后在动作中选择拒绝,在匹配ACL中选择sohu,并保存。(4)这时屏幕将转到如图10.8所示的画面。点击“代理约束”中的“sohu”右侧的“向上”箭头,最后点击【应用更改】。,图10.8 应用更改,图10.9 访问被拒绝,然后访问一下sohu,应该会出现图10.9的画面,如果结果不对,请再回过头来仔细检查一下配置。Webmin的squid模块中还有很多其他的选项,有兴趣自己慢慢试一试。,10.2
23、 squid.conf文件设置,如果不加限制地允许内部所有用户使用该代理上因特网,显然不是一个很好的访问策略。Squid的代理方式对用户权限的控制有着非常丰富的支持,可以实现多样化的权限控制。10.2.1 squid.conf文件概述Squid 的定制是通过设置它的配置文件 squid.conf 来实现的,squid.conf 文件通常在/etc/squid 目录下。1.一个最简单的squid.conf文件在安装Squid后,在目录/usr/local/squid/etc中会自动产生一个squid.conf文件样本,样本文件中对每一个选项都有详细的说明,用户可以通过修改该文件以满足不同的需要。
24、如果对代理服务器的安全性和效率没什么要求,那只要搜索http_access deny all,将deny改为allow就可以让Squid工作了。(注意改前面没有号的那一行。),一个最简单的squid.conf文件,#squid.conf-a very basic config file for squid#Turn logging to its lowest level debug_options ALL,1#defines a group(or Access Control List)that includes all IP addresses acl all src 0.0.0.0/0.0
25、.0.0#define RAM used cache_mem 32M#defines the cache size cache_dir/usr/local/squid/cache 100 16 256#allow all sites to use connect to us via HTTP http_access allow all#allow all sites to use us as a sibling icp_access allow all#test the following sites to check that we are connected dns_testnames u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IT认证 IT认证第 10 配置squid代理服务器 IT 认证 配置 squid 代理服务器
链接地址:https://www.31ppt.com/p-4593946.html