squid在企业网中的应用

 

 

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid扮演着中介的角色,从浏览器等客户端程序接受请求,并把它传递给请求的url所指向的internet服务器,然后把返回的数据传递给客户端,同时存储一份副本在磁盘缓存中。

 

从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。

 

 

clip_image002

 

Web缓存的类型和特点

 

 

Web缓存的位置可以有三种,一是可以防止在客户端,二是放在服务器,三是放在客户端与服务器之间的某个网络节点上,这个网络节点就是web代理服务器。

 

1 客户端缓存

2 代理服务器缓存

3 服务器缓存

 

三种典型的代理方式

 

 

1 传统代理

2 透明代理

3 反向代理

 

 

一 传统代理

 

 

Squid的安装

 

clip_image004

 

查看配置文件

 

clip_image006

 

配置网卡 服务器需要两个网卡

 

clip_image008

 

 

clip_image010

 

客户端配置地址

 

clip_image012

 

配置代理服务器

 

clip_image014

 

需要把浏览器访问级别调低点

 

clip_image016

 

配置etc/squid/squid.conf文件

 

clip_image017

clip_image019

访问被阻止

clip_image021

 

配置允许通过

 

clip_image023

clip_image024

 

代理访问成功

 

clip_image026

 

编辑 vim /etc/squid/squid.conf

 

编写策略 访问控制

 

clip_image028

 

编辑过后要重启服务才能生效

 

clip_image030

 

访问被禁

 

clip_image032

 

改变一下地址

 

clip_image034

 

访问成功

 

clip_image036

 

2  拒绝访问的地址范围

acl nono src 192.168.145.20-192.168.101.24 /32

http_access deny nono 拒绝访问的地址池配置

 

 

3  配置访问目的和允许访问的主机地址

acl mudiip dst 192.168.145.254 /32

acl yunxuip src src 192.168.145.10 /32

http_access deny !yunxuip mudiip  拒绝不是yunxuip的ip访问mudiip

 

 

4  域名控制 (应用层)

acl srcdomain

acl noweb dstdomain www.sina.com.cn

http_access deny noweb

 

 

5 禁止192.168.2.0子网内的所有客户机在周一到周五的9:00到18:00上网

acl  clientnet1 src 192.168.2.0/255.255.255.0

acl worktime time MTWHF 9:00-18:00

http_access  deny clientnet1 worktime

 

6 禁止用户访问含有sex关键字的URL

acl  badurl2 url_regex  -i  sex

http_access  deny  badurl2

 

 

7 限制IP地址为192.168.16.200客户机并发最大连接数为5

acl clientip1  src  192.168.16.200

acl  conn5  maxconn 5

http_access  deny clientip1 conn5

 

 

8 禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件

acl badfile1 urlpath_regex -i  \.mp3$ \.exe$ \.zip$ \.rar$

http_access  deny  badfile1

 

9 禁止QQ通过Squid代理上网

acl qq  url_regex -i tencent.com

http_access  deny qq

 

 

二 透明代理

 

 

透明模式的防火墙就好象是一台网桥(非透明的防火墙好象一台路由器),网络设备(包括主机、路由器、工作站等)和所有计算机的设置(包括IP地址和网关)无须改变,同时解析所有通过它的数据包,既增加了网络的安全性,又降低了用户管理的复杂程度。

原理

透明代理的原理如下:假设A为内部网络客户机,B为外部网络服务器,C为防火墙。当A对B有连接请求时,TCP连接请求被防火墙截取并加以监控。截取后当发现连接需要使用代理服务器时,A和C之间首先建立连接,然后防火墙建立相应的代理服务通道与目标B建立连接,由此通过代理服务器建立A 和目标地址B的数据传输途径。从用户的角度看,A和B的连接是直接的,而实际上A 是通过代理服务器C和B建立连接的。反之,当B对A有连接请求时原理相同。由于这些连接过程是自动的,不需要客户端手工配置代理服务器,甚至用户根本不知道代理服务器的存在,因而对用户来说是透明的。

 

Squid透明代理

 

配置 步骤

 

1 客户端 dns指向 网关参数

 

clip_image038

 

 

clip_image040

 

配置/etc/sysctl.conf 文件 打开数据包转发功能

 

clip_image042

 

2 为内网的ip代理

 

clip_image044

3 vim /etc/squid/squid.conf 设置透明代理

 

clip_image046

 

4 启动squid服务 并对客户端访问80端口重定向到3128端口

 

clip_image048

 

5 访问成功

 

clip_image050

 

 

三 反向代理

 

 

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

反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力,反向代理服务器,可以记录用户所有的访问行为,但这也会带来系统资源相当大的额外开销。但对于不同的服务器来说,其保护的资源类型是有限的,我们只需要记录、控制用户对我们所关心的资源的访问即可

Squid反向代理服务

 

配置步骤

 

1 vim /etc/squid/squid.conf

添加访问的端口

 

clip_image052

添加服务器的ip

 

clip_image054

 

添加允许访问代理的客户端

启动服务clip_image056

 

 

添加一个新的文件在 101.19上

 

 

clip_image058

 

 

clip_image060