Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

这篇具有很好参考价值的文章主要介绍了Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Squid代理服务器的概述

squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。

Squid主要提供缓存加速、应用层过滤控制的功能

1、squid代理的工作机制:

• 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址

• 将获得的网页数据(静态 web元素)保存到缓存中并发给客户机,以便下次请求相同的数据时快速响应

当我们客户机通过squid代理去访问web页面时,指定的代理服务器会先检查自己的缓存,若是缓存中有我们客户机需要的页面,那么squid服务器将直接把缓存中的页面内容返回给客户机

如果缓存中没有客户端请求的页面,那么squid代理服务器就会向internet发送访问请求,获得返回的web页面后,将网页的数据保存到缓存中并发送给客户机。

由于客户机的web访问请求实际上是squid代理服务器来代替完成的,所以隐藏了用户的真实IP地址,从而起到一定的保护作用。

另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。

2、squid代理的基本类型

① 传统代理:适用于internet,需在客户机指定代理服务器的地址和端口

② 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向给代理服务器处理

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

根据实现的方式不同,基本可以分为传统代理和透明代理两种方式:

传统代理:也就是普通的代理服务,需要我们客户端在浏览器、聊天工具等一些程序中设置代理服务器的地址和端口,然后才能使用代理来访问网络,这种方式相比较而言比较麻烦,因为客户机还需手动指定代理服务器,所以一般用于Internet环境。

透明代理:与传统代理实现的功能是一样的,区别在于客户机不需要手动指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向,实际上仍然交给代理服务器来处理,重定向的过程完全是由squid服务器进行的,所以对于客户机来说,甚至不知道自己使用了squid代理服务,因此呢,我们称之为透明模式。

透明代理多用于局域网环境,如在Linux网关中启用透明代理后,局域网主机无须进行额外设置就能享受更好的上网速度。

3、squid代理的工作模式图解

3.1、传统模式:

此类工作模式为三种模式中最简单的构成,对客户端配置较不友好,主要功能为正向代理,加速内网用户的访问速度,减少出口流量。

(如果搭建公用的代理服务器,用这样方式,需要用户进入其本机的网络设置中,设置搭建了squid服务器的IP和端口)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

3.2、透明模式:

此类工作模式配置较为复杂,同样也是实现正向代理需要借助防火墙对端口进行重定向操作。但是对于客户端来说配置较为友好无需进行任何配置即可使用代理功能,主要功能为加速内网用户的访问速度,减少出口流量。

(如果搭建内网访问外网的代理服务器,建议使用这种,无需到客户端设置代理服务器的IP和端口,自动实现squid代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

3.3、反向代理模式:

反向代理模式位于本地WEB服务器和公网之间,处理公网用户发起的请求,并代理至内网服务中,有效减轻后端真是服务器的压力,增加服务器的并发处理能力

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

4、使用squid代理的好处

• 提高web访问速度

• 隐藏客户机的真实IP地址

二、Squid代理服务器的编译安装及运行

1、Squid代理服务器的编译安装及运行的操作步骤

首先关闭防火墙和SElinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

1.1、编译安装Squid

#安装依赖环境
yum -y install gcc gcc-c++ make
#上传软件包squid-3.5.27. tar到/opt目录下
cd /opt
#解压
tar zxvf squid-3.5.27.tar.gz
#配置相关模块
cd squid-3.5.27/
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex
 
# 编译安装
make && make install
 
-----------------------------------------------
####_上述脚本解释###
 
./configure --prefix=/usr/local/squid
##安装目录
--sysconfdir=/etc/
##单独将配置文件修改到/etc目录下
-- enable-arp-acl
##可在ACL中设置通过MAC地址进行管理,防止IP欺骗
--enable-1inux-netfilter
##使用内核过滤
--enable-linux-tproxy
##支持透明模式
--enable-async-io=100
##异步I/O,提升储存性能,值可修改
--enable-err-language="Simplify_Chinese"
##错误信息的显示语言
--enable-underscore
##允许URL中有下划线
-enable-poll
##使用Poll () 模式,提升性能
--enable-gnuregex
##使用GNU正则表达式
ln -s /usr/local/squid/sbin/* /usr/local/sbin
##创建链接文件,优化路径
useradd -M -s /sbin/nologin squid
###创建程序用户、组
chown -R squid:squid /usr/local/squid/var/
##改变目录属主,此目录用来存放缓存文件

1.2、修改Squid的配置文件

vim /etc/squid.conf
......
-----56行--插入------
http_access allow all         #放在http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
http_access deny all
http_port 3128                 #用来指定代理服务监听的地址和端口(默认的端口号为3128)
-----61行--插入------
cache_effective_user squid     #添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功
cache_effective_group squid    #添加,指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid   #指定缓存文件目录

1.3 、Squid 的运行控制

#检查配置文件语法是否正确
squid -k parse
 
#启动Squid, 第一次启动Squid服务时,会自动初始化缓存目录
squid -z   #-z选项用来初始化缓存目录
squid      #启动squid 服务
 
netstat -anpt | grep "squid"

1.4、创建 Squid 服务脚本

vim /etc/init.d/squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
 
case "$1" in
   start)
     netstat -natp | grep squid &> /dev/null
     if [ $? -eq 0 ]
     then
       echo "squid is running"
       else
       echo "正在启动 squid..."
       $CMD
     fi
   ;;
   stop)
     $CMD -k kill &> /dev/null
     rm -rf $PID &> /dev/null
   ;;
   status)
     [ -f $PID ] &> /dev/null
        if [ $? -eq 0 ]
          then
            netstat -natp | grep squid
          else
            echo "squid is not running"
        fi
   ;;
   restart)
      $0 stop &> /dev/null
      echo "正在关闭 squid..."
      $0 start &> /dev/null
      echo "正在启动 squid..."
   ;;
   reload)
      $CMD -k reconfigure
   ;;
   check)
      $CMD -k parse
   ;;
   *)
      echo "用法:$0{start|stop|status|reload|check|restart}"
   ;;
esac

#2345是默认自启动级别,如是 - 代表任何级别都不自启动; 90是启动优先级,25是停止优先级, 优先级范围是0一100,数字越大,优先级越低。

chmod +x /etc/init.d/squid
chkconfig --add squid
chkconfig --level 35 squid on

2、实例操作:Squid代理服务器的编译安装及运行

首先关闭防火墙和SElinux

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


  

2.1、编译安装Squid

#安装依赖环境,上传软件包squid-3.5.28. tar到/opt目录下并解压

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


  

#配置相关模块

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


 

# 编译安装

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


 

#创建链接文件,创建程序用户、组,并改变目录属主

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.2、修改Squid的配置文件

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.3 、Squid 的运行控制

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.4、创建 Squid 服务脚本

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

三、搭建传统代理

1、搭建传统代理的操作步骤

环境准备

Squid 代理服务器:192.168.2.22

web服务器: 192.168.2.66

win10客户端: 192.168.2.10

1.1 修改squid的配置文件

vim /etc/squid.conf
......
http_access allow all
http_access deny all
http_port 3128
cache_effective_user squid
cache_effective_group squid
---63行,插入----
cache_mem 64 MB            
#指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB          
#允许用户下载的最大文件大小,以字节为单位,当下载超过指定大小的Web对象时,浏览器的报错页面中会出现“请求或访问太大”的提示默认设置0表示不进行限制
maximum_object_size 4096 KB        
#允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

1.2 重启服务

service squid restart
systemctl restart squid  

1.3 生产环境中还需要修改防火墙规则

iptables -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
iptables -nL INPUT

1.4 web服务器安装web服务(httpd或者nginx)

systemctl stop firewalld.service
setenforce 0
yum -y install httpd
systemctl start httpd
netstat -natp | grep 80

1.5 修改win10客户端,添加代理

打开浏览器工具-->Internet选项-->连接 -->局域网设置-->开启代理服务器 (地址: Squid服务器IP地址,端口: 3128) 清除缓存后使用浏览器访问http://192.168.2.66(web服务器地址)  

1.6 在win10客户端访问web服务器进行验证

#查看Squid访问日志的新增记录

tail -f /usr/local/squid/var/logs/access.log   

#查看Web访问日志的新增记录

tail -f /var/log/httpd/access_log  

在浏览器输入Web服务器IP地址访问,查看Web服务器访问日志,显示的是由代理服务器替客户机在访问。

2、实例操作:搭建传统代理

2.1 修改squid的配置文件

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.2 重启服务

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.3 生产环境中还需要修改防火墙规则

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


  

2.4 web服务器安装web服务(httpd或者nginx)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.5 修改win10客户端,添加代理

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.6 在win10客户端访问web服务器进行验证

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

四、搭建透明代理

1、搭建透明代理的操作步骤

环境准备:

squid服务器 :双网卡 ens33:192.168.2.22,ens36:12.0.0.1

web服务器:12.0.0.18(网关为squid代理服务器的ens36)

Win10客户端:192.168.229.200(网关为squid代理服务器的ens33)

1.1 Squid服务器:双网卡

内网ens33: 192.168.2.22  外网ens36: 12.0.0.1 
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36           #修改IP地址,并注释或者删除DNS与网关
systemctl restart network  

1.2 修改squid配置文件

vim /etc/squid.conf
http_access allow all
http_access deny all
--60行--修改添加提供内网服务的IP地址,和支持透明代理选项transparent
http_port 192.168.229.60:3128 transparent
 
systemctl restart squid

1.3 squid服务器添加路由转发和iptables规则

#开启路由转发,实现本机中不同网段的地址转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
<br>#修改防火墙规则
iptables -F
iptables -t nat -F
# 添加防火墙规则(将来源为229网段:80/443端口的流量重定向到3128端口)
iptables -t nat -I PREROUTING -i ens33 -s 192.168.229.0/24 -p tcp --dport 80 -j REDIRECT --to 3128  #用于转发Http协议
iptables -t nat -I PREROUTING -i ens33 -s 192.168.229.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 #用于转发https协议   
#如果要进行重启,则需要配置以下规则
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

1.4 web服务器

修改IP地址为12.0.0.18,并设置网关为12.0.0.1

并开启httpd服务,之前已安装该服务

 vim /etc/sysconfig/network-scripts/ifcfg-ens33
 cat /etc/sysconfig/network-scripts/ifcfg-ens33
 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID="4ff14eea-f777-4bc2-b50b-7179db6ba998"
DEVICE=ens33
ONBOOT=yes
IPADDR=12.0.0.18
NETMASK=255.255.255.0
GATEWAY=12.0.0.1
#DNS1=192.168.229.2
 
 systemctl restart network
 systemctl restart httpd.service  

1.5.客户端关闭代理并访问web服务器

添加网关,网关为squid服务器的ens33

查看Web1访问日志的新增记录
tail -f /var/log/httpd/access_log

2、实例操作:搭建透明代理

2.1 Squid服务器:双网卡

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.2 修改squid配置文件

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.3 squid服务器添加路由转发和iptables规则

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.4 web服务器

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


  

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.5 客户端关闭代理并访问web服务器

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

五、ACL访问控制

1、ACL访问控制概述

1.1、ACL访问控制列表的概念

ACL(Access Control List)访问控制列表,主要用于过滤网络中的流量,是控制访问的一种技术手段。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,应用在端口上,根据预先设定的策略,对特定端口的流量起到控制作用。

访问控制列表(ACL)由一组规则组成,在规则中定义允许或拒绝通过路由器的条件

利用ACL可以对经过路由器的数据包按照设定的规则进行过滤,使数据包有选择的通过路由器,起到防火墙的作用。

ACL一般只在以下路由器上配置:

  • 内部网和外部网的边界路由器。
  • 两个功能网络交界的路由器。

1.2、在配置文件squid.conf中,ACL访问控制的步骤

通过以下两个步骤来实现:

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

1.3、定义访问控制列表

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

• 列表名称: 名称自定义,相当于给acl起个名字

• 列表类型: 必须使用squid预定义的值,对应不同类别的控制条件

• 列表内容: 是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格为分
隔,为“或"的关系)

1.4 ACL访问控制方式

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

acl 列表名称 列表类型 列表内容…

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

http_access allow或deny列表名称…

1.5 ACL规则优先级

一个用户访问代理服务器时,Squid会顺序匹配Squid中定义的所有规则列表,一旦匹配成功,立即停止匹配
所有规则都不匹配时,Squid会使用与最后一条相反的规则

1.6 常用的ACL列表类型

src →>源地址

dst >自标地址

port→>端口

dstdomain>目标域

time →>访问时间

maxconn →最大并发连接

ourl_regex→目标URL地址

Urlpath_regex→整个目标URL路径

2、设置ACL访问控制的步骤

环境准备

Squid 代理服务器:192.168.2.22

web服务器: 192.168.2.66

win10客户端: 192.168.2.10

使用传统代理方式进行设置ACL访问控制(传统代理的设置见上文)

2.1 定义访问控制列表

方法一:

vim /etc/squid.conf
......
acl localhost src 192.168.2.100/32                 #源地址为192.168.2.100
acl MYLAN src 192.168.2.0/24                      #客户机网段
acl destinationhost dst 192.168.2.66/32               #目标地址为192.168.2.66
acl MC20 maxconn 20                         #最大并发连接20
acl PORT port 21                            #目标端口21
acl DMBLOCK dstdomain .qq.com                       #目标域,匹配域内所有站点
acl BURL url_regex -i ^rtsp:// ^emule://                #以rtsp://.emule://开头的URL,-i表示忽略大小写
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$                 #以.mp3、.mp4、.rmvb结尾的URL路径
acl WORKTIME time MTWHF 08:30-17:30                 #时间为周一--至周五8:30~17:30,"MTWHF"为每个星期的英文首字母
 
第一条插入:
http_access deny localhost

方法二:

#启动对象列表管理  

mkdir /etc/squid
vim /etc/squid/dest.list
192.168.2.22                               #Squid服务器IP
192.168.200.0/24                             #任意需要的网段
 
vim /etc/ squid.conf
.......
acl destinationhost dst "/etc/squid/dest.list"                  #调用指定文件中的列表内容
http access deny(或allow) destinationhost                #注意,如果是拒绝列表,需要放在http_access allow all前面
 
systemctl restart squid

2.2. WEB服务器上安装httpd服务

yum install -y httpd
systemctl start httpd

2.3 Client客户上测试

浏览器中输入192.168.2.66查看web是否被拒绝

3、实例操作:设置ACL访问控制

2.1 定义访问控制列表

方法一:

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.1 使用客户端(192.168.2.10)访问web浏览器访问192.168.2.66

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.3 再次定义访问控制列表

方法二:

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.14 再次使用客户端(192.168.2.10)访问web浏览器访问192.168.2.66

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

六、Squid日志分析

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

1、实现Squid日志分析的步骤

1.1 安装图像处理软件包

yum install -y gd gd-devel pcre-devel
mkdir /usr/local/sarg  

1.2 将zxvf sarg-2.3.7. tar.gz压缩包上传到/opt目录下,解压并配置相关模块,编译安装

tar zxvf sarg-2.3.7.tar.gz -C /opt/
 
cd /opt/sarg-2.3.7
./configure --prefix=/usr/local/sarg \   #指定安装路径
--sysconfdir=/etc/sarg \    #配置文件目录
--enable-extraprotection    #额外安全防护
 
-----------------------------------------------------------------------------------------------
./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection
--------------------------------------------------------------------------------------------------
 
make && make install

1.3 修改sarg配置文件

vim /etc/sarg/sarg.conf
--7行--取消注释
access_log /usr/local/squid/var/logs/access.1og #指定访问日志文件
--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 connect reverse #对于用户访问记录,连接次数按降序排序
--206行--取消注释,修改
exclude_hosts /usr/local/sarg/noreport  #指定不计入排序的站点列表的文件
--257行--取消注释
overwrite_report no #同名同日期的日志是否覆盖
--289行--取消注释,修改
mail_utility mailq.postfix  #发送邮件报告命令
--434行--取消注释,修改
charset UTF-8   #指定字符集UTF-8
--518行--取消注释
weekdavs 0-6    #top排行的星期周期
--525行--取消注释
hours 0-23  #top排行的时间周期
--633行--取消注释
www_document_root /var/www/html #指定网页根目录  

1.4 添加不计入站点文件,添加的域名将不被显示在排序中

touch /usr/local/sarg/noreport
ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg --help #获取帮助
 
#运行
sarg #启动一次记录 

1.5 验证

yum install httpd -y
systemctl start httpd  

在squid服务器上使用浏览器访问http://192.168.2.22/squid-reports, 查看sarg报告网页

date -s

1.6 添加计划任务,执行每天生成报告

vim /usr/local/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/1ocal/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/1ocal/sarg/report.sh

2、实例操作:实现Squid日志分析

1.1 安装图像处理软件包

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

1.2 将 sarg-2.3.7. tar.gz压缩包上传到/opt目录下,解压并配置相关模块,编译安装

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)


  

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

1.3 修改sarg配置文件

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)







 

1.4 添加不计入站点文件,添加的域名将不被显示在排序中

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

1.5 浏览器访问验证

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

在squid服务器上使用浏览器访问http://192.168.2.22/squid-reports, 查看sarg报告网页

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

七.反向代理

1、squid反向代理的概述

如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;

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

工作机制:

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

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

2、squid反向代理的操作步骤

环境准备

Squid 代理服务器:192.168.2.22

web1服务器: 192.168.2.66

web2服务器: 192.168.2.99

win10客户端: 192.168.2.10

2.1本地关闭httpd

systemctl stop httpd

2.2 清空防火墙规则,并放空3128端口

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

2.3 .修改squid配置文件

vim /etc/ squid.conf
60行--修改,插入-------
http_port 192.168.2.22:80 accel vhost vport
cache_peer 192.168.2.66 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.2.99 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.xkq.com  #表示对www.xkq.com的请求,squid向192.168.2.66和192.168.2.99的80端口发出请求 

####关键字解释如下####

http_port 80 accel vhost vport
#squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和webserver的请求端口(vhost vport)绑定,这个时候请求到了squid, squid是不用转发请求的,而是直接要么从缓存中拿数据要么向,绑定的端口直接请求数据。
accel:反向代理加速模式
vhost:支持域名或主机名来表示代理节点
vport:支持IP和端口来表示代理节点
parent:代表为父节点,上下关系,非平级关系
80:代理内部web服务器的80端口
0:没有使用icp,表示就一台squid服务器
no-query:不做查询操作,直接获取数据
originserver:指定是源服务器
round-robin:指定squid 通过轮询方式将请求分发到其中一-台父节点
max_conn:指定最大连接数
weight:指定权重
name:设置别名

2.4 重启squid服务

systemctl stop squid
service squid reload  

2.5 后端web节点服务器设置

yum install -y httpd
systemctl start httpd
 
#节点1(web1):
echo "this is test01" >> /var/www/html/index.html
#节点2(web2):
echo "this is test02" >> /var/www/html/index.html 

2.6 客户机的域名映射配置

修改C: \Windows\System32 \drivers\etc\hosts 文件
192.168.2.66 www.xkq.com

2.7 客户机的代理配置并访问测试

打开浏览器,工具-->Internet选项-->连接-->局域网设置-->开启代理服务器(地址: Squid服务器IP地址,端口:80)

浏览器访问http://www.xkq.com

3、实例操作:squid反向代理

3.1 squid服务器本地关闭httpd

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

3.2 清空防火墙规则,并放空3128端口

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.3 .修改squid配置文件

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.4 重启squid服务

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.5 后端web节点服务器设置

#节点1(web1):

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

#节点2(web2):

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.6 客户机的域名映射配置

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

2.7 客户机的代理配置并访问测试

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid总结

1 . Squid作用:
缓存加速,缓存从后端web服务器获取到的,加速为了客户端访问

2 . Squid的三种模式:

① 传统模式

需要客户端指向squid代理服务器,客户端能感知到squid代理服务器的存在
修改的配置文件:squid.conf 设置 3128 端口、缓存和允许下载的大小
② 透明代理

客户端不需要配置,只要直接访问即可,服务端开启路转发,借助了防护墙规则及静态路由的方式,完成透明代理
修改的配置文件:squid.conf 设置ip和 3128 端口
需要设置iptables的流量重定向,将指定网卡网段的流量重定向到 3128 端口
③ 反向代理

作为类似于nginx服务器的反向代理功能,但自身不需要一个首页,基于ip:端口。权重的方式完成反向代理
修改的配置文件:squid.conf 设置端口为 80
服务端需要开启客户机的代理配置
3 . 对应Squid自身的管理/功能:

① ACL:主要做的是http_access(基于http协议,access访问)的允许和拒绝管理

使用 acl 配置项定义需要控制的条件;
通过 http_access 配置项对已定义的列表做“允许”或“拒 绝”访问的控制。
② Sarg:日志分析功能,可以以天的方式指定将access_log中的内容输出到一个web页面中(借助了httpd)展示出来。

借助SARG日志分析工具实现;
编写脚本并加入计划性任务可实现每日自动生成报告。文章来源地址https://www.toymoban.com/news/detail-456553.html

到了这里,关于Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【代理服务器】Squid 反向代理与Nginx缓存代理

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

    2024年02月12日
    浏览(54)
  • CentOS7安装squid代理服务器

    做合法公民,切勿使用代理服务器上外网!!! 在VPN不够用的情况先为远程办公的用户可以使用代理服务器访问公司内部电脑 同时家里的内网也可以使用代理服务器 您需要准备一台已经连接了外网的 CentOS 7 安装 squid ,使用命令: 看到这个代表安装完成: 现在我们需要配置

    2024年02月09日
    浏览(50)
  • Linux下的HTTP代理服务器Squid的配置和使用

    Squid是一个流行的Linux下的HTTP代理服务器软件。通过Squid,你可以在Linux服务器上设置一个代理服务器,以便为客户端提供安全的网络连接和数据传输。以下是Squid的配置和使用指南。 1. 安装Squid 首先,你需要确保你的Linux系统上已经安装了Squid。你可以使用包管理器来安装Sq

    2024年01月16日
    浏览(60)
  • 代理服务器之 squid、lvs、nginx、haproxy之间的区别

    代理服务可简单的分为 正向代理 和 反向代理 正向代理服务器:squid 用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标 Web 服务器的 HTTP 请求先发送到代理服务器上,然后由代理服务器去访问 Web 服务器,并将 Web 服务器的

    2024年02月12日
    浏览(50)
  • 【分布式应用】zabbix:代理服务器、及监控其它应用

    分布式监控的作用: 分担 server 的集中式压力 解决多机房之间的网络延时问题 agent -- proxy -- server 配置 Mariadb yum源 初始化数据库 创建数据库并指定字符集 创建 zabbix 数据库用户并授权 导入数据库信息 修改 zabbix-proxy 配置文件 在所有主机上配置 hosts 解析 点击左边菜单栏【配

    2024年02月13日
    浏览(53)
  • 腾讯云之轻量应用服务器搭建Socks5代理服务器实现游戏单窗口单IP

    最近出海的同学很多,小螺号时隔两年多给大家带来轻量应用服务器搭建Socks5的教程。 轻量应用服务器,有一点好处,带宽超大,但是限制流量,一般用用来说,流量也足够了,只要是价格便宜。 直达领取优惠券 第一步 直达轻量应用服务器页面 点击立即选购 轻量应用服务

    2023年04月09日
    浏览(80)
  • 第二节:基础入门-Web 应用&架构搭建&漏洞&HTTP 数据包&代理服务器

    基础入门-Web 应用架构搭建漏洞HTTP 数据包代理服务器 #网站搭建前置知识 域名,子域名,DNS,HTTP/HTTPS,证书等 购买一台服务器,填完信息之后,会有两个内外网地址,这两个地址就是内部地址和公网地址 得到公网地址后可以用xshell或远程桌面管理连接这台服务器,这里我们

    2024年02月19日
    浏览(41)
  • 探索不同类型的代理服务器 (代理 IP、socks5 代理)及其在网络安全与爬虫中的应用

    1. 代理服务器简介 代理服务器是一台充当中间人的服务器,它在客户端与目标服务器之间传递网络请求。代理服务器在不同层级上可以执行不同的任务,包括缓存、过滤、负载均衡和隐藏客户端真实IP地址等。在网络安全和爬虫领域,代理服务器具有重要的作用。 2. Socks5代理

    2024年02月11日
    浏览(52)
  • 传统服务器与云服务器

    传统服务器即物理服务器,是指独立服务器,也就是指物理上的单独服务器,物理服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。 裸机服务器的官方定义是:裸机服务器也称为单租户环境下的物理服务器。它由一台或多台独立的服务器组成。

    2024年02月12日
    浏览(45)
  • 【云服务器】对比传统服务器,为什么说云服务器更具优势?

    个人主页:【😊个人主页】 系列专栏:【❤️其他领域】 2006年搜索引擎大会上,“云服务器”的概念孕育而生,时至今日云服务器与传统服务器的优劣对比仍在各大论坛进行着激烈论争。但我们不可否认的是云服务器早已正式走入公众视野,渗透到了我们工作和生活的各个

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包