Squid—日志分析和反向代理(服务搭建教程)

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Squid—日志分析和反向代理(服务搭建教程)相关的知识,希望对你有一定的参考价值。

一、ACL访问控制

ALC主要通过两个步骤来实现

  • 通过aclp配置项定义需要控制的条件
  • 通过http_access 配置项对已定义的列表做 “允许” 或 “拒绝” 访问的控制

1.1 定义访问控制列表

格式

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

方法一

  • vim /etc/squid.conf
# 第七行下插入客户端ip内容
  7 # should be allowed
  8 acl localhost src 12.0.0.10/24

# 31行下插入禁止命令
 31 # Deny requests to certain unsafe ports
 32 http_access deny localhost

测试

此时访问会被拒绝
在这里插入图片描述

  • 注释第32行即可继续访问

方法二

  • 创建目录
mkdir /etc/squid/
  • vim /etc/squid/dest.list
12.0.0.10			# 新建放入客户端IP
  • vim /etc/squid.conf
# 前面设置的修改为调用上面文件的内容
  8 acl destinationhost dst "/etc/squid/dext.list"

# 修改为拒绝该列表
 33 http_access deny destinationhost

# 修改回原来的
 66 http_port 3128
  • systemctl restart squid

测试

在这里插入图片描述

二、日志分析

sarg ( Squid Analysis ReportGenerator)

是一款squid日志分析工具,采用html格式,详细列出每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数、访问量等

2.1 服务搭建

服务安装使用

软件安装

  • yum -y install gd gd-devel pcre-devel

创建目录

  • mkdir /usr/local/sarg

解压缩

  • cd /opt
  • tar zxvf sarg-2.3.7.tar.gz

编译安装

  • cd /opt/sarg-2.3.7/
 ./configure --prefix=/usr/local/sarg \\
> --sysconfdir=/etc/sarg \\						# 配置文件目录
> --enable-extraprotection						# 额外安全防护
  • make && make install

修改配置文件

  • vim /etc/sarg/sarg.conf
#第7行取消注释
7 access_log /usr/local/squid/var/logs/access.log			# 访问指定的日志文件

#第25行取消注释
25 title "Squid User Access Reports"						# 网页标题

#第120行取消注释,修改
120 output_dir /var/www/html/sarg							# 输出的目录

#第178行取消注释
178 user_ip no												# 使用用户名显示

#第184行取消注释并修改
184 topuser_sort_field connect reverse						# top排序中,指定连接次数用降序,升序设置 normal

#第190行取消注释并修改
190 user_sort_field connect reverse							# 用户访问记录用降序排序

#第206行取消注释并修改
206 exclude_hosts /usr/local/sarg/noreport					# 指定不计入排序的站点列表的文件

#第257行取消注释
257 overwrite_report no										# 同名同日的日志不覆盖

#第289行取消注释并修改
289 mail_utility mailq.postfix								# 发送邮件报告命令

#第434行取消注释并修改
434 charset UTF-8											# 万国符

#第518行取消注释
518 weekdays 0-6											# top排行的星期周期

#第525行取消注释
525 hours 0-23												# top排行的时间周期

#第633行取消注释
633 www_document_root /var/www/html							# 指定网页根目录

添加不计入站点文件

  • touch /usr/local/sarg/noreport
  • ln -s /usr/local/sarg/bin/sarg /usr/local/bin/

运行

  • sarg

在这里插入图片描述

2.2 验证

  • yum -y install httpd
  • systemctl start httpd

使用squid服务器访问192.168.253.11/sarg

在这里插入图片描述

2.3 添加计划任务

创建脚本

  • vim /usr/1oca1/sarg/report.sh
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg
-z -d $YESTERDAY-$TODAY &> /dev/null
exit 0
  • chmod +x /usr/local/sarg/report.sh
  • crontab -e
  • 0 0 * * * /usr/local/sarg/report.sh

三、反向代理

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

3.1 工作机制

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

3.2 服务搭建

关闭防火墙,关闭本地httpd

  • systemctl stop firewalld
  • systemctl stop httpd

设置防火墙规则

iptables -F
iptables -t nat -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

配置文件设置

  • vim /etc/squid.conf
# 添加以下内容
http_port 192.168.253.11:80 accel vhost vport
cache_peer 192.168.253.22 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.253.33 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.cc.com

对www.cc.com的请求,squid向253.22253.3380端口发出请求

# 名词解释

accel:反向代理加速模式
vhost:支持域名或主机名来表示代理节点
vport:支持IP和端口来表示代理节点

parent:代表为父节点,上下关系,非平级关系
80:代理内部web服务器的80端口
0 :没有使用icp,表示就一台squid服务器
no-query:不做查询操作,直接获取数据
originserver:指定是源服务器
round-robin:指定squid通过轮询方式将请求分发到其中一台父节点
max_conn:指定最大连接数
weight:指定权重
name:设置别名

squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和webserver的请求端口(vhostvport)绑定,这个时候请求到了squid, squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据

3.3 服务器设置

web1设置

echo "this is web111" >> /var/www/html/index.html
systemctl start httpd

web2设置

echo "this is web222" >> /var/www/html/index.html
systemctl start httpd

客户机域名映射
在这里插入图片描述在这里插入图片描述

末行添加
192.168.253.11 www.cc.com

3.4 访问测试

在这里插入图片描述
在这里插入图片描述

以上是关于Squid—日志分析和反向代理(服务搭建教程)的主要内容,如果未能解决你的问题,请参考以下文章

缓存加速------Squid代理服务器应用(传统代理,透明代理,反向代理,ACL访问控制,日志分析)

squid日志分析及反向代理

squid代理服务器(传统代理透明代理反向代理ACL日志分析)

squid的ACL日志分析反向代理

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

部署Squid 代理服务器(内含传统透明代理服务器的配置ACL访问控制日志分析反向代理)