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

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

缓存代理概述:

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

代理的工作机制

*缓存网页对象,减少重复请求

Squid代理服务器_第1张图片

代理的基本类型:

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

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

*使用代理的好处  

*提高Web访问速度  *

隐藏客户机的真实IP地址

一、搭建传统代理服务器

  1. 实验拓扑

Squid代理服务器_第2张图片

2.实验步骤:

服务器B:

  1. 编译安装Squid

Squid代理服务器_第3张图片

Squid代理服务器_第4张图片

选项含义:

--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代理服务器_第5张图片

3.将Squid添加为系统服务

编写Squid服务脚本

Squid代理服务器_第6张图片

添加系统服务

2018-01-28_161427.png

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

Squid代理服务器_第7张图片

2018-01-28_162144.png

2018-01-28_162357.png

5.设置防火墙规则

2018-01-28_162528.png

6.检查配置文件

2018-01-28_162645.png

7.开始Squid服务

Squid代理服务器_第8张图片

服务器A

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

Squid代理服务器_第9张图片

Squid代理服务器_第10张图片

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

2018-01-28_162842.png

客户机C 

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

Squid代理服务器_第11张图片

接下来客户机进行访问

Squid代理服务器_第12张图片

代理服务的验证方法

查看Squid访问日志的记录,

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

在服务器B上查看

Squid代理服务器_第13张图片

在服务器A上查看

Squid代理服务器_第14张图片

二、搭建透明代理服务器

  1. 实验拓扑

Squid代理服务器_第15张图片

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

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

Squid代理服务器_第16张图片

只修改上面的一行即可。

2.重启服务

2018-01-28_163534.png

3.开启路由转发功能

Squid代理服务器_第17张图片

Squid代理服务器_第18张图片

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

Squid代理服务器_第19张图片

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

Squid代理服务器_第20张图片

验证透明代理

代理服务器

Squid代理服务器_第21张图片

网站服务器

Squid代理服务器_第22张图片

三、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 字母表示一星期中各天的英文缩写MTWHFAS MTWHF 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代理服务器_第23张图片

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

Squid代理服务器_第24张图片

客户机进行测试

Squid代理服务器_第25张图片

Squid代理服务器_第26张图片

四、Squid日志分析

  1. 安装GD库

Squid代理服务器_第27张图片

2.安装sarg

Squid代理服务器_第28张图片

配置项含义:

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

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

3.配置

Squid代理服务器_第29张图片


指定squid的访问日志文件

2018-01-28_164824.png

网页标题

2018-01-28_164852.png

sarg报告的输出记录

2018-01-28_164913.png

使用用户名显示

2018-01-28_164929.png

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

2018-01-28_164943.png

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

2018-01-28_164956.png

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

2018-01-28_165011.png

发送邮件报告的命令

2018-01-28_165032.png

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

2018-01-28_165051.png

使用字符集

2018-01-28_165108.png

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

Squid代理服务器_第30张图片

网页根目录

2018-01-28_165202.png

4.运行

Squid代理服务器_第31张图片

设置防火墙规则

Squid代理服务器_第32张图片

5.验证

Squid代理服务器_第33张图片

6.计划任务

编写脚本

Squid代理服务器_第34张图片

设置任务计划

crontab   -e

Squid代理服务器_第35张图片

Squid代理服务器_第36张图片