squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)
admin
2023-03-09 17:03:10
0

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

squid的ACL访问控制列表

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

ACL访问控制通过以下两个步骤来实现:

①、使用acl配置项定义需要控制的条件;

②、通过http_access配置项对已定义的列表做“允许”或者“拒绝”访问的控制。

  1. 定义访问控制列表

    格式:acl 列表名称 列表类型 列表内容 ···

常见的访问控制列表类型

列表类型 列表内容示例 含义、用途
src(源地址) 192.168.100.1、192.168.100.0/24 源IP地址、网段
dst(目标地址) 192.168.234.5、192.168.234.0/24、www.baidu.com 目标IP地址、网段、主机名
port(目标端口) 80、443、 8080、20 目标端口
dstdomain(目标域) .qq.com 目标域,匹配域内的所有站点
time(访问时间) 12:00-13:00、AS 使用代理服务器的时间段
maxconn(最大并发连接) 30 每个客户机的最大并发连接数
url_regex(目标url地址) url_regex -i ^rtsp:// 目标资源的URL地址,-i表示忽略大小写
urlpath_regex(整个目标url路径) urlpath_regex -i sex adult 目标资源的整个URL路径,-i表示忽略大小写

2.设置访问权限

定义好各种访问控制列表以后,使用http_access配置项来进行控制。

格式:http_access allow或deny 列表名···

在设置访问权限时,需要注意两点:

  1. 没有设置任何规则时:squid服务将拒绝客户端的请求
  2. 有规则但找不到相匹配的项:squid将采用与最后一条规则相反的权限。

演示实验

因为之前我们做了squid的透明代理的实验,所以这里就接着那个实验继续做,配置好透明代理后,我们可以使用IP为192.168.100.50的client(客户端)访问IP为12.0.0.12的web服务器,那么下面我们就通过设置acl访问控制列表使client不能访问web服务器

vim /etc/squid.conf

acl localhost src 192.168.100.0/24     #定义访问控制列表

http_access deny localhost   #对列表做拒绝处理

service squid stop
service squid start      #重启服务

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid日志分析

squid的日志分析功能需要借助sarg(Squid Analysis Report Generator),首先先部署安装sarg工具

  • 安装相关的软件环境包

yum -y install gcc gcc-c++ gd gd-devel httpd #这里的dg库是支持图像处理的软件

sarg下载地址

  • 安装sarg
mkdir /usr/local/sarg       #为sarg创建安装目录

tar zxvf sarg-2.3.11.tar.gz -C /opt/  #将sarg解压到指定目录
cd /opt/sarg-2.3.11/    #到sarg目录中进行编译安装

./configure --prefix=/usr/local/sarg \    #这里指定安装目录
--sysconfdir=/etc/sarg \    #指定配置文件目录
--enable-extraprotection    #开启额外保护功能

配置完后,进行编译和安装
make && make install
  • 修改sarg配置文件

vim /etc/sarg/sarg.conf

access_log /usr/local/squid/var/logs/access.log    #指定访问日志文件(开启)
title "Squid User Access Reports"      #网页标题(开启)
output_dir /var/www/html/squid-reports    #报告输出目录(开启)
user_ip no          #使用用户名显示(开启)
exclude_hosts /usr/local/sarg/noreport   #不计入排序的站点列表文件(开启,删除none,添加路径)
topuser_sort_field connect reverse   #top排序中有连接次数、访问字节、降序排列升序是normal (开启,修改BYTES)
user_sort_field connect reverse    #用户访问记录  连接次数、访问字节按降序排序  (开启,修改BYTES)
overwrite_report no   #同名日志是否覆盖(开启)
mail_utility mailq.postfix   #发送邮件报告命令(开启,修改mail)
charset UTF-8   #使用字符集 (开启)
weekdays 0-6   #top排行的星期周期 (开启)
hours 0-23   #top排行的时间周期(开启)
www_document_root /var/www/html  #网页根目录(开启)

touch /usr/local/sarg/noreport 创建上述不计入站点文件,添加的域名将不被显示在排序中

ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
#建立软链接,方便使用命令

systemctl start httpd.service
#因为我们要在网页里访问日志,需要我们开启httpd服务

  • 运行sarg

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

然后使用client登录网页管理界面

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

反向代理

squid反向代理可以加速网站的访问速度,可将不同的URL请求分发到后台不同的web服务器上,同时互联网用户只能看到反向代理服务器的地址,加强网站的访问安全。

squid反向代理加速的原理描述如下:

  • Squid反向代理服务器位于本地Web服务器和Internet之间,客户端请求访问Web服务器时,DNS将访问的域名解析为Squid反向代理服务器的IP地址,客户端将访问Squid代理服务器。

  • 如果Squid反向代理服务器缓存了该请求的资源,则将该请求的资源返回给客户端,否则反向代理服务器将向后台的Web服务器请求资源,然后将应答资源返回给客户端,同时也将该资源在本地缓存一份,供下一个请求使用。

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

实验环境

服务器 IP地址 功能
代理服务器 172.16.10.137 squid代理服务
client 172.16.10.131 负责访问
真实服务器1 172.16.10.129 提供http服务
真实服务器2 172.16.10.134 提供http服务
  • 修改squid代理服务的配置文件

vim /etc/squid.conf

acl web1 dstdomain www.yun.com
acl web2 dstdomain www.yun.com
#定义两个个基于域名的控制列表,分别命名为web1,web2
http_access allow web1 web2
#允许以web1,web2为目标域名的访问
http_port 172.16.10.137:80 accel vhost vport
#将端口监听在 172.16.10.137的80端口上,accel 指启用加速模式,vhost,vport用于转发请求
cache_peer 172.16.10.29 parent 80 0 no-query originserver round-robin weight=1 name=web1
#cache_peer 指定后端服务器地址,80 为后端服务端口,0 为 ICP 端口号(多个 Squid 时用),originserver 指定资源服务器,round-robin指使用轮询方式,weight指的是权重,自由分配,name 指定一个别名
cache_peer 172.16.10.134 parent 80 0 no-query originserver round-robin weight=1 name=web2
#和上面的一样

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

这里记得重新启动squid服务

  • 修改两个http服务的首页内容,方便后面实验的验证

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

  • 修改客户端win7的地址解析使之识别www.yun.com

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

squid代理服务的ACL访问控制、日志分析及反向代理(4.1版本)

这样就实验成功了,访问www.yun.com,真实服务器会使用轮询的方式,分别轮流访问两台web服务器。

相关内容

热门资讯

台风“红霞”以巅峰强度在惠州登... 今年第12号台风“红霞”(强台风级)的中心已于26日03时50分前后在广东省惠州市惠东县平海镇登陆,...
直击台风“红霞”登陆:楼在动,... 7月26日凌晨4时,惠东县小径湾。记者此刻正在一栋临海高层楼房的客厅里,双腿微微发颤——不是因为冷,...
人民日报:查处携程垄断案释放反... 林丽鹂 《人民日报》(2026年07月26日 第02版)携程垄断案的查处是平台经济反垄断常态化监管的...
以总理计划向特朗普递交伊朗情报 △以色列总理内塔尼亚胡(资料图)当地时间7月25日,总台记者自以色列方面获悉,以总理内塔尼亚胡及其访...
原创 手... 以前购买的手机想要用3天不充电,基本上是不可能的,但这两年手机电池技术有大突破,非重度使用的情况下,...
咪咕数媒亮相第34届全国图书交... 潮新闻客户端 记者 王景平 7月24日,第34届全国图书交易博览会盛大举办。作为数字文化领域的核心央...
王兴兴和他的机甲机器人登上《时... 当地时间7月23日,宇树科技创始人兼首席执行官王兴兴与该公司突破性的载人机甲机器人GD01共同登上美...
APEC论坛聚焦亚太人工智能普... 这是7月23日在成都街头拍摄的会议主题装置。当日,2026年亚太经合组织(APEC)数字和人工智能部...
菲尔兹奖得主王虹4岁不慎烫伤,... 中国数学家王虹、邓煜获得菲尔兹奖,这是中国籍数学家首次获得这一奖项。王虹1991年出生在广西桂林平乐...
美媒:特朗普下令暂停空袭伊朗 美国“Axios”新闻网7月25日援引知情人士报道,特朗普24日指示美军不得对伊朗发动新的打击,打破...