Squid代理服务器的应用--squid反向代理;ACL访问控制与sarg日志

ACL访问控制:

ACL访问控制方式
●根据源地址,目标URL,文件类型等定义列表

Acl 列表名称 列表类型 列表内容......

●针对已定义的acl列表进行限制

http_access allow或deny 列表名称

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

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

常用的ACL列表类型

  • Src—> 源地址
  • Dst—> 目标地址
  • Dstdomain—> 目标域
  • Time —> 访问时间
  • Maxconn —> 最大并发连接
  • Url_regex —> 目标URL地址
  • Urlpath——regex —> 整个目标URL路径

ACL列表的应用

最简单的ACL控制

  • 1.禁止任何客户机使用次代理服务
  • 2.允许多个局域网段在工作时间上网
  • 3.通过黑名单限制

Squid ACL访问控制列表实验

实验环境

在这里插入图片描述

推荐步骤

1.基于之前安装好传统代理的环境,继续做(传统代理的安装参考上一篇的博客)
修改配置文件设置ACL规则

[root@squid init.d]# vim /etc/squid.conf 
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localhost src 192.168.148.150/32     ##监控client客户端的主机(192.168.148.150/32)取名为localhost
acl localnet src 10.0.0.0/8     
.....
# Deny requests to certain unsafe ports
http_access deny localhost       ##调用localhost,设置拒绝访问
[root@squid init.d]# service squid reload    ##重新加载配置文件
[root@squid init.d]# service squid restart    ##重启服务
正在关闭 squid...
正在启动 squid...

2.打开客户端输入服务端的地址做访问测试
在这里插入图片描述
建立列表文件形式设置acl访问控制,文件中放入想禁用的IP地址
1.修改配置文件,创建列表

[root@squid squid]# vim /etc/squid.conf     ##修改配置文件
将原先设置的删除,添加新的设置
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localhost src "/etc/squid/test.list"        ##添加文件位置(绝对路径)
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
.....
# Deny requests to certain unsafe ports
http_access deny localhost       ##调用localhost,设置拒绝访问

[root@squid init.d]# mkdir /etc/squid        ##创建列表目录在/etc下
[root@squid init.d]# cd /etc/squid/
[root@squid squid]# vim test.list     ##创建文件
192.168.148.150         ##写入要禁止访问的IP地址
[root@squid squid]# service squid reload     ##重载服务
[root@squid squid]# service squid stop      ##停止服务
[root@squid squid]# service squid start      ##开启服务
正在启动 squid....

2.在客户端上输入web地址访问测试
在这里插入图片描述

sarg日志分析实验

实验环境

在这里插入图片描述

推荐步骤

1.将sarg工具拖到家目录下进行解压
在这里插入图片描述

[root@squid ~]# tar zxvf sarg-2.3.7.tar.gz     ##解压工具到当前目录下
[root@squid ~]# cd sarg-2.3.7/      
[root@squid sarg-2.3.7]# yum -y install gd gd-devel     ##安装环境包图像处理工具gd

在这里插入图片描述
2.编译安装sarg工具,并修改sarg配置文件

[root@squid 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      ##编译安装
[root@squid sarg-2.3.7]# cd /etc/sarg/   ##切换到sarg的配置文件下

在这里插入图片描述

[root@squid sarg]# vim sarg.conf    ##修改配置文件
##配置文件中所有的都被注释了,我们需要取消注释一下内容
7 access_log /usr/local/squid/var/logs/access.log     ##7行指定访问日志开启
25 title "Squid User Access Reports"   ##25行网页标题
120 output_dir /var/www/html/squid-reports   ##120行报告输出目录
178 user_ip no   ##178行使用用户名显示
184 topuser_sort_field connect reverse    ##184行top排序中有连接次数,访问字节,降序排列,升序是normal
206 exclude_hosts /usr/local/sarg/noreport    ##206行不计入排序的站点列表文件
257 overwrite_report no    ##257行同名日志是否覆盖
289 mail_utility mailq.postfix    ##289行发送邮件报告命令
434 charset UTF-8    ##434行字符集UTF-8
518 weekdays 0-6     ##518行top排行的时间周期
525 hours 0-23      ##525行top排行的时间周期
633 www_document_root /var/www/html    ##633行网页根目录

[root@squid sarg]# touch /usr/local/sarg/noreport    ##创建不计入站点文件
[root@squid sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/     ##将命令建立软链接

[root@squid sarg]# sarg    ##开启sarg服务
SARG: 纪录在文件: 526, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-reports/2020Sep07-2020Sep07

在这里插入图片描述

[root@squid squid-reports]# yum -y install httpd     ##安装httpd服务
[root@squid squid-reports]# systemctl start httpd.service     ##查看服务是否开启 

在这里插入图片描述
3.打开客户端输入网址:192.168.148.135/squid-reports访问
在这里插入图片描述
可以设置周期性计划任务,每天生产报告

[root@squid squid-reports]# 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反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将应答缓存在本地,供下一个请求者使用

工作机制

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

Squid反向代理实验

实验环境

在这里插入图片描述

推荐步骤

1.修改squid服务器的配置文件

[root@squid squid-reports]# vim /etc/squid.conf
#http_port 3128    ##注释掉
http_port 192.168.148.135:80 accel vhost vport
cache_peer 192.168.148.136 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1     ##节点服务器1最大访问30,权重1,别名web1
cache_peer 192.168.148.137 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2    ##节点服务器2最大访问30,权重1,别名web2
cache_peer_domain web1 web2 www.yun.com
[root@squid squid-reports]# systemctl stop httpd      ##关闭httpd服务,不然端口号会被httpd服务占用
[root@squid squid-reports]# service squid stop     ##关闭服务
[root@squid squid-reports]# service squid start     ##开启服务
正在启动 squid....

在这里插入图片描述
2.打开一台新的虚拟机安装apache服务

[root@localhost ~]# hostnamectl set-hostname web02     ##修改主机名方便区分
[root@localhost ~]# su
[root@web02 ~]# setenforce 0       ##关闭防护系统
[root@web02 ~]# iptables -F     ##清空防火墙规则
[root@web02 ~]# yum -y install httpd    ##安装apache服务
[root@web02 ~]# cd /var/www/html/    ##切换到站点目录
[root@web02 html]# vim index.html
<h1>this is test02</h1>     ##写入页面信息
[root@web02 html]# systemctl start httpd.service 

在这里插入图片描述
同理web虚拟机也写入页面信息

[root@web html]# cd /var/www/html/
[root@web html]# vim index.html
<h1>this is test01</h1>    ##写入页面信息
[root@web html]# systemctl restart httpd.service

在这里插入图片描述
2.打开客户端修改
将代理端口号改为80
在这里插入图片描述
客户端配置DNS,按照图中步骤配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开cmd Ping一下测试是否连通
在这里插入图片描述
打开浏览器输入域名访问
在这里插入图片描述
在这里插入图片描述
采用的是轮询算法

猜你喜欢

转载自blog.csdn.net/Cpureman/article/details/108460910
今日推荐