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

 

一、搭建传统代理服务器

1、实验拓扑:

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

 

1、实验步骤

1)在服务器B上安装Squid代理服务器软件(挂载光盘,解压缩)

 

wKioL1ljh8ySuq6dAABRRVx3jos907.png-wh_50

2)编译安装

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

--prefix=/usr/local/squid   //安装目录

--sysconfdir=/etc   //单独将配置文件修改到其他目录

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

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

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

--enable-async-io=   //异步i/o,提升存储性能

--enable-err-language=”Simplify_Chinese”   //错误信息的显示语言

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

--enable-underscore   //允许url中有下划线

--enable-gnuregex   //使用GNU正则表达式

wKioL1ljiEejaIMbAAAjpv-1YN0278.png-wh_50

2)创建链接文件,创建用户和组

wKiom1ljiEjhlHW_AABPUHoup6Q741.png-wh_50

2)使用squid服务脚本(为了能够方便启动停止服务)

Vim squid,内容如下:

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

没有完,接着下面的写

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

设置权限,并添加为系统服务。

 

squid代理服务器_第5张图片

2)修改配置文件

Vi /etc/squid.conf

主要修改有以下几条配置项,有的配置项需要修改,而有的配置项需要添加。

    http_port 3128                      squid的默认监听端口tcp  修改   cache_effective_group squid         squid的运行组    添加

    cache_effective_user squid          squid的运行用户  添加

    visible_hostname centos1.lzg.com   当前系统的主机名  添加

    cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256

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

2)在防火墙上添加允许策略

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

3)启动squid服务

执行:Squid  -k  parse检测语法是否正确,出现很多内容,一般不用理会,没有提示错误就可以。

执行squid  -z 初始化缓存目录,此步必须要做,执行完之后稍微等一会。

执行squid启动服务,也可以使用service  squid  start启动服务,第一次启动最好用squid启动。

 

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

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

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

4)在服务器A上搭建网站

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

5)在客户机上修改ie浏览器的代理服务器地址

 

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

6)在客户机上访问网站

别忘记在网站服务器A上开启80端口

wKioL1lji5CSQi6cAAAuuZF6YAk836.png

 

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

然后把代理服务器服务停止,再次访问网站,发现不能访问,说明客户机确实是通过代理服务器上网。

wKioL1lji5Hja_9MAAAerq3rpFc517.png

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

7)验证代理服务器

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

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

 

wKiom1lji5XxGmK0AAA1pzqv5CY495.png

 

二、搭建透明代理服务器

1、实验拓扑

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

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

1)配置squid支持透明代理

Vi /etc/squid.conf

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

修改上面的一行就可以

 

修改完成时候别忘记重新加载squid服务

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

1)在服务器B上开启路由转发

wKiom1ljjOaTINX4AAAmVb1wtPg493.png

1)配置防火墙重定向

 

Iptables -t nat -I PREROUTING -i eth1 -s192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to 3128

 

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

Service iptables  save保存

 

1)在客户端上访问网站(必须配置网关)

 

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

 

1)验证透明代理

如果在linux客户机上测试,需要提前清除HTTP_PROXYHTTPS_PROXY变量

Unset HTTP_PROXY  HTTPS_PROXY

我们就在windows上验证了,因为在实际工作中,员工很少使用LINUX访问网站。

验证方法和传统代理验证方法一样

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

 

 

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

在服务器A上查看的访问者是代理服务器172.16.16.1,说明实验正确。

上面的这个实验属于正向代理,还有一种反向代理,作用是外部访问内部的网站,云盘有文档,有兴趣可以做一下。

 

三、设置ACL访问控制

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张图片

在客户端上测试下载文件,超过10mb就禁止下载

(在服务器A的网站目录下新建15mb的文件)

wKiom1ljjhuBQtzqAAAm5fd0vXg079.png

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

在客户端上分别下载5mb15mb的文件

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

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

 

四、squid日志分析

1、安装gd

 

wKioL1ljjx7RthskAAAi5s5xO1s518.png

1、安装sarg

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

1、配置

wKiom1ljjyGxMrl1AAAs586Glpg751.png

 

修改以下内容,不用添加,修改即可

1)制定squid的访问日志文件

wKioL1ljjyGBkkoiAAAeEMbTsCc631.png

 

网页标题

wKiom1ljjyGRaX6kAAAdErIaN1o118.png

sarg报告的输出目录

wKiom1ljjyLw7RuhAAAcR2LTmw0865.png

使用用户名显示,根据连接次数,访问字节数,采用降序排序,升序将reverse换成normal。对于用户访问记录,连接次数按降序排列。

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

当有日期报告存在,是否覆盖报告

wKiom1ljjyPRYen3AAAT3mUStCg634.png

发送邮件报告

wKioL1ljjyOgYEdrAAAbsivrm8s586.png

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

wKioL1ljjySxdAC2AAAf5XxRPrM773.png

使用的字符集为国际编码

 

wKiom1ljkFPwNbbEAAAS7LZWtrY238.png

制定top排序的星期周期和时间周期,0位周日

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

网页根目录

wKiom1ljkFSiNgNRAAAfIxSstp4956.png

 

1、运行

Touch /usr/local/sarg/noreport

wKioL1ljkFXSG4olAAAjrSReHt4987.png

 

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

 验证

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

计划任务

wKiom1ljkFehDRXeAAAkBBgXVD8703.png

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

Crontab -e

wKioL1ljkFvC3o5DAAAhkCme-qM405.png

 

 

每天0点运行统计昨天的内容

 

Chmod +x /usr/local/sarg/daily.sh

Chkconfig crond on

 

 

每天坚持给大家带来基础知识,一起成长一起拼搏。

详细技术请咨询我的QQ936172842,或者维信lc177zl,记得标注姓名+51cto