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