搭建代理服务器可以提高上网打开网页的速度,可以对非法网站进行屏蔽,限制文件下载,以及查看员工访问internet的情况,包括上网的地址,用户,时间等,是企业网络管理的常用手段。

代理服务器分为传统代理和透明代理,传统代理适用于浏览internet,需要在浏览器上手工指定服务器地址和端口,不是很方便,但是可以隐藏本机真实的ip地址,而且为下载工具使用多个代理可以规避服务器的并发连接显示。透明代理适用于共享上网网关,不需要指定服务器地址和端口,无需额外的设置即可上网,在实际工作中透明代理较多。

缓存代理概述:

作为应用层的代理服务器软件,Squid主要提供缓存加速、应用层过滤控制的功能。

代理的工作机制

Squid代理服务器_服务器缓存网页对象,减少重复请求

Squid代理服务器_服务器_02

代理的基本类型:

Squid代理服务器_服务器传统代理:适用于Internet,需明确指定服务端  Squid代理服务器_服务器

透明代理:适用于共享上网网关,不需指定服务端  

Squid代理服务器_服务器使用代理的好处  

Squid代理服务器_服务器提高Web访问速度  Squid代理服务器_服务器

隐藏客户机的真实IP地址

一、搭建传统代理服务器

  1. 实验拓扑

Squid代理服务器_代理_08

2.实验步骤:

服务器B:

  1. 编译安装Squid

Squid代理服务器_Squid_09

Squid代理服务器_服务器_10

选项含义:

--prefix                             安装路径             

--syscondir                      单独将配置文件修改到其他目录

--enable-arp-acl              可以在规则中设置直接通过客户端MAC进行管理,防止客户端使用 IP欺骗

--enable-linux-netfilter     使用内核过滤

--enable-linux-tproxy       支持透明模式

--enable-async-io=值      异步I/O,提升存储性能

--enable-err-language     错误信息的显示语言

--enable-underscore       允许URL中有下划线

--enable-poll                    使用Poll()模式,提升性能

--enable-gunregex          使用GUN 正则表达式

2.安装完成后,创建链接文件、创建用户和组

Squid代理服务器_服务器_11

3.将Squid添加为系统服务

编写Squid服务脚本

Squid代理服务器_服务器_12

添加系统服务

Squid代理服务器_代理_13

4.修改配置文件  vim  /etc/squid.conf

Squid代理服务器_代理_14

Squid代理服务器_Squid_15

Squid代理服务器_代理_16

5.设置防火墙规则

Squid代理服务器_代理_17

6.检查配置文件

Squid代理服务器_服务器_18

7.开始Squid服务

Squid代理服务器_代理_19

服务器A

在服务器A上编写一个简单的测试网页,并开启http服务

Squid代理服务器_代理_20

Squid代理服务器_代理_21

设置防火墙规则,允许客户机连接

Squid代理服务器_服务器_22

客户机C 

在IE浏览器中,选择“工具” ---“Internet选项”,弹出“Internet选项”对话框,在“连接”选项卡中的“局域网(LAN)设置”选项组中单机“局域网设置”按钮,弹出“局域网(LAN)设置”对话框。

Squid代理服务器_Squid_23

接下来客户机进行访问

Squid代理服务器_代理_24

代理服务的验证方法

查看Squid访问日志的记录,

在客户机访问网站,然后查看web服务器的访问日志,发现客户机172.16.16.110访问网站172.16.16.172的记录,但是在web服务器中,查看网站日志文件,显示的访问者是代理服务器的地址172.16.16.22,不是客户端的地址。

在服务器B上查看

Squid代理服务器_Squid_25

在服务器A上查看

Squid代理服务器_代理_26

二、搭建透明代理服务器

  1. 实验拓扑

Squid代理服务器_服务器_27

实验步骤(安装的步骤参考前面的传统代理,IP地址的配置省略)

1.配置squid支持透明代理   Vi  /etc/squid.conf

Squid代理服务器_代理_28

只修改上面的一行即可。

2.重启服务

Squid代理服务器_代理_29

3.开启路由转发功能

Squid代理服务器_Squid_30

Squid代理服务器_代理_31

4.设置iptables的重定向策略(正确区分内网卡和外网卡,根据实际情况而定)

Squid代理服务器_服务器_32

5.客户机进行访问(在IE浏览器上关闭前边设置的代理服务器)

Squid代理服务器_Squid_33

验证透明代理

代理服务器

Squid代理服务器_代理_34

网站服务器

Squid代理服务器_代理_35

三、ACL访问控制

Squid提供了强大的代理控制机制,通过合理设置ACL并进行限制,可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件进行过滤。

实现ACL访问控制的步骤:

(1)使用acl配置项定义需要控制的条件

(2)通过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制

格式:  acl       列表名称     列表类型      列表内容 ...

常用的访问控制列表类型

列表类型
含义/用途
列表内容示例
src源IP地址、网段、IP地址范围192.168.1.100
192.168.1.0/24
192.168.1.0-192.168.3.0/24
dst目标IP地址、网段主机名216.182.154.9
216.182.154.0/24
www.ysf.com
port目标端口80 443 20 22
srcdomain源名称.benet.com
dstdomain目标域,匹配域内所有的站点.qq.com
time字母表示一星期中各天的英文缩写MTWHFASMTWHF 8:30-17:30(周一至周五的时刻)
12:30-13:30
AS(周六、日)
maxconn每个客户机的并发连接数20
url_regex目标资源的URL地址,-i表示忽略大小写url_regex -i ^rtsp://
urlpath_regex目标资源的整个URL路径urlpath_regex -i sex adult
urlpath_regex -i \.mp3$

举例:

1、禁止下载扩展名为:.mp4,avi视频

2、超过4mb大小的文件不进行缓存,禁止下载超过10mb的文件

3、设置网站黑名单,禁止访问位于.qq.com,.lol.com的网站

4、允许在正常上班时间(周一到周五8:30-17:30)上网

5、默认策略设置为禁止任何客户机使用代理服务器

vim   /etc/squid.conf

Squid代理服务器_代理_36

在网站服务器上建立测试文件

Squid代理服务器_Squid_37

客户机进行测试

Squid代理服务器_代理_38

Squid代理服务器_Squid_39

四、Squid日志分析

  1. 安装GD库

Squid代理服务器_服务器_40

2.安装sarg

Squid代理服务器_服务器_41

配置项含义:

--syscondir=/etc/sarg       配置文件目录,默认是/usr/local/etc

--enable-extraprotection   添加额外的安全保护

3.配置

Squid代理服务器_服务器_42


指定squid的访问日志文件

Squid代理服务器_服务器_43

网页标题

Squid代理服务器_代理_44

sarg报告的输出记录

Squid代理服务器_代理_45

使用用户名显示

Squid代理服务器_Squid_46

在top排序中,指定连接次数、访问字节数,采用降序排列,升序将reverse换成normal

Squid代理服务器_服务器_47

对于用户访问记录,连接次数按降序排列

Squid代理服务器_Squid_48

当那个日期报告已经存在,是否覆盖报告

Squid代理服务器_代理_49

发送邮件报告的命令

Squid代理服务器_服务器_50

指定不计入排序的站点列表文件

Squid代理服务器_代理_51

使用字符集

Squid代理服务器_代理_52

指定top排序时的星期周期和时间周期,0为周日

Squid代理服务器_服务器_53

网页根目录

Squid代理服务器_服务器_54

4.运行

Squid代理服务器_代理_55

设置防火墙规则

Squid代理服务器_代理_56

5.验证

Squid代理服务器_代理_57

6.计划任务

编写脚本

Squid代理服务器_Squid_58

设置任务计划

crontab   -e

Squid代理服务器_代理_59

Squid代理服务器_服务器_60