Squid代理服务ACL访问控制及日志分析

对于Squid服务的部署可以参考博文:Squid代理服务器安装及部署
对于Squid服务配置代理服务器可以参考博文:利用Squid构建传统代理及透明代理

Squid服务的ACL访问控制

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

在配置文件squid.conf中,ACL访问控制通过两个步骤来实现:

  • 使用acl配置项定义需要控制的条件;
  • 通过http_access配置项对已经定义的列表做“允许”或“拒绝”的控制。

1.定义访问控制列表

每行acl配置可以定义一条访问控制列表,格式如下:

其中:
“列表名称”由管理员自行指定,用来识别控制条件;
“列表类型”必须使用Squid预定义的值,对应不同类别的控制条件;
“列表内容”是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格分隔,是“或者”的关系)

定义访问控制列表时,关键在于选择“列表类型”并设置具体的条件对象。Squid预定义的类型有很多种,如图:

在定义访问控制列表是,应结合当前网络环境正确分析用户的访问需求,准确定义使用代理服务的控制条件。比如:

首先创建一个存放域名黑名单的文件:
[[email protected] ~]# vim /etc/squid/dmblock.list
.qq.com
.msn.com
//定义存放域名的文件,当然也可以创建存放IP地址的文件,在配置文件,引用一下即可格式跟引用地址文件一样
[[email protected] ~]# vim /etc/squid.conf
                            ………………                          //省略部分内容
acl MYLAN src 192.168.1.0/24
//定义列表名为MYLAN,源地址为192.168.1.0网段
acl MEDIAFILE urlpath_regex -i \.3gp$ \.mp4$ \.f4v$ \.mkv$ \.rmvb$ \.avi$
//定义列表名为MEDIAFILE,以 .3gp、.mp4、.f4v、.mkv、.rmvb、.avi结尾的URL路径
acl DMBLOCK dstdomain  "/etc/squid/dmblock.list"
//定义列表名为DMBLOCK,目标域存放在etc/squid/dmblock.list文件中
acl deny10 src 192.168.1.10
//定义列表名为deny10,源地址为192.168.1.10
acl WORKTIME time MWTHF 08:30-17:30
//定义列表名称为WORKTIME,时间为周一到周五8:30~17:30

2.设置访问权限

定义好各种访问控制列表以后,需要使用http_access配置项来进行控制,必须注意的是,http_access配置航必须放在对应的acl配置行之后。每行http_access配置确定一条访问控制规则。语法格式:

http_access语句使用说明:

  • 每一条http_access规则中,可以同时包含多个控制列表,空格分隔,为“与”的关系;
  • 取反条件时,用!符号;
  • http_access必须放在acl之后。
    [[email protected] ~]# vim /etc/squid.conf
             ………………               //省略部分内容
    http_access deny deny10
    //禁止列表deny10
    http_access allow MYLAN WORKTIME Safe_ports !MEDIAFILE !DMBLOCK
    //允许列表MYLAN、WORKTIME、Safe_ports列表和与MEDIAFILE和DMBLOCK列表条件相反的
    http_access deny all
    //默认禁止所有客户机使用代理

    设置完成之后重启Squid服务

    [[email protected] ~]# squid -k reconfigure

    关于规则的执行过程:

  • 找到一条规则即不再向后搜索;
  • 没有配置任何规则时,squid服务将拒绝客户端的请求;
  • 有规则但找不到相匹配的项:squid将采用与最后一条规则相反的权限。即如果最后一条规则是allow,就拒绝客户端的请求,否则允许该请求。

通常情况下,把最常用的控制规则放在最前面,以减少Squid的负载。早访问控制的总体策略上,建议采用“先拒绝后允许”或“先允许后拒绝”的方式,最后一条规则设为默认规则。

3.验证访问控制效果

(1)测试访问权限限制(客户机处于传统代理)自行验证!
(2)测试文件下载限制
①在web服务器网页根目录下创建一个大于10M的文件:

[[email protected] ~]# if=/dev/zero  of=/var/www/html/dltest.data  bs=1M count=15

②在squid代理服务器上编辑配置文件,加上如下行:

[[email protected] ~]# vim /etc/squid.conf
           ………………               //省略部分内容
reply_body_max_size  10 MB
//限制最大网站文件10MB
[[email protected] ~]# squid -k reconfigure
//重启Squid服务

客户机测试(不要用192.168.1.10进行访问)自行验证

Squid日志分析

SARG是一款Squid日志分析工具,采用HTML格式,详细列出每位用户访问Internet的站点信息,时间占用等信息,排名、连接次数、访问量等。

1.在squid本地安装GD库

[[email protected] ~]# yum -y install gd 

2.安装SARG

sarg软件包网盘下载链接:https://pan.baidu.com/s/1WItXGVlvrLQ9TijB7CWLmQ
提取码:zh41

[[email protected] ~]# tar zxf sarg-2.3.7.tar.gz -C /usr/src
[[email protected] ~]# cd /usr/src/sarg-2.3.7/
[[email protected] sarg-2.3.7]#  ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install

配置项含义如下:
--prefix=/usr/local/sarg:指定安装目录;
--sysconfdir=/etc/sarg:配置文件目录,若不指定,默认是/usr/local/etc;
--enable-extraprotection:添加额外的安全保护

3.配置

[[email protected] sarg-2.3.7]# vim /etc/sarg/sarg.conf
         ......................
#若只实现基本的功能,则配置以下三项即可:
access_log /usr/local/squid/var/logs/access.log            #指定squid的访问日志文件
output_dir /var/www/html/sarg                        #sarg报告的输出目录,指向网站的根目录下
www_document_root /var/www/html               #网页根目录

#其余一些优化的配置项如下,根据需求来改即可:
title "Squid User Access Reports"                            #网页标题
user_ip no                                    #使用用户名显示
exclude_hosts /usr/local/sarg/noreport                     #指定不计入排序的站点列表文件
topuser_sort_field connect BYTES reverse
#在top排名中,指定连接次数、访问字节数,采用降序排列,升序将reverse换成normal即可。
user_sort_field connect reverse                   #对于用户访问记录,连接次数按降序排列
overwrite_report no                                #当那个日期报告已经存在,是否覆盖报告
mail_utility mailq.postfix                              #发送邮件报告的命令
charset utf-8                                     #使用字符集
weekdays 0-6                                    #指定top排序时的星期周期,0为周日。
hours 7-12,14,16,18-20                      #指定top排序时的时间周期。

4.运行

[[email protected] sarg-2.3.7]# touch /usr/local/sarg/noreport
//上面的配置项中添加了不计入排序的站点,需要存在这个文件中。
//这个文件中添加的域名将不被显示在排序中。
[[email protected] sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin
[[email protected] sarg-2.3.7]# sarg                            //启动sarg
SARG: 纪录在文件: 21, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/sarg/2019Aug17-2019Aug18
[[email protected] sarg]# systemctl start httpd                 #启动httpd服务,若没有该服务,须自行安装。

5.验证

原文地址:https://blog.51cto.com/14157628/2430373

时间: 2024-11-09 02:07:51

Squid代理服务ACL访问控制及日志分析的相关文章

Squid-4.1 ACL访问控制、日志分析和反向代理

Squid-4.1ACL访问控制.日志分析和反向代理 ACL访问控制 Squid提供了强大的代理控制机制,通过结合设置ACL(Access Control List,访问控制列表)并进行限制,可以针对源地址.目标地址.访问的URL路径.访问时间等各种条件进行过滤. 在配置文件squid.conf中,ACL访问控制通过以下两个步骤实现:其一,使用acl配置项定义需要控制的条件:其二,通过http_access配置项对已定义的列表做"allow"或者"deny"访问控制

squid代理服务器的ACL访问控制及日志分析

配置传统代理及部署squid服务参考博文:https://blog.51cto.com/14154700/2406060配置squid透明代理参考博文:https://blog.51cto.com/14154700/2406121 squid服务的ACL访问控制:squid提供了强大的代理控制机制,通过合理设置ACL并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. 在配置文件squid.conf中,ACL访问控制通过两个步骤来实现:1.使用ACL配置项定义需

Squid代理服务器+ACL访问控制+Squid日志分析&&任务计划

第一章:Squid代理服务器 防伪码:只有顽强,明日路纵会更彷徨! 理论概述: 1.缓存代理概述:squid主要提供缓存加速,应用层过滤控制的功能. 2.代理的基本类型 1)传统代理:普通的代理服务器,首先必须在客户机的浏览器.qq聊天工具.下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理来访问网络. 2)透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由.防火墙策略将Web访问重定向,实际仍然交给代理服务器来处理.  实

Squid代理--经典缓存代理服务器(实现正向代理配置、ACL各种访问控制、日志分析)

Squid是Linux系统中常用的一款开源代理服务软件官方网站http://www.squid-cache.org , 可以很好的实现http.ftp.dns查询,以及ssl等应用的缓存代理. 一.Squid服务概述 缓存代理概述 1.代理的工作机制 当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面反馈给请求的客户端.如果缓存中没有,则由代理服务器向web服务器发起访问请求,当获得返回的web页面后,缓存服务器首先

Squid代理服务器——ACL访问控制,sarg日志,反向代理

实验环境 squid服务器 ens33:192.168.13.184 ens36:192.168.10.1 (仅主机模式) web服务器 192.168.13.151 client 192.168.10.10 (仅主机模式) 一,ACL访问控制 1,在squid服务器上修改配置文件 [[email protected] ~]# vim /etc/squid.conf ##修改配置文件 # should be allowed acl hostlocal src 192.168.10.10/32 #

Squid的ACL访问控制及反向代理

Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 在配置文章squid.conf中,ACL访问控制通过以下两个步骤来实现:1:使用acl配置项定义需要控制的条件2:通过http_access 配置对已定义的列表做出"允许" 或者 "拒绝" 访问的控制 定义控制列表: acl 列表名 列表类型 列表内容 允许访问权限: http_access allow 列表名 拒绝访问权限:

squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤.作为应用层的代理服务器软件,Sqiod主要提供了缓存加速和引用层过滤控制能力 代理的工作机制 当客户机通过代理来请求 Web 页面时,指定的代理服务器,会先检查自己的缓存如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机需要访问的页面,则用代理服务器向Internet 发送访问请求. 由于客户机的W

Squid透明代理+ACL访问控制+日志分析

防伪码:仰天大笑出门去,我辈岂是蓬蒿人 第一章 Squid透明代理+ACL访问控制+日志分析 前言:搭建代理服务器可以提高上网打开网页的速度,可以对非法网站进行屏蔽,限制文件下载,以及查看员工访问internet的情况,包括上网的地址,用户,时间等,是企业网络管理的常用手段. 代理服务器分为传统代理和透明代理,传统代理适用于浏览internet,需要在浏览器上手工指定服务器地址和端口,不是很方便,但是可以隐藏本机真实的ip地址,而且为下载工具使用多个代理可以规避服务器的并发连接显示.透明代理适用

squid的ACL、日志分析、反向代理

一.Squid 中 ACL 的使用 (1)ACL 访问控制方式:(2)ACL 规则优先级:(3)常用的 ACL 列表类型:(4)操作演示: 二.日志分析 第一步:安装 sarg 工具第二步:安装 Apache第三步:客户机上测试 三.反向代理 修改 /etc/squid.conf 文件添加以下代码:1.基于IP地址限制:2.基于时间限制:3.基于目标地址(就是web服务器地址)可以将拒绝的目标地址添加到一个文件中 二.日志分析 安装 sarg 工具Sarg(Squid Analysis Repo