Squid代理服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Squid代理服务器相关的知识,希望对你有一定的参考价值。

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

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

缓存代理概述:

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

代理的工作机制

技术分享图片缓存网页对象,减少重复请求

技术分享图片

代理的基本类型:

技术分享图片传统代理:适用于Internet,需明确指定服务端  技术分享图片

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

技术分享图片使用代理的好处  

技术分享图片提高Web访问速度  技术分享图片

隐藏客户机的真实IP地址

一、搭建传统代理服务器

  1. 实验拓扑

技术分享图片

2.实验步骤:

服务器B:

  1. 编译安装Squid

技术分享图片

技术分享图片

选项含义:

--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.安装完成后,创建链接文件、创建用户和组

技术分享图片

3.将Squid添加为系统服务

编写Squid服务脚本

技术分享图片

添加系统服务

技术分享图片

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

技术分享图片

技术分享图片

技术分享图片

5.设置防火墙规则

技术分享图片

6.检查配置文件

技术分享图片

7.开始Squid服务

技术分享图片

服务器A

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

技术分享图片

技术分享图片

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

技术分享图片

客户机C 

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

技术分享图片

接下来客户机进行访问

技术分享图片

代理服务的验证方法

查看Squid访问日志的记录,

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

在服务器B上查看

技术分享图片

在服务器A上查看

技术分享图片

二、搭建透明代理服务器

  1. 实验拓扑

技术分享图片

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

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

技术分享图片

只修改上面的一行即可。

2.重启服务

技术分享图片

3.开启路由转发功能

技术分享图片

技术分享图片

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

技术分享图片

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

技术分享图片

验证透明代理

代理服务器

技术分享图片

网站服务器

技术分享图片

三、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日志分析

  1. 安装GD库

技术分享图片

2.安装sarg

技术分享图片

配置项含义:

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

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

3.配置

技术分享图片


指定squid的访问日志文件

技术分享图片

网页标题

技术分享图片

sarg报告的输出记录

技术分享图片

使用用户名显示

技术分享图片

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

技术分享图片

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

技术分享图片

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

技术分享图片

发送邮件报告的命令

技术分享图片

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

技术分享图片

使用字符集

技术分享图片

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

技术分享图片

网页根目录

技术分享图片

4.运行

技术分享图片

设置防火墙规则

技术分享图片

5.验证

技术分享图片

6.计划任务

编写脚本

技术分享图片

设置任务计划

crontab   -e

技术分享图片

技术分享图片

以上是关于Squid代理服务器的主要内容,如果未能解决你的问题,请参考以下文章

Squid代理服务器(传统代理透明代理)(图文详解)

squid代理服务器(传统代理透明代理反向代理ACL日志分析)

Squid缓存代理服务器!

Squid缓存代理服务器!

缓存加速------Squid代理服务器应用(传统代理,透明代理,反向代理,ACL访问控制,日志分析)

实战Squid 缓存服务器 之 传统代理 + 透明代理