squid代理缓存服务

使用Squid服务程序部署代理缓存服务

5/13/2018 9:46:42 AM

  • 简介
      1. 代理缓存服务
      1. 安装Squid服务程序,提供标准正向代理服务
      1. 透明正向代理服务
      1. 反向代理服务

一、代理缓存服务

A. 代理缓存服务器基本结构

  • B. 代理客户端去请求服务器,隐藏了真实客户端,服务器并不知道真实的客户端是谁。正向代理中,代理服务器代理的是客户端,代理服务器和客户端是一伙的。

标准正向代理拓扑图,如下所示

实际的拓扑结构图

用途:

1、访问原来无法访问到的资源。
目前普遍不使用代理服务器,当我们PC处于内部网络时,网关会使用NAT(网络地址转换)技术,将PC内部ip地址和外网ip地址进行转换,使PC的请求能够到达外部网络的服务器。

2、做缓存优化。

3、客户端访问控制管理,提高安全性。

  • C.反向代理隐藏了真正的服务端,就像我们使用百度的时候,只知道敲打www.baidu.com就可以打开百度搜索页面,但背后成千上万台百度服务器具体是哪一台为我们服务的,我们并不知道。我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务的那台服务器那里去。反向代理中,代理服务器代理的是后端服务器,代理服务器和后端服务器是一伙的

反向代理拓扑图,如下所示

实际的拓扑结构图

用途:
**1、缓存优化。
2、负载均衡。
3、提高安全性。**

综上所述:正向代理代理对象是客户端,反向代理代理对象是服务端。

二、 安装Squid服务程序,提供标准正向代理服务

  • 基本过程

    - 1. 安装Squid服务程序
    - 2. 重启squid服务程序,并加入开机启动 systemctl restart/enable squid
    - 3. 为服务端添加网卡,使仅主机模式可以正常上网
    - 4. 客户端测试正向代理服务
    
1. 安装Squid服务程序 yum install -y squid

2. 重启squid服务程序,并加入开机启动 systemctl restart/enable squid

3. 为服务端添加网卡,使仅主机模式可以正常上网

设置服务端网卡信息

重启网卡,并查看新添加的网卡信息

清空防火墙,并保存防火墙设置。实际的环境中需要配置相应的防火墙规则链,此处请注意

4. 客户端测试正向代理服务

设置浏览器的代理,配置代理服务器的相关网络参数

设置好代理服务器后,客户端可以正常访问百度等网站

正常显示百度网站的主页

三、透明正向代理服务 ###

百科定义:透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序

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

在透明代理模式中,用户无须在浏览器或其他软件中配置代理服务器地址、端口号等信息,而是由DHCP服务器将网络配置信息分配给客户端主机。这样只要用户打开浏览器便会自动使用代理服务了。如果此时并没有配置DHCP服务器,可以手动配置客户端主机的网卡参数(默认网关和DNS域名服务)。

实际上是通过网关进行了代理服务,为用户提供网络服务。

技术实现:通过SNAT技术完成数据的转发,让客户端主机将数据交给Squid代理服务器,再由后者转发到外网中。简单来说,就是让Squid服务器作为一个中间人,实现内网客户端主机与外部网络之间的数据传输。


让内网中的客户端主机能够正常访问外网,客户端主机首先要能获取到DNS地址解析服务的数据,这样才能在互联网中找到对应网站的IP地址。下面通过iptables命令实现DNS地址解析服务53端口的数据转发功能,并且允许Squid服务器转发IPv4数据包。sysctl -p命令的作用是让转发参数立即生效

sysctl -p 命令的作用是让转发参数立即生效

1. 编辑squid服务的主配置文件,开启有名代理模式与缓存

2. 使用squid -k parse命令检查主配置文件是否有错误,

使用squid -z命令对Squid服务程序的透明代理技术进行初始化 ,并重启squid服务

初始化squid

3.SNAT数据转发功能–使用iptables防火墙管理命令把所有客户端主机对网站80端口的请求转发至Squid服务器本地的3128端口上

4.设置客户端的网络参数

5.测试客户端代理服务

可以正常访问百度网站主页

四、ACL访问控制

Squid服务程序的ACL是由多个策略规则组成的,它可以根据指定的策略规则来允许或限制访问请求,而且策略规则的匹配顺序与防火墙策略规则一样都是由上至下;在一旦形成匹配之后,则立即执行相应操作并结束匹配过程。为了避免ACL将所有流量全部禁止或全部放行,起不到预期的访问控制效果,通常会在ACL的最下面写上deny all或者allow all语句,以避免安全隐患。

1. 只允许IP地址为192.168.10.20的客户端使用服务器上的Squid服务程序提供的代理服务,禁止其余所有的主机代理请求。

客户端由于IP符合禁止规则,所以不能通过代理服务正常访问京东

其网络参数如下:


更换IP后可以正常访问网站

2. 禁止所有客户端访问网址中包含linux关键词的网站

由于客户端访问的网址包含linux关键字,所以其不可以通过代理服务器访问包含linux关键字的网站

同样,还可以禁止访问指定的网址和相应内部下载带有某些后缀的文件

acl deny_url url_regex http://www.taobaobao.com   #禁止客户端访问指定的网址

acl badfile urlpath_regex -i \.mp3$ \.rar$   #禁止下载带有指定后缀名的文件

注:修改主配置文件后,记得重启squid服务,使squid的配置文件生效,其他的禁止策略后续更新

五、反向代理服务

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

1. 安装Squid服务程序

2. 编辑虚拟机的网卡为桥接模式,使其可以正常访问网络

3. 编辑虚拟的网卡参数

4. 修改其为自动获取IP(DHCP)

5. 修改Squid服务的主配置文件,设置新节点主机参数与源服务器的参数

6. 未重启Squid服务前,通过新节点无法访问源服务器的网站

7. 重启Squid服务后,可通过新节点访问源服务器的网站

注:以上如有不妥,请留言,会立即回复

猜你喜欢

转载自blog.csdn.net/amimidou_212/article/details/80394888