linux-运维进阶-21 Squid部署代理缓存服务

linux-运维进阶-21 Squid部署代理缓存服务

概念解析

Squid

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

squid分类

按照代理类型的不同,可以将Squid代理分为正向代理和反向代理。

正向代理:根据实现方式的不同,又可以分为普通代理和透明代理。
    1)普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
    2)透明代理:适用于企业的 关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部 络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

?

? 代理服务器英文全称是Proxy Server,其功能就是代理 络用户去取得 络信息。

? Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请 站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

Squid代理服务器工作在TCP/IP的应用层:

? 在之前的文章中,我们讲解过 络适配器三种模式的工作原理,本次实验设置如下:

设置

1.虚拟机Server

3.VMware Workstation Pro设置

? 点击图中更改设置即可更改,这里放出的图是改好后的图。

查看本机ip(虚拟机win10)

由上面两张图我们得知了虚拟机WIN10的ip是192.168.23.53

虚拟机Server的ip分别是192.168.23.52和192.168.1.106

为了实验更加清晰明了,我们把分配好的ip加到拓扑图里,新的拓扑图如下:

检查Server是否可以连接外 和ping通虚拟机WIN10(ping需要手动用ctrl+c打断)

安装squid程序,并查看配置文件

参数 作用
http_port 3128 监听的端口
cache_mem 64M 内存缓冲区的大小
cache_dir ufs /var/spool/squid 2000 16 256 硬盘缓冲区的大小
cache_effective_user squid 设置缓存的有效用户
cache_effective_group squid 设置缓存的有效用户组
dns_nameservers [IP地址] 一般不设置,而是用服务器默认的DNS地址
cache_access_log /var/log/squid/access.log 访问日志文件的保存路径
cache_log /var/log/squid/cache.log 缓存日志文件的保存路径
visible_hostname linuxprobe.com 设置Squid服务器的名称

正向代理

开启ip forward(路由转发)

放行所有http访问

安装openssl

关闭防火墙

squid加上DNS,重启squid服务

一开始,我们的虚拟机WIN10客户端是无法上 的,所以要设置代理。

虚拟机WIN10设置客户端代理,如下图:

? 可以看到咱们的虚拟机WIN10仍然可以上外 ,这是由于acl client src 192.168.23.53放行了它的ip所致:

看看它的ip:

现在开了三台虚拟机,电脑非常卡,可以把这台新的虚拟机关掉了,接下来我们继续回到正题,继续做代理实验。

特别注意:

本次实验特别坑的地方是,不把Server上的防火墙关掉,客户端就无法访问外 !而且,如果实验中途把Server关机了,重新启动后又得再次关闭防火墙! 上大多数的教程都没有说这一步,导致非常多初次做实验的同学们都被坑死在这里。

过滤敏感字

修改配置文件(还原上次实验的更改后再做,还原的相关命令也在下面)

禁止访问特定 站

修改配置文件(可以接着上述实验的更改继续再做,相当于叠加过滤)

注意,我们平时访问qq官 ,是https的 址:https://www.qq.com,但是由于咱们的Server现在针对的是http协议进行过滤的,就连配置文件里也全都是“http_access”的字段,所以我们测试用的是http://www.qq.com。

效果对比:

现在回到刚刚的测试页面,刷新一下,可以看到它自动的从http://www.qq.com跳转到了https://www.qq.com,成功访问了qq官 。

如下图,我们这里用下载nodejs软件历史版本的 站https://nodejs.org/dist/v0.6.2/来测试,分别点开三个文件对比测试:

node-v0.6.2.msi

node.exe

node-v0.6.2.tar.gz

? 理论上,我们禁止下载了msi和exe后缀格式的文件,那么tar.gz是没有禁止的,实际测试效果如下:

linux-运维进阶-21 Squid部署代理缓存服务

? 可以看到,实际测试效果和理论上是一样的。

透明正向代理

正向代理服务一般是针对企业内部的所有员工设置的,鉴于每位员工所掌握的计算机知识不尽相同,如果您所在的公司不是IT行业的公司,想教会大家如何使用代理服务也不是一件容易的事情。再者,无论是什么行业的公司,公司领导都希望能采取某些措施限制员工在公司内的上 行为,这时就需要用到透明的正向代理模式了。

“透明”二字指的是让用户在没有感知的情况下使用代理服务,这样的好处是一方面不需要用户手动配置代理服务器的信息,进而降低了代理服务的使用门槛;另一方面也可以更隐秘地监督员工的上 行为。

在透明代理模式中,用户无须在浏览器或其他软件中配置代理服务器地址、端口 等信息,而是由DHCP服务器将 络

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月22日
下一篇 2019年2月22日

相关推荐