




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章代理服务器配置 第10章代理服务器配置 10 1代理服务器概述10 2Squid安装10 3Squid服务器的基本配置10 4Squid服务器的高级配置10 5配置代理客户端 10 1代理服务器概述 代理服务器简介 代理服务器的英文是ProxyServer 是用户与网络信息的中转站 其功能就是代理网络用户去取得网络信息 让多台没有公有IP地址的客户端高速 安全地访问互联网资源 代理服务器的主要作用包括共享网络 访问代理 防止攻击 掩藏身份 突破限制 提高速度 起到防火墙的作用 方便对用户管理等 代理服务器简介 1 共享网络共享上网是目前代理服务器最为广泛的用途之一 使用网络共享等代理服务器 可以很好地解决IP资源不足的问题 最为常见的就是使用一个公有IP地址满足整个局域网用户的上网需求 常见的代理服务器有Squid Sygate CCproxy等 2 访问代理通过代理访问不仅可以让用户访问暂时无法访问的网站 若巧妙利用 还可以有效地避免网络拥挤的情况 另外 直接读取服务器上的信息 还可以大大加快访问速度 节约网络资源 代理服务器简介 3 防止攻击内部主机的访问是通过代理服务器完成的 在这个过程中 内部主机地址等信息不会发送到外部 隐藏了自己的真实地址信息 还可隐藏自己的IP地址 这样外部攻击者就无法通过扫描 刺探等方式对内部主机进行渗透 进而起到保护内部主机的作用 4 掩藏身份使用代理服务器的反向代理功能 可以隐藏内网用户的身份信息 是用户能安全地对外发布信息 从而保证内部网络的安全 代理服务器简介 5 突破限制由于互联网上有许多开放的代理服务器 当客户在访问权限受到限制时 通过代理服务器访问目标网站就成为可能 国内的高校大多使用教育网 不能出国 但通过代理服务器 就能实现访问Internet 6 提高速度提高下载速度 突破下载限制 例如 有的网站提供的下载资源 做了一个IP地址一个下载线程的限制 这时候能用影音传送带 设置多线程 为每个线程设置一个代理 对于限制一个IP地址的情况非常好突破 只要用不同的代理服务器 就可同时下载多个资源 适用于从Web和FTP上下载的情况 代理服务器简介 7 起到防火墙的作用由于所有使用代理服务器的用户都必须通过代理服务器访问远程站点 因此在代理服务器上就可以设置相应的限制 以过滤或屏蔽掉某些信息 这是局域网网管对局域网用户访问范围限制最常用的办法 也是局域网用户为什么不能浏览某些网站的原因 拨号用户如果使用代理服务器 同样必须服从代理服务器的访问限制 除非你不使用这个代理服务器 8 方便对用户管理通过代理服务器 管理员可以设置用户验证和记账功能 对用户进行记账 没有登记的用户无权通过代理服务器访问Internet 并对用户的访问时间 访问地点 信息流量进行统计 代理服务器的工作原理 代理服务器是一种以HTTP协议为基础的服务软件 是建立在TCP IP协议应用层上的 总的来说 代理服务器的工作流程分为4个部分 客户端向服务器发送的请求到达代理服务器 代理服务器把请求发给客户端真正需要联系的服务器 服务器向代理服务器返回响应 代理服务器把响应返给客户端 代理服务器的工作原理 客户端A通过代理服务器访问互联网上的远程Web服务器的具体流程如下 1 启动代理服务器 此时代理服务器的主进程将监听某个绑定的端口并初始化缓存 2 客户端A向代理服务器发送访问请求 3 代理服务器在收到请求后创建一个子进程以应对该请求 代理服务器的工作原理 4 代理服务器与客户端A建立连接 然后解析客户端发出的请求并按照预设的访问规则验证该请求 5 子进程开始查询缓存 根据查询结果进行不同处理 处理一般分为两种情况 一种是 若缓存中有客户端A请求的信息 并且该信息没有过期 则将信息直接发送给客户端A 另外一种情况是 若缓存中有客户端A请求的信息 但该信息已经过期 则子进程代理客户端A向目标Web服务器发出请求 代理服务器的工作原理 6 目标Web服务器响应代理服务器子进程发来的请求 同时代理服务器子进程依据具体的缓存更新算法更新代理服务器缓存 7 代理服务器子进程将目标Web服务器回应的信息转送给客户端A 子进程将目标Web服务器回应的信息转送给客户端A 8 代理服务器子进程处理完客户端A的代理服务后 进程自动终止 所有相关资源全部释放 10 2Squid安装 Squid简介 对于Web用户来说 Squid是一个高性能的代理缓存服务器 可以加快内部网浏览Internet的速度 提高客户机的访问命中率 Squid不仅支持HTTP协议 还支持FTP gopher SSL和WAIS等协议 和一般的代理缓存软件不同 Squid用一个单独的 非模块化的 I O驱动的进程来处理所有的客户端请求 Squid将数据元缓存在内存中 同时也缓存DNS查寻的结果 除此之外 它还支持非模块化的DNS查询 对失败的请求进行消极缓存 Squid支持SSL 支持访问控制 由于使用了ICP Squid能够实现重叠的代理阵列 从而最大限度的节约带宽 Squid简介 Squid由一个主要的服务程序Squid 一个DNS查询程序DNSServer 几个重写请求和执行认证的程序 以及几个管理工具组成 当Squid启动以后 它可以派生出指定数目的DNSServer进程 而每一个DNSServer进程都可以执行单独的DNS查询 这样一来就大大减少了服务器等待DNS查询的时间 Squid的另一个优越性在于它使用访问控制清单 ACL 和访问权限清单 ARL 访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接 可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点 Squid简介 Squid代理服务器对于硬件的要求很高 因为架设代理服务器的目的就是希望能够加快网络的传输速度 Squid对硬件的具体要求如下 1 CPU足够好 2 RAM足够大 这是一个很重要的硬件参数 3 HardDisk优先选择SCSI接口的 这样能保证速度与稳定度都比较好 Squid的安装 1 rpm包的安装 1 查询是否安装了Squid服务 输入如下命令 rpm qsquid 2 将RedHatEnterpriseLinux5安装光盘放入光驱中 在shell提示符下输入命令挂载光驱 并进入光盘安装目录 mount dev cdrom mnt cdrom cd mnt cdrom Server 3 在shell提示符下命令 安装软件包 执行rpm ivhsquid 2 2 STABLE4 8 I386 rpm Squid的安装 2 源代码包的安装 1 从http www squid cache org下载squid 2 2 STABLE4 src tar gz 2 将该文件拷贝到 usr local目录 3 解开该文件tarxvzfsquid 2 2 STABLE4 src tar gz 在 usr local目录下生成一个新的目录squid 2 2 STABLE4 为了方便使用mvsquid 2 2 STABLE4squid将目录更名为squid 4 进入squid目录 Squid的安装 5 执行 configure 可以用 configure prefix directory you want指定安装目录 系统默认安装目录为 usr local squid 6 执行makeall 7 执行makeinstall 8 安装结束后 Squid的可执行文件在安装目录的bin子目录下 配置文件在etc子目录下 10 3Squid服务器的基本配置 Squid服务配置文件 1 目录结构Squid通常创建几个目录 它们一般如下 usr local squid bin cache etc logs src bin包括Squid本身的程序 以及其它程序如ftpget 它可以被Squid用来执行各种功能 cache 目录是实际缓冲数据的存放区 etc 包含squid conf文件 它是唯一的Squid配置文件 logs 目录可能会很大 特别是如果你包含同属时 它们会查询你每一次连接 这可以使你的log文件双倍增加 src 一般包括你运行Squid版本的源文件 Squid服务配置文件 2 基本配置所有的Squid配置集中到一个文件 squid conf 这个配置允许所有的人访问缓冲区 并创建一个100M的缓冲区 使用8M的内存 保持最小型的logs 而且存储所有文件到默认区域 这一般指的是所有文件将以Squid用户 Squid组的名义存储到 usr local squid cache 中 所有客户请求将来自于3128端口 并且所有 内部缓冲 inter cache 流量将走UDP端口3130 Squid服务配置文件 3 运行SquidSquid由一个脚本正常运行 这个脚本在它的进程死掉后重启Squid 这里有脚本的两种版本 usr local squid bin RunCache和 usr local squid bin RunAccel RunCache脚本一般在前台运行 所以启动Squid 输入以下内容 usr local squid bin RunCache 然后用以下命令查看主Squidlog文件 usr local squid logs cache log more usr local squid logs cache log Squid服务常用设置 1 设置监听的IP地址和端口 squid conf 配置文件中的http port参数设置便是为了告诉SquidServer在哪个IP地址的哪个端口侦听来自客户机的HTTP请求 该参数默认的配置是在本机的3128端口进行侦听 该参数的默认定义如下 http port3128当将SquidServer作为Web服务器的加速器应用时 通常会将该参数设置为80 http port80当需要Squid侦听多个端口时 可以通过附加一行http port参数定义实现 Squid服务常用设置 另外 我们也可以使用参数http port来指明在哪个接口地址的端口上进行侦听 例如 当Squid作为防火墙运行时 它有两个网络接口 一个内部接口和一个外部接口 我们可能不想接收来自外部的HTTP请求 但需要接收来自内部的HTTP请求 为了使Squid仅仅侦听内部接口 达到前面阐述的规则约束 我们的实现方案如下 http port192 168 1 100 3128 Squid服务常用设置 2 设置缓冲大小代理服务器的一个很重要的功能是缓冲和存储数据 在Squid服务器中 主要使用cache mem cache dir cache swap low和cache swap hig这四个参数来设置缓冲容量的大小 1 cache mem参数cache mem并非用于指定Squid进程开辟的内存缓存的最大值 它只是设定额外提供多少内存给Squid使用 这里的额外是指Squid会将最常用的一些缓存放到这块内存中 Squid服务常用设置 2 cache dir参数cache dir告诉Squid以何种方式将Cache文件存储到磁盘的什么位置 参数cache dir的定义格式如下 cache dirschemedirectorysizeL1L2 options 参数cache dir的很多功能体现在其子参数上 cache dir常用的子参数描述如下 1 scheme Squid支持许多不同的存储机制 默认的是ufs 依赖于操作系统的不同 你可以选择不同的存储机制 在 configure时 你必须使用 enable storeio LIST选项来编译其他存储机制的附加代码 Squid服务常用设置 2 directory 该参数是文件系统目录 Squid将cache对象文件存放在这个目录下 在正常的情况下 cache dir使用整个文件系统或磁盘分区 它通常不介意是否在单个文件系统分区里放置了多个cache目录 假如你有两个无用磁盘 则可以这样做 newfs dev da1d newfs dev da2d mount dev da1d cache0 mount dev da2d cache1然后在squid conf里增加如下两行 cache dirufs cache0700016256cache dirufs cache1700016256 Squid服务常用设置 假如你没有空闲硬盘 当然也能使用已经存在的文件系统分区 选择有大量空闲空间的分区 例如 usr或 var 在下面创建一个新目录 mkdir var squidcache然后在squid conf里增加如下一行 cache dirufs var squidcache700016256 Squid服务常用设置 3 size 该参数指定了cache目录的大小 这是Squid能使用的cache dir目录的空间上限 计算出合理的值也许有点难 但你必须给临时文件和swap state日志留出足够的自由空间 4 L1L2 对ufs aufs和diskd机制 Squid在cache目录下创建二级目录树 L1和L2参数指定了第一级和第二级目录的数量 默认是16和256 Squid服务常用设置 5 options Squid有两个依赖于不同存储机制的cache dir选项 read only标签和max size值 read only选项指示Squid继续从cache dir读取文件 但不往里面写新目标 它在squid conf文件里看起来如下 cache dirufs cache0700016256read only通过max size选项 可以指定存储在cache目录里的最大目标大小 Squid服务常用设置 3 cache swap low和cache swap high参数cache swap low和cache swap high控制了存储在磁盘上对象的置换 它们的值是最大cache体积的百分比 这个最大cache体积来自于所有cache dir大小的总和 例如 cache swap low100cache swap high110 Squid服务常用设置 3 其他参数设置1 cache effective user参数root来启动Squid时 Squid使用nobody作为默认值 这需要使用cache effective user参数设定使用缓冲的有效用户 当然在设定有效用户时 不管你选择什么用户ID 都必须保证它有对下面目录的读访问权 usr local squid etc usr local squid libexec和 usr local squid share 该用户ID也必须对日志文件和缓存目录拥有写访问权 Squid服务常用设置 2 cache effective group参数设定使用缓存的有效用户组 Squid也有一个cache effective group命令 但我们可以不必设置它 在默认情况下Squid使用cache effective user的默认组 从 etc passwd文件读取 3 设定DNS服务器的地址为了能够使Squid解析域名 必须告诉Squid有效的DNS服务器 例如有效的DNS服务器地址为 61 144 56 101 对应的设置命令如下 dns nameservers61 144 56 101 Squid服务常用设置 4 设置日志文件路径在默认情况下 日志目录是Squid安装位置下的logs目录 当我们在安装过程的 configure环节中没有使用 prefix 选项时 则默认的日志文件路径是 usr local squid var logs Squid有3个主要的日志文件 cache log access log和store log 详细描述如表所示 Squid服务常用设置 Squid服务常用设置 Squid服务常用设置 5 设置运行Squid主机的名称vsible hostname参数定义了运行Squid主机的名称 当访问发生错误时 该参数的值会显示在错误提示网页中 建议输入主机的IP地址 visible hostname192 168 11 1016 设置管理员的联系信息设置cache mgr参数是作为对终端用户的帮助 它是一个E mail地址 假如问题发生 用户能写信给它 cache mgr地址默认出现在Squid的错误消息里 Squid的启动和停止 1 初始化Squid在第一次启动Squid服务之前 一定要使用squid z命令来帮助Squid在硬盘缓存中建立cache目录 或者重新设置了cache dir字段后 也需要使用该命令来重新建立硬盘缓存目录 2 Squid服务的启动 root localhost servicesquidstart Squid的启动和停止 3 Squid服务的停止如果想关闭Squid服务需要输入下列命令 root localhost servicesquidstop关闭Squid服务除上述方法外 我们还可以运用kill命令强行停止代理服务器的方法 首先可以用命令ps找到Squid的进程ID 然后手工停止Squid进程 具体做法如下 root localhost psax grepsquid root localhost kill TERM3421 Squid的启动和停止 4 Squid服务的重新启动 root localhost servicesquidrestart提示 我们可以使用下列一组命令 来实现Squid服务的启动 关闭等操作 分别是 1 启动代理服务器 root localhost usr sbin squid s 2 停止代理服务器 root localhost usr sbin squid kshutdown 3 重新启动代理服务器 root localhost etc init d squidrestart 4 重新载入配置文件 root localhost etc rc d init d squidreload Squid的启动和停止 5 自动启动代理服务器最容易的方法之一是修改 etc rc local 脚本 这是一个简单的shell脚本 在每次系统启动时以root运行 使用该脚本来启动Squid非常容易 增加一行下列命令 usr local squid sbin squid s Squid的启动和停止 除上述命令行方法外 也可以采取图形界面操作来完成服务器自动启动设置 具体步骤如下 1 在菜单栏里执行 系统 管理 服务 2 在打开的服务配置窗口中 在后台选项卡内选中 squid 然后执行 保存 10 4Squid服务器的高级配置 代理服务器用户访问控制 为了能够让所有终端客户通过Squid代理服务器访问Internet资源 在所有终端能使用该代理服务器之前 必须首先在 squid conf 文件里加入附加的访问控制规则 附加访问控制规则最简单的实现方法就是定义一个针对终端客户IP地址的访问控制列表 AccessControlList ACL 和一系列访问规则 告诉Squid服务器允许来自哪些IP地址的HTTP请求 代理服务器用户访问控制 acl参数定义的语法格式如下 ACLnametypevalue1value2 1 列表名称上面格式中的name是访问控制的列表名称 用于区分Squid的各个访问控制列表ACL 任何两个ACL不能定义相同的列表名称 代理服务器用户访问控制 2 列表类型列表类型 是可以被Squid识别的类型 Squid支持的列表类型很多 在这里按照重要性的降序来列举它们 代理服务器用户访问控制 代理服务器用户访问控制 3 列表值针对不同的类型 列表值的内容是不同的 比如 禁止IP地址为192 168 16 202的客户机上网 我们可以使用下列代码 ACLbadclientip1src192 168 16 202http accessdenybadclientip1如果禁止用户访问域名为的网站 则可以运行一下代码 Aclbanddomain1dstdomain http accessdenybanddomain1 实现透明代理 透明代理是把NAT技术和代理技术二者有机结合起来的一种应用 在这种工作模式下终端用户感觉不到代理服务器的存在 不需要在浏览器或其他客户端工具 如网际快车 QQ 迅雷等 中设置任何代理 只需将Linux服务器的IP地址设置为默认网关即可 在Linux平台下我们使用iptables和Squid来实现透明代理和网络地址转换 实现透明代理 1 配置Squid在 etc squid squid conf 文件中需修改的参数 实现透明代理 2 编写防火墙规则iptables在此所起的主要作用是端口重定向 执行如图的命令将所有进入eth0网络接口80端口的Web服务的请求直接转发到8080端口 交由Squid代理处理 反向代理加速Web网站 1 反向代理反向代理也就是通常所说的WEB服务器加速 它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器 即 WEB反向代理服务器 squid反向代理服务器 来降低实际的WEB服务器的负载 反向代理加速Web网站 Web服务器加速 反向代理 是针对Web服务器提供加速功能的 它作为代理Cache 但并不针对浏览器用户 而针对一台或多台特定Web服务器 大量Web服务工作量被卸载到反向代理服务上 不但能够防止外部网主机直接和web服务器通信带来的安全隐患 而且能够很大程度上减轻web服务器的负担 提高访问速度 所以说利用反向代理服务器可以大大提高WEB服务器的性能和安全性 反向代理加速Web网站 2 实现Squid反向代理首先 需要安装squid 并且编辑squid服务器主配置文件 vim etc squid squid conf添加以下语句 http port80vhost vhost是用来支持虚拟主机的 如果没有此项指令 那么就不能为虚拟主机做代理 反向代理加速Web网站 查找Insert然后在其下方添加规则以及匹配规则的语句 Cache peer172 20 84 122parent800no queryoriginserverweight 1name 0807 规则 这里的ip是web服务器的ipCache peer 匹配规则Cache peer 那么这里所指的fengye和myshop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园音乐讲座活动方案策划
- 天津成套钢支撑施工方案
- 无人机驾驶员岗位操作技能考核试卷及答案
- 咨询公司的方案部
- 幕墙设计咨询方案模板
- 幼儿职业绘画活动方案策划
- 洋湖移动咨询方案
- 奶茶甜品店营销计划方案
- 草莓节事活动策划方案
- 拼多多线下活动方案策划
- 2025-2030滑雪培训行业市场发展分析及前景趋势预测与投资可行性评估报告
- 课堂高效学习的主阵地 教学设计-2023-2024学年高中上学期主题班会
- 2025年放射工作人员培训考试试题(附答案)
- 高考熟词生义解密(复习讲义)-2026年高考英语一轮复习(北京专用)挖空版
- 2025年陕西省专业技术人员继续教育公需课答案
- 2025年北京市中考英语试卷(含答案与解析)
- 浙江名校协作体(G12)2025年9月2026届高三返校联考英语(含答案)
- 骨科手术分级目录
- 审计局工程结算审计报告模板
- 破除人行道板及恢复专项工程施工方案
- 土建劳务施工合同模板土建劳务分包合同.doc
评论
0/150
提交评论