欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

程序员文章站 2022-07-06 12:38:41
...

理论+实验·Squid代理服务器应用—ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

一、ACL访问控制

1.1 ACL访问控制方式

  • 根据源地址、目标URL、文件类型等定义列表

acl	列表名称	列表类型	列表内容	
  • 针对已定义的acl列表进行限制

http_access	allow或deny	列表名称

1.2 ACL规则优先级

  • 一个用户访问代理服务器时,Squid会顺序匹配Squid中定义的所有规则列表,一旦匹配成功,立即停止匹配

  • 所有规则都不匹配时,Squid会使用与最后一条相反的规则

1.3 常用的ACl列表类型

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

二、ACL列表的应用

2.1 最简单的ACL控制

  • 禁止任何客户机使用此代理服务

[aaa@qq.com ~]# vim /et/squid.conf
...
acl test src 20.0.0.100/32
...
http_access deny test

2.2 ACL综合应用

  • 允许多个局域网在工作时间上网

[aaa@qq.com ~]# vim /etc/squid.conf
...
acl test src 20.0.0.200/32
acl MYLAN src 192.168.6.0/24 192.168.1.0/24
acl WORKTIME time MTWHFAC 08:30-17:30
...
http_access allow MYLAN WORKTIME
http_access deny test
  • 通过黑名单限制目标网站

//创建地址列表文件//
[aaa@qq.com ~]# vim /etc/squid/ipblock.list
20.0.0.200
20.0.0.190
[aaa@qq.com ~]# vim /etc/squid/dmblock.list
.qq.com
.msn.com
[aaa@qq.com ~]# vim /etc/squid.conf
...
acl IPBLOCK dst "/etc/squid/ipblock.list"
acl DMBLOCK dstdomain "/etc/squid/dmblock.list"
...
http_access deny IPBLOCK
http_access deny DMBLOCK

实验环境

在传统模式的基础上做访问控制

squid 20.0.0.90

web1 20.0.0.80

web2 20.0.0.70

Win10 20.0.0.200

实验步骤

  • 安装apache网站

//web1安装apache,web2同样的操作
[aaa@qq.com ~]# yum -y install httpd
[aaa@qq.com ~]# setenforce 0
[aaa@qq.com ~]# systemctl stop firewalld
[aaa@qq.com ~]# systemctl start httpd
[aaa@qq.com ~]# vim /var/www/html/index.html
<h1>this is web1</h1>
  • 配置ACL访问控制

//仅拒绝Win10的客户端(20.0.0.200)访问
[aaa@qq.com init.d]# vim /etc/squid.conf
...
acl test src 20.0.0.200/32
...
http_access deny test
...
[aaa@qq.com init.d]# service squid reload

Win10 浏览器访问"20.0.0.80"

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

//使用列表拒绝
[aaa@qq.com init.d]# vim /etc/squid.conf
...
acl test src "/etc/squid/allow.list"
...
http_access deny test
...
[aaa@qq.com init.d]# mkdir /etc/squid/
[aaa@qq.com init.d]# vim /etc/squid/allow.list
[aaa@qq.com init.d]# service squid reload

Win10 浏览器访问"20.0.0.80"

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

三、Squid日志分析工具Sarg

  • 安装并配置Sarg

[aaa@qq.com ~]# yum -y install gd gd-devel		//图像处理//
[aaa@qq.com ~]# tar zxvf sarg-2.3.7.tar.gz -C /opt/
[aaa@qq.com ~]# cd /opt/sarg-2.3.7
[aaa@qq.com sarg-2.3.7]# ./configure \
--prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection		//额外的安全防护//
[aaa@qq.com sarg-2.3.7]# make && make install
  • 配置Sarg

[aaa@qq.com sarg-2.3.7]# vim /etc/sarg/sarg.conf
//7行---指定访问日志文件
access_log /usr/localsquid/var/logs/access.log
//25行---网页标题
title "Squid User Access Reports"
//120行---报告输出目录
output_dir /var/www/html/squid-reports
//178行---使用用户名显示
user_ip no
//184行---top排序中有连接次数、访问字节、降序排列 升序时normal
topuser_sort_field connect reverse
//190行注释掉---用户访问记录 连接次数、访问字节按降序排序
# user_sort_field reverse
//206行---不计入排序的站点列表文件
exclude_hosts /usr/local/sarg/noreport
//257行---同名日志是否覆盖
overwrite_report no
//289行---发送邮件报告命令
mail_utility mailq.postfix
//434行---使用字符集
charset UTF-8
//518行---top排行的星期周期
weekdays 0-6
//525行---top排行的时间周期
hours 0-23
//633行---网页根目录
www_document_root /var/www/html

#启动日志分析工具sarg
[aaa@qq.com sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
[aaa@qq.com sarg-2.3.7]# mkdir /usr/local/sarg/noreport
[aaa@qq.com ~]# sarg
SARG: 纪录在文件: 209, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/sarg/2020Sep07-2020Sep07
[aaa@qq.com ~]# yum -y install httpd
[aaa@qq.com ~]# setenforce 0
[aaa@qq.com ~]# systemctl stop firewalld
[aaa@qq.com ~]# systemctl start httpd
  • 运行及验证Sarg

浏览器访问"20.0.0.90/sarg"

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、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)

三、反向代理概述

3.1 反向代理

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

四、反向代理网站加速

4.1 工作机制

  • 缓存网页对象,减少重复请求
  • 将互联网请求轮询或按权重分配到内网Web服务器
  • 代理用户请求,避免用户直接访问Web服务器,提高安全

实验环境

实验步骤

  • 传统模式的基础上

[aaa@qq.com ~]# vim /etc/squid.conf
http_port 20.0.0.90:80 accel vhost vport
cache_peer 20.0.0.80 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 20.0.0.70 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.test.com
  • Win 10 操作系统

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

C:\Windows\System32\drivers\etc\hosts
...
20.0.0.90		www.test.com			//hosts最后添加

实验结果

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

浏览器输入squid服务器的IP地址或者域名"www.test.com"

理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理
理论+实验·Squid代理服务器应用---ACL访问控制、Squid日志分析工具Sarg、Squid反向代理

相关标签: 缓存加速