天天看點

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

Squid代理伺服器應用

一、Squid 代理伺服器

Squid 主要提供緩存加速、應用層過濾控制的功能。

緩存代理概述

Web代理的工作機制

●緩存網頁對象,減少重複請求

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

代理的基本類型

●傳統代理:适用于Internet, 需明确指定服務端

●透明代理:客戶機不需指定代理伺服器的位址和端口,而是通過預設路由、防火牆政策将Web通路重定向給代理伺服器處理

●反向代理:如果Squid反向代理伺服器中緩存了該請求的資源,則将該請求的資源直接傳回給用戶端;否則反向代理伺服器将向背景的WEB伺服器請求資源,然後将請求的應答傳回給用戶端,同時也将該應答緩存在本地,供下一個請求者使用

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

使用代理的好處

●提高Web通路速度

●隐藏客戶機的真實IP位址

二、安裝 Squid 服務

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

1.編譯安裝 Squid

yum -y install gcc gcc-c++ make
cd /opt
tar zxvf squid-3.5.28.tar.gz
cd /opt/squid-3.5.28

./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 \
--disable-poll \
--enable-epoll \
--enable-gnuregex

make && make install

#--------子產品解釋--------------------------------------------------
--prefix=/usr/local/squid                  #指定安裝目錄路徑
--sysconfdir=/etc                          #指定配置檔案路徑
--enable-arp-acl                           #MAC位址管控,防止用戶端使用ip欺騙
--enable-linux-netfilter                   #使用核心過濾
--enable-linux-tproxy                      #支援透明模式
--enable-async-io=100                      #異步1o,提升存儲性能
--enable-err-language="Simplify_Chinese"   #錯誤資訊的顯示語言
--enable-underscore                        #允許URL中有下劃線
--disable-poll \                           #關閉預設使用的poll 模式
--enable-epoll \                           #開啟epoll模式,提升性能
--enable-gnuregex                          #使用GNU正規表達式
#----------------------------------------------------------------
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid:squid /usr/local/squid/var/
#/usr/local/squid/var/ 此目錄是用于存放緩存檔案
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

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	#指定緩存檔案目錄
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

3、Squid 的運作控制

  • 檢查配置檔案文法是否正确
squid -k parse
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
  • 啟動 Squid,第一次啟動squid服務時,會自動初始化緩存目錄
squid -z 					#-z 選項用來初始化緩存目錄
squid						#啟動 squid 服務 ;如果是第一次啟動會自動初始化

netstat -anpt | grep "squid"  #檢視squid服務是否開啟
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

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,數字越大,優先級越低。

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
chmod +x /etc/init.d/squid      #給剛才編寫的啟動腳本執行的權限
chkconfig --add squid           #将服務加入chkconfig管理
chkconfig --level 35 squid on   #在級别3、5上自啟[級别3:字元界面 級别5:視圖界面]

chkconfig --list squid          #檢視squid服務在哪些級别中自啟
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

三、建構傳統代理伺服器

環境配置

主機 作業系統 IP位址 軟體、安裝包、工具
Squid-Server CentOS7 192.168.38.75 squid-3.5.28.tar.gz
Web-Server CentOS7 192.168.38.76 httpd
客戶機 Windows 10 192.168.38.129

Squid-Server(192.168.38.75)

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
reply_body_max_size 10 MB
maximum_object_size 4096 KB

#---------添加内容解釋------------------------------------------
cache_mem 64 MB				 #指定緩存功能所使用的記憶體空間大小,便于保持通路較頻繁的WEB對象,容量最好為4的倍數,機關為MB,建議設為實體記憶體的1/4
reply_body_max_size 10 MB	 #允許使用者下載下傳的最大檔案大小,以位元組為機關,當下載下傳超過指定大小的Web對象時,浏覽器的報錯頁面中會出現“請求或通路太大”的提示預設設定0表示不進行限制
maximum_object_size 4096 KB	 #允許儲存到緩存空間的最大對象大小,以KB為機關,超過大小限制的檔案将不被緩存,而是直接轉發給使用者
#-------------------------------------------------------------------

service squid restart             
#或systemctl restart squid       #重新開機squid服務
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

2、生産環境中還需要修改防火牆規則

iptables -F       #清空iptables的規則
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    #允許所有通過3128端口的tcp協定的入站資料包通過
iptables -L INPUT  #列出入站資料鍊裡的所有規則
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

Web1(192.168.38.76)

systemctl stop firewalld.service
setenforce 0
yum -y install httpd
systemctl start httpd
netstat -natp | grep 80
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

客戶機(192.168.38.129)

打開浏覽器,配置代理功能

流程:打開浏覽器,工具–>Internet選項–>連接配接–>區域網路設定–>開啟代理伺服器(位址:Squid伺服器IP位址,端口:3128)

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

驗證結果:

Squid-Server(192.168.38.75)

tail -f /usr/local/squid/var/logs/access.log   #檢視squid 通路日志的新增記錄
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

Web1(192.168.38.76)

tail -f /var/log/httpd/access_log   #檢視Web1通路日志的新增記錄
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

客戶機(192.168.38.129)

在浏覽器輸入Web伺服器IP位址通路,檢視Web伺服器通路日志,顯示的是由代理伺服器替客戶機在通路。

http://192.168.38.76
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

四、建構透明代理伺服器

環境配置

主機 作業系統 IP位址 服務、安裝包、工具
Squid-Server CentOS7 ens33:192.168.38.75 ens37:12.0.0.1 squid-3.5.28.tar.gz
Web1 CentOS7 12.0.0.12 httpd
用戶端 Windows 192.168.38.129

Squid伺服器配置(ens33:192.168.38.75、ens37:12.0.0.1)

1、關機,添加網卡,注意兩個網卡設定在不同的虛拟網卡上

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

2、然後将雙網卡配置好對應的IP位址和子網路遮罩

cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
IPADDR=192.168.163.10
NETMASK=255.255.255.0

cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens37
IPADDR=12.0.0.1
NETMASK=255.255.255.0

systemctl restart network
ifconfig 
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

3、squid服務shangmian 已安裝好了(安裝squid服務前要設定好yum源)我就直接修改配置檔案

vim /etc/squid.conf
......
http_access allow all
http_access deny all
#------60行修改添加提供内網服務的IP位址,和支援透明代理選項 transparent
http_port 192.168.163.10:3128 transparent

systemctl restart squid
netstat -natp | grep 3128
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

4、開啟路由轉發,實作本機中不同網段的位址轉發

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

5、修改防火牆規則

iptables -F
iptables -t nat -F
iptables -t nat -I PREROUTING -i ens33 -s 192.168.38.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens33 -s 192.168.38.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

Web1(12.0.0.12)

systemctl stop firewalld.service
setenforce 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
ifconfig
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
yum -y install httpd
systemctl restart httpd.service 
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

客戶機測試(192.168.163.100)

1、設定ip位址

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

注意:如果使用剛才實驗的主機,需要關閉客戶機的浏覽器設定的代理伺服器的功能

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

2、通路 http://12.0.0.12

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

檢視 Squid 通路日志的新增記錄

tail -f /usr/local/squid/var/logs/access.log
#Squid代理伺服器上的日志可以檢測到客戶機ip以及通路的目标網站ip
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

檢視 Web 通路日志的新增記錄,顯示的是由代理伺服器的外網口代替客戶機在通路

tail -f /var/log/httpd/access_log
#從日志内容可以看出是代理伺服器外網口12.0.0.1通路web伺服器12.0.0.12
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

五、ACL通路控制

在配置檔案 squid.conf 中,ACL 通路控制通過以下兩個步驟來實作:

  • 步驟一:使用 acl 配置項定義需要控制的條件;
  • 步驟二:通過 http_access 配置項對已定義的清單做“允許”或“拒絕”通路的控制。

1.通路控制清單格式

格式:acl 清單名稱 清單類型 清單内容 …
           
清單類型 定義的清單内容
src 源位址
dst 目标位址
maxconn 最大并發連接配接
port 目标位址
dstdomain 目标域
url_regex 比對請求URL的任何部分
urlpath_regex 與url_regex非常相似(不包含傳輸協定和主機名)
time 通路時間

例如:

vim /etc/squid.conf
......
acl localhost src 192.168.163.10/32     #源位址為 192.168.163.10
acl MYLAN src 192.168.163.0/24          #客戶機網段
acl destionhost dst 192.168.163.20/32   #目标位址為 192.168.163.20
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”為每個星期的英文首字母
           

2.實操

環境配置(直接使用之前實驗的執行個體即可)

主機 作業系統 IP位址 軟體、安裝包、工具
Squid-Server CentOS7 ens33:192.168.38.75 ens37:12.0.0.1 squid-3.5.28.tar.gz
Web-Server CentOS7 12.0.0.12 httpd
客戶機 Windows 7 192.168.38.128
客戶機 Windows 7 192.168.38.129

Squid-Server(192.168.38.75)

vim /etc/local.list
192.168.38.129
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
vim /etc/squid.conf
......
acl localhosttest src  "/etc/local.list"			#調用指定檔案中的清單内容
......
http_access deny localhosttest				#注意,如果是拒絕清單,需要放在http_access allow all前面


systemctl restart squid
netstat -natp |grep squid
#或netstat -natp |grep 3128
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

Web-Server(12.0.0.12)

繼續使用上一個實驗的即可

systemctl stop firewalld.service 
setenforce 0
yum -y install httpd
systemctl start httpd
           

浏覽器(192.168.38.129)通路Web伺服器 http://12.0.0.12

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

浏覽器(192.168.38.128)通路Web伺服器 http://12.0.0.12

通路正常

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

六、Squid 日志分析

1、安裝圖像處理軟體包

  • 出現報錯,将網卡配置檔案中的dns和網關修改回原樣
  • 安裝線上源
yum install -y pcre-devel gd gd-devel

mkdir /usr/local/sarg
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

make && make install

#---------./configure中子產品解釋---------------------------------------
--prefix=/usr/local/sarg 
--sysconfdir=/etc/sarg   #配置檔案目錄,預設是/usr/local/etc
--enable-extraprotection #額外安全防護
#------------------------------------------------------------------
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
touch /usr/local/sarg/noreport   #建立不計入站點檔案

ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg --help
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

3、運作

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

4、驗證

  • 此時安裝web服務實在squid伺服器上,其他用戶端機器無法通路測試的頁面
yum install httpd -y
systemctl start httpd
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
  • 在squid伺服器浏覽器通路 http://192.168.38.75/squid-reports ,檢視sarg報告網頁
    Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
    5、添加計劃任務,執行每天生成報告
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/local/squid/var/logs/access.log -o /var/www/html/squid-reports -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 伺服器請求資源,然後将請求的應答傳回給用戶端,同時也将該應答緩存在本地,供下一個請求者使用。

工作機制:

●緩存網頁對象,減少重複請求

●将網際網路請求輪訓或按權重配置設定到内網Web伺服器

●代理使用者請求,避免使用者直接通路Web伺服器,提高安全

Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

環境配置

主機 作業系統 IP位址 軟體、安裝包、工具
Squid-Server CentOS7 192.168.38.75 squid-3.5.28.tar.gz
Web1-Server CentOS7 192.168.38.76 httpd
Web2-Server CentOS7 192.168.38.38 httpd
客戶機 Windows10 192.168.38.128

Squid-Server(192.168.38.75)

vim /etc/squid.conf
......
#---------60行,修改,插入-------------------------------------------
http_port 192.168.38.75:80 accel vhost vport
cache_peer 192.168.38.76 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.38.38 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.test.com


systemctl stop httpd
systemctl restart squid
#---------解釋-----------------------------------------------------
http_port 80 accel vhost vport 
#squid從一個緩存變成了一個Web伺服器使用加速模式,這個時候squid在80端口監聽請求,同時和web server的請求端口(vhost vport)綁定,這個時候請求到了squid,squid是不用轉發請求的,而是直接要麼從緩存中拿資料要麼向綁定的端口直接請求資料。
accel:反向代理加速模式
vhost:支援域名或主機名來表示代理節點
vport:支援ip和端口來表示代理節點

parent:代表為父節點
80:HTTP_PORT
0:ICP_PORT
no-query:不做查詢操作,直接擷取資料
originserver:指定是源伺服器
round-robin:指定 squid 通過輪詢方式将請求分發到其中一台父節點
max_conn:指定最大連接配接數
weight:指定權重
name:設定别名
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

web1、web2

systemctl stop firewalld.service 
setenforce 0
yum install -y httpd
systemctl start httpd
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

web1(192.168.38.76)

echo "this is web1" >> /var/www/html/index.html
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

web1(192.168.38.38)

echo "this is web2" >> /var/www/html/index.html
           
Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
#修改 C:\Windows\System32\drivers\etc\hosts 檔案
192.168.38.75 www.test.com
           
  • 修改hosts檔案權限
    Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
    2、客戶機的代理配置
    Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
    3、浏覽器通路 http://www.test.com
    Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速
    Squid代理伺服器應用Squid代理伺服器應用一、Squid 代理伺服器二、安裝 Squid 服務三、建構傳統代理伺服器四、建構透明代理伺服器五、ACL通路控制六、Squid 日志分析七、反向代理網站加速

繼續閱讀