[IT认证]第 10 章 配置squid代理服务器.ppt

上传人:音乐台 文档编号:1995453 上传时间:2019-01-29 格式:PPT 页数:85 大小:2.51MB
返回 下载 相关 举报
[IT认证]第 10 章 配置squid代理服务器.ppt_第1页
第1页 / 共85页
[IT认证]第 10 章 配置squid代理服务器.ppt_第2页
第2页 / 共85页
[IT认证]第 10 章 配置squid代理服务器.ppt_第3页
第3页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[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

25、 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.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 v

26、ia 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 usc.edu cs.colorado.edu mit.edu yale.edu #run as the squid user cache_effective_user squid squid,这个配置文件允许所有人使用Squid,创建了100M缓存,使用32M内存,在默认

27、位置“/usr/local/squid/cache“缓存数据,所有缓存数据以组squid和用户squid身份保存,端口为3128。虽然这个配置很不安全,但是它已经能使用了。 2. 常用的和影响性能的配置选项 要发挥出Squid的优势,最好是能深入认识Squid的配置文件。虽然squid.conf配置文件内容很多,但它的每个选项都有详尽的说明,用户可以根据自己的实际情况修改相应的选项,并不需要配置所有的选项。先来看看哪些选项会影响Squid的性能。 下面是几个常用的常用的和影响性能的配置选项。 (1)visible_hostname 运行squid的主机名,可以写上该机器的IP地址。 visib

28、le_hostname 192.168.100.254,(2)http_port http_port设定Squid监听的端口,最好设一个比较好记的端口号,以便在进行客户机配置时容易记住。机器上端口号设的是8080。默认为3128。 首先更改http_port,这个选项指定了 Squid 监听客户请求的端口,默认值是3128。要使用代理功能,建议这个端口值和运行 Squid 的机器的 IP 地址一起使用,可以修改为: http_port 192.168.100.254:3128 上述声明表示 Squid 绑定在 IP 地址 192.168.100.254 上,端口为3128。端口可以设置为任意值

29、,但要确认没有其他程序会使用同样的端口。/etc/services文件列出了常用端口,如果想为squid设置其它的端口,可以参考这个文件的内容,防止重复设置。 (3)# cache_mem 8MB:设定Squid缓存占用的物理内存,一般定义为物理内存大小的1/3。默认设置为8MB。根据经验,cache_mem的大小不应超过服务器物理内存的1/3,否则将会影响机器的总体性能。如果内存有256MB或以上,又不同时做其他事情,可以设为内存的一半甚至更多。 cache_mem 16 MB,(4)# maximum_object_size 4096KB:设定Squid可以接收的最大对象的大小,Squid

30、默认值为4M,大于该值的对象将不被存储在缓存里。如果要提高访问速度,就降低该值;如果想最大限度节约带宽,降低成本,就增加该值。建议将它的值改为1024KB。 (5)# minimum_object_size 0KB:小于该值的对象将不被存储在缓存里。默认值为0。 (6)# maximum_object_size_in_memory 8KB:指最大的能保存在内存中的对象。如果内存足够多,可以适当将数值调整得大一些,可以加快客户机读取大对象的速度。,(7)# cache_dir ufs /var/spool/Squid 100 16 256:设定硬盘缓存空间的位置、大小及其目录结构。格式为: ca

31、che_dir Type Directory-Name Fs-specific-data options 其中:Type是存储类型,一般设置为ufs。Directort-Name代表缓存的位置,默认设置是: cache_dir ufs /var/spool/squid 100 16 256 其中100代表缓存空间最大为100M;16和256代表缓存目录下的一级和二级目录数。 说明:可以用多个cache_dir命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘分区。,(8)# cache_swap_low 90、# cache_swap_high 95:指定Squid缓存数值超过或

32、低于某个百分比时和交换空间进行数据交换。当缓存比较大时,两个值可以设得比较小且比较接近。 (9)cache_mgr 管理员的邮件地址。在访问发生错误时,visible_hostname和cache_mgr这两个选项的值显示在错误提示页面内的相关位置。 cache_mgr (10)cache_effective_user:设定使用缓存的有效用户。默认为用户nobody,如果系统中没有用户nobody,最好建立nobody用户,也可以用非root用户运行Squid。,10.2.2 访问控制,控制用户的访问权限等功能是使用squid的访问控制特性来实现的。Squid 访问控制有两个要素:ACL和访

33、问列表。访问列表可以允许或拒绝某些用户对特定服务的访问。 1. 设置 ACL 为了使用控制功能,必须先设置 ACL。ACL 声明格式如下: acl acl_element_name type_of_acl_element values_to_acl 说明: (1)acl_element_name 可以是任一个在 ACL 中定义的名称。 (2)任何两个 ACL 元素不能用相同的名字。 (3)每个 ACL 由列表值组成。当进行匹配检测的时候,多个值由逻辑或运算连接;换言之,即任一 ACL的值被匹配,则这个ACL即被匹配。 (4)并不是所有的 ACL都能使用访问列表中的全部类型。 (5)不同的 AC

34、L写在不同行中,Squid 将把它们组合在一个列表中。,下面列出一些重要的 ACL类型: src 源地址(即客户机IP地址) dst 目标地址(即服务器IP地址) srcdomain 源域名 (即客户机域名) dstdomain 目标域名 (即服务器域名) time 一天中的时刻和一周内的一天 url_regex : URL 规则表达式匹配 urlpath_regex: URL-path 规则表达式匹配,略去协议和主机名 proxy_auth 通过外部程序进行用户验证 maxconn 单一 IP 的最大连接数,2. 访问列表,可以使用许多不同的访问列表。常用的是http_access: 允许

35、HTTP 访问,这个是主要的访问控制列表。 访问列表的规则由一些类似 allow 或 deny 的关键字构成,用以允许或拒绝向特定或一组 ACL 元素提供服务。这些规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束。 (1)一个访问列表可以由多条规则组成。 (2)如果没有任何规则与访问请求匹配,默认动作将与列表中最后的一条规则对应。 (3)一个访问条目中的所有元素使用逻辑与运算连接: http_access Action 声明1 AND 声明2 AND 声明 OR. http_access Action 声明3 多个 http_access 声明间用或运算连接,但每个

36、访问条目的元素间用与运算连接。 (4)列表中的规则总是遵循由上而下的顺序。 可以具体看看如何运用acl和http_access。首先把squid.conf的配置改回原状,即修改http_access allow all为http_access deny all。然后观察修改的结果。,3. 几种常用访问控制,下面给出几种常用访问控制: (1)根据IP认证 只有地址为192.168.100.10和192.168.100.100的终端可以使用代理 在squid.conf的ACCESS CONTROL配置部分添加 acl authorizedip src 192.168.100.10 acl auth

37、orizedip src 192.168.100.100 然后到http_access部分,在http_access deny all这一行前面添加: http_access allow authorizedip 如果需要设置的IP地址非常多,又不连续,为了不需要写上一大堆的acl xxx xxx x.x.x.x,可以把这些IP地址写在一个文件里,比如/etc/squid/authorizedip.txt,每行一个。然后在squid.conf里这样写: acl authorizedip src “/etc/squid/authorizedip.txt“,(2)根据时间控制 时间段的设置,可以参

38、见squid.conf中的说明,具体是S - Sunday, M - Monday, T - Tuesday, W - Wednesday, H - Thursday, F - Friday A - Saturday,如果七天都允许,也可以不写。时间格式是H1:M1-H2:M2,要求是前面的要小于后面的。 # 定义一个访问时间段:每周星期一到星期五的上午八点到下午五点,允许alloweduser用户在这个时间段内上网 acl accept_time time MTWHF 8:00-17:00 http_access allow alloweduser accept_time http_acce

39、ss deny alloweduser,(3)访问特定URL地址 虽然不希望所有的人都使用代理自由的访问Internet,但有几个网站是可以让内部终端都能访问的。在squid.conf里添加访问控制: acl alloweddomain dstdomain http_access allow alloweddomain 同样的,如果参数很多的情况,也可以把这些允许的地址名写到一个文本里: acl alloweddomain dstdomain “/etc/squid/alloweddomain.txt“ alloweddomain.txt里是允许访问站点的列表,每行一个。,(4)根据关键字

40、过滤网址 有些网站(色情网站,广告网站)很令人讨厌,通过设置acl可以屏蔽掉这些站点: acl denyurl url_regex sex boylink xxx city69 asiaadult sehu http_access deny denyurl 这个设置将过滤带有sex boylink xxx city69 asiaadult sehu这些关键字的URL地址。 和前面一样,也可以把这些关键字写到一个文本里 acl denyedurl url_regex “/etc/squid/sex.txt“ http_access deny denyurl,(5)基于用户的认证 Squid本身并

41、不支持用户验证,它是通过外部程序提供用户验证功能,用户通过squid访问前需要输入有效的用户名和密码。可以用proxy_auth ACL 和 authenticate_program实现在允许访问前强制进行用户名和密码的核查。下面列出一些 Squid可使用的验证程序: NCSA 使用 NCSA 风格的用户名和密码档 LDAP 使用轻型目录访问协议(Lightweight Directory Access Protocol) SMB 使用 SMB 协议的服务,如 SAMBA 或 Windows NT MSNT 使用 Windows NT 的域验证 PAM 使用 Linux 的可装载验证模块 Ge

42、tpwam 使用 Linux 密码文件,使用验证功能必须用authenticate_program 选项指定使什么验证程序,并且请确认选定的验证程序已安装并能很好地工作。这些验证程序默认位于/usr/lib/squid/目录下。 以NCSA认证为例,修改 squid.conf 文件,选定验证程序: authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/passwd acl alloweduser proxy_auth pangty http_access allow alloweduser 其中/etc/squid/passwd是用户

43、和密码列表,这个文件可以用apache软件包带的htpasswd来产生,它的内容可能是这样的: pangty:wCQhCeZOOF3vk 其中pangty是用户名,“:”号后面的是该用户的密码。,(6)支持基于MAC的控制 由于计算机的IP地址是随时可以更改的,另外,在使用DHCP来管理内部网络上的计算机的IP地址时,每台计算机每次获得的IP地址可能是不一样的,所以单纯的通过IP地址来控制上网权限并不适合所有的场合。而MAC地址相对是稳定的,一般网卡的MAC地址不能够更改,所以基于MAC地址的用户控制非常适合解决这两种情况带来的问题。 配置squid.conf来支持MAC地址认证,在squid

44、.conf里加入下面的内容: acl allowedmac arp 00:10:DC:8F:5B:FF http_access allow allowedmac 上面只是常用的几种ACL设置的示例,可以访问squid主页上FAQ文档的Access Controls部分获得更多的有关ACL的信息:,4. 重启squid 修改了squid.conf配置后,需要重新启动squid或者告诉squid重新装入配置文件才能起作用。执行: rootmylinux # /etc/rc.d/init.d/squid restart 不重启,只装入新的配置文件: rootmylinux # /etc/rc.d/i

45、nit.d/squid reload 以上是squid的常用的配置选项,这对于一般的应用来说已经足够了。 使用Squid 的缺点是需要较强的硬盘和较大内存。并且故障率相对较高。在系统中,软件越复杂,故障率就越高。对于规模不大的网络,在带宽足够并且需要长时间稳定工作又没有内容过滤等功能的要求的情况下,没有必要使用squid,单纯使用NAT方式就足够了。,10.3 使用ADSL,在Linux 上,使用ADSL拨号软件rp-pppoe来进行虚拟拨号。在拨号成功后,会产生一个ppp0 的虚拟网卡,并获得IP、默认网关、DNS 等参数,这些参数自动绑定在ppp0 上。 在安装程序内不能设置ADSL 账号

46、,需要先为网卡设置一个静态IP 用来确保网卡在启动时能正常激活。在服务器正常启动后,重新运行adsl-setup来设置ADSL账号。 如果网卡不能正常激活,ADSL拨号软件也无法正常工作。 ADSL环境通常经常使用两块网卡,一块接ADSL Modem,另一块接交换机(或HUB)。 可供参考的设置如下: eth0设置为192.168.0.1,子网掩码为255.255.255.0,接交换机; eth1设置为192.168.1.1,子网掩码为255.255.255.0,接ADSL Modem; 主机名为,网关不需要设置,DNS 设置为电信DNS 服务器的IP(DNS 的设置不是必须的)。,10.3.

47、1使用Webmin配置ADSL,在其他联网的机器用浏览器访问http:/服务器的IP:10000/,输入用户名root 和密码,即登录进入Webmin 管理界面。 点击【网络】【ADSL Client】进入ADSL 配置界面。如图10.10所示。,图10.10 ADSL 设置,在【以太网接口】栏里填入接ADSL Modem 设备的网卡号;在【登录用户名】栏里填入ADSL 账号;在【登录密码】栏里填入ADSL密码;其他请根据自己需要设置;设置完成以后点“保存设置”。然后,点【启动ADSL】即启动ADSL 连接。,10.3.2在服务器的shell 提示符下设置ADSL,在服务器的shell 提示符

48、下输入:adsl-setup 回车,进入配置对话。 rootCloud root# adsl-setup Welcome to the ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly. LOGIN NAME Enter your Login Name (default root): 在提示中输入ADSL 账号的用户名。,INTERFACE Enter the Ethernet interface connecte

49、d to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethX, where X is a number. (default eth0): eth1 然后输入 ADSL 设备所绑定的网卡,eth0 或者eth1、eth2 等。,Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter no (tw

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1