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是没有禁止的,实际测试效果如下:

? 可以看到,实际测试效果和理论上是一样的。
透明正向代理
正向代理服务一般是针对企业内部的所有员工设置的,鉴于每位员工所掌握的计算机知识不尽相同,如果您所在的公司不是IT行业的公司,想教会大家如何使用代理服务也不是一件容易的事情。再者,无论是什么行业的公司,公司领导都希望能采取某些措施限制员工在公司内的上 行为,这时就需要用到透明的正向代理模式了。
“透明”二字指的是让用户在没有感知的情况下使用代理服务,这样的好处是一方面不需要用户手动配置代理服务器的信息,进而降低了代理服务的使用门槛;另一方面也可以更隐秘地监督员工的上 行为。
在透明代理模式中,用户无须在浏览器或其他软件中配置代理服务器地址、端口 等信息,而是由DHCP服务器将 络
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!