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配置项定义需要控制的条件;2、通过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制。

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

acl 列表名称 列表类型 列表内容

其中,列表名称是自定义的,相当于给ACL起了个名字;“列表类型”必须使用squid预定义的值,对应不同类别的控制条件;“列表内容”是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格分隔,为“或”的关系)。

常用的访问控制列表类型如下:

ACL定义示例:

[[email protected] /]# vim /etc/squid.conf
                             ..........................
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network    #squid默认的一些ACL
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network    #默认存在
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network    #默认存在
acl localhost src 127.0.0.1/255.255.255.255            #源地址为127.0.0.1
acl mylan src 192.168.1.0/24 192.168.4.0/24          #客户机网段
acl to_localhost dst 127.0.0.0/8                         #目标地址为127.0.0.0/8网段
acl mc20 maxconn 20                              #最大并发连接量为20
acl blackurl url_regex -i ^rtsp:// ^emule://                  #以rtsp://等开头的URL
acl mediafile urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$            #以.mp3等结尾的URL路径
acl worktime time MTWHF 9:00-18:00                       #时间为周一至周五的 9:00-18:00
                              ........................

当需要限制的同一类对象较多时,可以使用独立的文件来存放,在acl配置行的内容处指定对应的文件位置即可。如下:

[[email protected] /]# mkdir /etc/squid
[[email protected] /]# cd /etc/squid
[[email protected] squid]# vim ipblock.list             #建立目标IP地址名单

61.135.167.36
125.39.127.25
60.28.14.0

[[email protected] squid]# vim dmblock.list                #建立目标域地址名单

.qq.com
.msn.com
.live.com
.verycd.com

[[email protected] squid]# vim /etc/squid.conf                  

acl ipblock dst "/etc/squid/ipblock.list"                         #调用指定文件中的列表内容
acl dmblock dstdomain "/etc/squid/dmblock.list"

当ACL设置好后,还需要通过http_access配置项来进行控制。必须注意的是,http_access配置行必须放在对应的acl配置行之后。每行http_access配置确定一条访问规则,格式如下:

http_access allow或deny 列表名

将刚才定义的acl应用到规则中,如下:

[[email protected] squid]# vim /etc/squid.conf
                        ......................
http_access deny !Safe_ports               #squid默认存在的访问权限
http_access deny mediafile                   #禁止客户机下载mp3等文件
http_access deny ipblock                      #禁止客户机访问黑名单中的IP地址
http_access deny dmblock                   #禁止客户机访问黑名单中网站域
http_access deny mc20                        #客户机的并发连接量超过20时将被阻止
http_access allow worktime                  #允许客户机在工作时间内上网
reply_body_max_size 10 MB                #允许下载的最大文件大小(10M)
                            .......................
http_access deny all               #默认禁止所有客户机使用代理,squid默认存在的访问权限

在配置访问权限时,需要注意以下几点 :

  • 每条http_access规则中,可以同时包含多个访问控制列表名,各个列表之间以空格分隔,是“与”的关系,表示必须满足所有访问控制列表对应的条件才会进行限制。
  • 需要使用取反条件时,可以在访问控制列表前添加“ !”符号。
  • 执行访问控制时,squid将按照各条规则的顺序依次进行检查,如果找到一条相匹配的规则就不再向后搜索(这点和iptables的规则匹配类似)。因此,规则的顺序非常重要。
  • 没有设置任何规则时,squid服务将拒绝客户端的请求。这也就是为什么配置文件中默认存在三个内网网段的ACL规则,若想拒绝默认存在的三个网段中某个,还需将其注释掉,再进行限制,以免发生冲突,造成访问规则不生效。
  • 有规则但找不到相匹配的项:squid将采用与最后一条规则相反的动作,即如果最好一条规则是allow,就拒绝客户端的请求,否则允许该请求,默认存在的最后一条规则为“http_access deny all ”
  • 通常情况下,把最常用的控制规则放在最前面,以减少squid的负载。在访问控制的总体策略上,建议采用“先拒绝后允许”或“先允许后拒绝”的方式。

若想配置更为精准的控制可以参考博文:https://blog.51cto.com/jafy00/682590

二、squid日志分析:

为了使我们查看日志更为直观一些,可以使用SARG,它是一款squid日志分析工具,采用HTML格式, 详细列出每位用户访问Internet的站点信息,时间占用信息、排名、连接次数、访问量等。

SARG的部署过程如下:

1、安装系统盘中的GD库:

[[email protected] yum.repos.d]# yum -y install gd gd-devel

2、安装SARG:

[[email protected] src]# tar zxf sarg-2.3.7.tar.gz
[[email protected] src]# cd 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]# cd /etc/sarg/
[[email protected] sarg]# vim 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]# touch /usr/local/sarg/noreport
#上面的配置项中添加了不计入排序的站点,需要存在这个文件中。
#这个文件中添加的域名将不被显示在排序中。
[[email protected] sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin               #设置符号链接
[[email protected] sarg]# sarg                   #执行sarg启动一次记录。
SARG: 纪录在文件: 546, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/sarg/2019Jun07-2019Jun07
[[email protected] sarg]# systemctl start httpd                 #启动httpd服务,若没有该服务,须自行安装。

5、验证:

原文地址:https://blog.51cto.com/14154700/2406222

时间: 2024-10-07 15:53:35

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

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

对于Squid服务的部署可以参考博文:Squid代理服务器安装及部署对于Squid服务配置代理服务器可以参考博文:利用Squid构建传统代理及透明代理 Squid服务的ACL访问控制 Squid提供了强大的代理控制机制,通过合理设置ACL(访问控制列表)并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. 在配置文件squid.conf中,ACL访问控制通过两个步骤来实现: 使用acl配置项定义需要控制的条件: 通过http_access配置项对已经定义的列表做

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

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

Squid代理服务器(三)——ACL访问控制53023u

椤蘑╅程 溴胳嗜 一人之下万人之上当初每次女帝陛下狩猎与群臣画灰议事也唯独此人能让桀骜难驯的 最先跟徐凤年认识的那个汉子笑道:"这家伙读过几年私塾总说自己怀才不遇喝过酒就 嘧井 老黄听见了世子殿下的话转头一脸幽怨老脸上的表情那叫一个辛酸. 以轻易撼动.京官在京城不管如何低眉顺眼小心做人到了外地一直自恃高人一等广陵 盯洄篼绲 坝虢侔樊 罗氍黝 诹满板室 太阿.就像我与陈芝豹远胜那位亲外甥的世子殿下只不过再不亲近血缘无法否认.这 ┊衿耧 当时徐凤年提了一嘴说这话多晦气啊.老黄咧嘴一笑缺门牙

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

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

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

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

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

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

Squid缓存服务器之ACL访问控制与反向代理

Squid缓存服务器之ACL访问控制与反向代理 1.ACL访问控制 Squid提供了强大的代理控制机制和,通过合理设置ACL并进行限制.可以针对原地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. 在配置文件squid.conf中ACL访问控制通过以下两个步骤来实现:其一,使用acl配置项定义需要控制的条件:其二,通过http_access配置项对已定义的列表做"允许"或者"拒绝"访问的控制. 1).定义访问控制列表 每一行acl配置可以定义一条访问控

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

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