搭建squid反向代理、配置ACL访问控制与sarg日志

文章目录

  • 前言
  • 一:环境
    • 1.1:环境
    • 1.2:实验目的
  • 二:ACL访问控制
    • 2.1:概述
    • 2.2:典型的访问规则配置
  • 三:sarg日志
    • 3.1:在squid服务器上部署sarg
  • 四、反向代理概述
    • 4.1 反向代理
    • 4.2 反向代理网站加速
    • 4.3 搭建反向代理实现加速
    • 4.4 client客户端设置域名解析和squid代理并测试

前言

一:环境

1.1:环境

●继承上一个试验的环境:squid传统代理和透明代理

●https://blog.csdn.net/weixin_47151650/article/details/108430818

●VMware软件

●一台centos7虚拟机作为squid服务器,添加一个网卡,IP地址为:192.168.100.100和192.168.100.1(仅主机模式)

●一台centos7虚拟机作为web服务器,IP地址为:192.168.100.10

●一台win10虚拟机作为client测试机,IP地址为:192.168.10.33(仅主机模式)

1.2:实验目的

●通过ACL访问控制实现对主机允许和拒绝访问

●通过sarg部署,每天生成日志文件,方便访问

●实现squid的反向代理

二:ACL访问控制

2.1:概述

●ACL(Access Control List,访问控制列表),可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件进行过滤

●ACL访问控制的步骤

●使用acl配置项定义需要控制的条件

●通过http_access配置项对已定义的列表做允许或拒绝的访问控制

ACL

src          源地址
dst            目标地址
port           目标地址
dstdomain       目标域
time           访问时间
maxconn        最大并发连接
url_regex       目标URL地址 
urlpath_regex  整个目标URL路径 

2.2:典型的访问规则配置

设置ACL访问规则

[root@squid ~]# vim /etc/squid.conf	'squid配置文件'
# should be allowed
acl hostlocal src 192.168.10.100/32  '监控client客户端的主机(192.168.10.100/32取名为hostlocal'
# Deny requests to certain unsafe ports
http_access deny hostlocal  '调用hostlocal,设置拒绝访问'
[root@squid ~]# service squid restart

client客户端尝试访问web端,client客户端先清除浏览器数据

搭建squid反向代理、配置ACL访问控制与sarg日志_第1张图片
ACL策略设置成功,已拒绝192.168.100.10的主机访问

因为我们接下来还需要使用client客户端做测试,所以删除刚刚设置的ACL规则,并重启squid服务

三:sarg日志

3.1:在squid服务器上部署sarg

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

在squid服务器上部署sarg

[root@localhost sarg-2.3.7]# yum install gd gd-devel -y
[root@localhost sarg-2.3.7]# mkdir /usr/local/sarg
[root@squid sarg-2.3.7]# ./configure --prefix=/usr/local/sarg \  '指定sarg目录'
> --sysconfdir=/etc/sarg \  '配置文件的目录'
> --enable-extraprotection  '开启安全防护'
[root@squid sarg-2.3.7]# make && make install

修改sarg配置文件

[root@squid sarg-2.3.7]# cd /etc/sarg/
[root@squid sarg]# vim sarg.conf  '下面我都标了行号,根据行号修改'
7 access_log /usr/local/squid/var/logs/access.log '指定访问日志文件'
25 title "Squid User Access Reports"  '网页标题'
120 output_dir /var/www/html/squid-reports  '报告输出目录'
178 user_ip no  '使用用户名显示'
184 topuser_sort_field connect reverse  'top排序中有连接次数,访问字节,降序排列,升序是normal'
190 #user_sort_field BYTES reverse
206 exclude_hosts /usr/local/sarg/noreport  '不计入排序的站点列表文件' 
257 overwrite_report no  '同名日志是否覆盖'
289 mail_utility mailq.postfix  '发送邮件报告命令'
434 charset UTF-8  '使用字符集'
518 weekdays 0-6   'top排行的时间周期'
525 hours 0-23     'top排行的时间周期'
633 www_document_root /var/www/html  '网页根目录'
[root@squid sarg]# touch /usr/local/sarg/noreport '添加不计入站点文件,添加的域名将不被显示'
[root@squid sarg]# ln -s /usr/local/sarg/bin/sarg  /usr/local/bin/  '创建sarg命令的软连接'
[root@squid sarg]# sarg  '生成报告'
SARG: 纪录在文件: 791, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-  reports/2020Sep06-2020Sep07 '提示报告生成在这个目录,我们进入这个目录查看一下'

安装apache服务

[root@squid sarg]# yum install httpd -y
[root@squid sarg]# systemctl start httpd

查看192.168.100.100/squid-reports,可以看到详细的访问信息
搭建squid反向代理、配置ACL访问控制与sarg日志_第2张图片
周期性计划任务,每天生成报告

[root@squid sarg]# sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)

搭建squid反向代理、配置ACL访问控制与sarg日志_第3张图片
搭建squid反向代理、配置ACL访问控制与sarg日志_第4张图片

四、反向代理概述

4.1 反向代理

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

搭建squid反向代理、配置ACL访问控制与sarg日志_第5张图片

4.2 反向代理网站加速

工作机制

●缓存网页对象,减少重复请求

●将互联网请求轮训或按权重分配到内网Web服务器

●代理用户请求,避免用户直接访问Web服务器,提高安全
搭建squid反向代理、配置ACL访问控制与sarg日志_第6张图片

4.3 搭建反向代理实现加速

搭建两台web服务器,修改网页,进行访问

搭建squid反向代理、配置ACL访问控制与sarg日志_第7张图片
搭建squid反向代理、配置ACL访问控制与sarg日志_第8张图片
修改squid服务器配置文件

[root@squid sarg]# vim /etc/squid.conf
# Squid normally listens to port 3128
http_port 192.168.100.100:80 accel vhost vport '监控本机80端口'
cache_peer 192.168.100.10 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web01 '节点服务器1最大访问30,权重1,别名web01'
cache_peer 192.168.100.8 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web02 '节点服务器2最大访问30,权重1,别名web02'
[root@squid sarg]# service squid restart  '重启服务'
正在关闭 squid...
正在启动 squid...
[root@squid sarg]# netstat -ntap |grep 80
tcp        0      0 192.168.100.100:80      0.0.0.0:*               LISTEN      24528/(squid-1) 

4.4 client客户端设置域名解析和squid代理并测试

设置域名解析(以administrator用户登录)

C盘-Windows-system32-drivers-etc-hosts

搭建squid反向代理、配置ACL访问控制与sarg日志_第9张图片

设置浏览器代理:因为使用的是谷歌浏览器,以谷歌浏览器为例

搭建squid反向代理、配置ACL访问控制与sarg日志_第10张图片
client客户端访问www.yun.com查看是否代理成功

搭建squid反向代理、配置ACL访问控制与sarg日志_第11张图片
搭建squid反向代理、配置ACL访问控制与sarg日志_第12张图片

你可能感兴趣的:(缓存加速)