您好,欢迎访问三七文档
第11111111章SquidSquidSquidSquid代理服务的配置与应用本章导读�代理服务概述�Squid简介�Squid代理服务的安装�Squid代理服务的基本配置�初始化Squid�访问控制应用实例第11111111章SquidSquidSquidSquid代理服务的配置与应用�启动和停止代理服务�透明代理的实现�用户身份认证�使用MySAR实现Squid流量管理�代理客户端的配置11.1代理服务概述•代理服务器简介•代理服务器的原理代理服务器简介代理服务器是目前网络中常见的服务器之一,它可以提供文件缓存、复制和地址过滤等服务,充分利用有限的出口带宽,加快内部主机的访问速度,也可以解决多用户需要同时访问外网但公有IP地址不足的问题。同时可以作为一个防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加强局域网的安全性等。它的主要作用有以下几点。1.共享网络2.加快访问速度,节约通信带宽3.防止内部主机受到攻击4.限制用户访问,完善网络管理代理服务器的原理①客户端A向代理服务器提出访问Internet的请求。②代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息。③如果缓存中存在客户端A需要的信息,则将信息传送给客户端。如果不存在,代理服务器就代替客户端向Internet上的主机请求指定的信息。④Internet上的主机将代理服务器的请求信息发送到代理服务器中,同时代理服务会将信息存入缓存中。⑤代理服务器将Internet上主机的回应信息传送给客户端A。⑥客户端B向代理服务器提出相同的请求。⑦代理服务器也首先与访问控制列表中的访问规则相对照。⑧如果满足规则,则将缓存中的信息传送给客户端B。11.2Squid简介Squid是Linux和UNIX平台下最为流行的高性能免费应用层代理服务器,它具有权限管理灵活、性能高和效率快等特点。Squid是一个由众多在互联网上的开发人员共同努力完成的高性能的代理缓冲服务器,它的具体开发是由国家网络应用研究室(theNationalLaboratoryforAppliedNetworkResearch)的DuaneWessels主持,由NSF出资支持的。Squid的另一个优越性在于它使用访问控制列表(ACL)和访问权限列表(ARL)进行权限管理和内容过滤。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。11.3Squid代理服务的安装RedHatEnterpriseLinux5安装程序默认没有安装Squid服务,读者可以使用下面的命令检查系统是否已经安装了Squid服务或查看已经安装了何种版本。rpm-qsquidrpm-qsquidrpm-qsquidrpm-qsquid如果系统还没有安装Squid服务,可将RedHatEnterpriseLinux5第2张安装盘放入光驱,加载光驱后在光盘的Server目录下找到Squid的RPM安装包文件squid-2.6.STABLE6-3.el5.i386.rpm,使用下面的命令安装Squid。rpm-rpm-rpm-rpm-ivhivhivhivh/mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm/mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm/mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm/mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm11.4Squid代理服务的基本配置Squid主配置文件是/etc/squid/squid.conf,最基本的设置如下。http_port192.168.16.1:8080cache_mem64MBcache_dirufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquiddns_nameservers61.144.56.101cache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.logvisible_hostname192.168.16.1cache_mgrlindenstar@163.comaclallsrc0.0.0.0/0.0.0.0http_accessallowall11.4Squid代理服务的基本配置acl选项的格式如下。acl列表名称列表类型[-i]列表值•列表名称:用于区分Squid的各个访问控制列表,任何两个访问控制列表不能用相同的列表名。虽然列表名称可以随便定义,但为了避免以后不知道这条列表是干什么用的,应尽量使用有意义的名称,如badurl、clientip和worktime等。•列表类型:是可被Squid识别的类别。Squid支持的控制类别很多,可以通过IP地址、主机名、MAC地址和用户/密码认证等识别用户,也可以通过域名、域后缀、文件类型、IP地址、端口和URL匹配等控制用户的访问,还可以使用时间区间对用户进行管理•-i选项:表示忽略列表值的大小写,否则Squid是区分大小写的。•列表值:针对不同的类型,列表值的内容是不同的。例如,对于类型为src或dst,列表值的内容是某台主机的IP地址或子网地址;对于类型为time,列表值的内容是时间;对于类型为srcdomain和dstdomain,列表值的内容是DNS域名。11.4Squid代理服务的基本配置类型选项时间段,语法为:[星期][时间段]。[星期]:可以使用这些关键字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天)[时间段]:可以表示为10:00-20:00time单一IP的最大连接数maxconn通过外部程序进行用户认证proxy_auth略去协议和主机名的URL规则表达式匹配urlpath_regex:URL-pathURL规则表达式匹配url_regex一天中的时刻和一周内的一天time目标名称(服务器所属的域)dstdomain源名称(客户机所属的域)srcdomain目标IP地址(服务器IP地址)dst源IP地址(客户机IP地址)src说明命令11.4Squid代理服务的基本配置Squid会针对客户HTTP请求检查http_access规则,定义访问控制列表后,就使用http_access选项根据访问控制列表允许或禁止访问了。该选项的基本格式为:http_access[allow|deny]访问控制列表名称�[allow|deny]:定义允许(allow)或禁止(deny)访问控制列表定义的内容。�访问控制列表名称:需要http_access控制的ACL名称。11.5初始化Squid1.创建Squid使用硬盘缓冲区的目录结构/usr/sbin/squid–z2.设置Squid错误提示信息为中文在Squid的主配置文件/etc/squid/squid.conf中添加下列语句,并使用命令“/etc//etc//etc//etc/init.dinit.dinit.dinit.d/squidreload/squidreload/squidreload/squidreload”重新载入配置文件error_directory/usr/share/squid/errors/Simplify_Chinese11.6访问控制应用实例【例1】禁止IP地址为192.168.16.200的客户机上网。aclbadclientip1src192.168.16.200http_accessdenybadclientip1【例2】禁止192.168.1.0这个子网里所有的客户机上网。aclbadclientnet1src192.168.1.0/255.255.255.0http_accessdenybadclientnet1【例3】禁止用户访问IP地址为210.21.118.68的网站。aclbadsrvip1dst210.21.118.68http_accessdenybadsrvip1【例4】禁止用户访问域名为的网站。aclbaddomain1dstdomain-i访问控制应用实例【例5】禁止用户访问域名包含有163.com的网站。aclbadurl1url_regex-i163.comhttp_accessdenybadurl1【例6】禁止用户访问域名包含有sex关键字的URL。aclbadurl2url_regex-isexhttp_accessdenybadurl2【例7】限制IP地址为192.168.16.200的客户机并发最大连接数为5。aclclientip1src192.168.16.200aclconn5maxconn5http_accessdenyclient1conn1【例8】禁止192.168.2.0这个子网里所有的客户机在周一到周五的9:00到18:00上网。aclclientnet1src192.168.2.0/255.255.255.0aclworktimetimeMTWHF9:00-18:00http_accessdenyclientnet1worktime11.6访问控制应用实例【例9】禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件。aclbadfile1urlpath_regex-i\.mp3$\.exe$\.zip$\.rar$http_accessdenybadfile1【例10】禁止QQ通过Squid代理上网。aclqqurl_regex-itencent.comhttp_accessdenyqq11.7启动和停止代理服务1.启动代理服务/etc/init.d/squidstart2.停止代理服务/etc/init.d/squidstop3.重新启动代理服务/etc/init.d/squidrestart4.重新载入配置文件/etc/rc.d/init.d/squidreload11.7启动和停止代理服务5.自动启动代理服务如果需要让代理服务随系统启动而自动加载,可以执行“ntsysvntsysvntsysvntsysv”命令启动服务配置程序,找到“squid”服务,在其前面加上星号(*),然后选择“确定”即可。11.8透明代理的实现•透明代理的简介•配置Squid•配置iptables透明代理的简介透明代理是NAT和代理的完美结合,之所以称为透明,是因为在这种工作方式下用户感觉不到代理服务器的存在,不需要在浏览器或其他客户端工具(如网络快车等)中作任何设置,客户机只需要将默认网关设置为Linux服务器的IP地址即可。当客户机访问Internet,请求数据包经过Linux服务器转发时,Linux服务器上的iptables将客户机的HTTP请求重定向到Squid代理服务器,由代理服务器代替客户机访问外部信息资源,再将获取的数据传回客户机。配置SquidSquid主配置文件/etc/squid/squid.conf:http_port192.168.16.1:8080cache_mem64MBcache_dirufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquiddns_nameservers61.144.56.101cache_acce
本文标题:Red.Hat.Linux服务器配置与应用(第2版)第11章 Squid代理服务的配置与应用
链接地址:https://www.777doc.com/doc-6168364 .html