Squid進階——acl的使用+日誌分析+反向代理

內容要點:

一、Squid 中 ACL 的使用

二、日誌分析

三、反向代理

一、Squid 中 ACL 的使用

(1)ACL 訪問控制方式:

1、根據源地址、目標URL、文件類型等定義列表


  • acl 列表名稱 列表類型 列表內容…

2、針對已定義的 acl列表進行限制


  • http_access allow 或 deny 列表名稱…

(2)ACL 規則優先級:

當一個用戶訪問代理服務器時,Squid 會順序匹配 Squid中定義的所有規則列表,一旦匹配成功,立即停止匹配。當所有規則都不匹配時,Squid 會使用與最後一條相反的規則。


(3)常用的 ACL 列表類型:

src ->源地址
dst ->目標地址
port ->目標地址
dstdomain ->目標域
time ->訪問時間
maxconn ->最大併發連接
ur_ regex ->目標URL地址
Urlpath_regex ->整個目標URL路徑


(4)操作演示:

注:,要先做好代理功能,並且 Squid代理服務器要開放 3128端口,每次改好配置文件,都需要重啓服務。

角色IP地址
Web服務器192.168.220.136
Squid代理服務器192.168.220.131
客戶機192.168.220.128


修改 /etc/squid.conf 文件

添加以下代碼:


1、基於IP地址限制:

acl hostlocal src 192.168.220.128/32   //hostlocal表示是名稱 
http_access deny hostlocal //拒絕訪問


image.png

2、基於時間限制:


acl work time WTHMFAS 11:00-12:00    //時間設置在 11:00-12:00
http_access deny work           //拒絕訪問

在這裏插入圖片描述

在這裏插入圖片描述

image.png


3、基於目標地址(就是web服務器地址)


可以將拒絕的目標地址添加到一個文件中


1、 mkdir /etc/squid    //先創建一個目錄
vim dest.list
將拒絕的ip地址添加到文件中
192.168.220.111
192.168.220.123
192.168.220.136

2、做規則
vim /etc/squid.conf 

acl destion dst "/etc/squid/dest.list"
http_access deny destion

image.png


二、日誌分析

第一步:安裝 sarg 工具

Sarg(Squid Analysis Report Generator),是一款Squid 日誌分析工具,採用HTML 格式,詳細列出每一位用戶訪問Internet 的站點信息、時間佔用信息、排名、連接次數、訪問量等。


(1)安裝圖像處理工具:

yum install -y gd gd-devel pcre


(2)創建一個文件:

mkdir /usr/local/sarg


tar zxvf sarg-2.3.7.tar.gz -C /opt/
解壓到/opt/目錄下


(3)編譯

./configure --prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection          //額外安全防護


(4)安裝

make && make install


(5)修改主配置文件 /etc/sarg/sarg.conf


vim /etc/sarg/sarg.conf

開啓以下功能(稍作修改即可):
access_log /usr/local/squid/var/logs/access.log     //指定訪問日誌文件
title "Squid User Access Reports"                  //網頁標題
output_dir /var/www/html/squid-reports            //報告輸出目錄
user_ip no                                       //使用用戶名顯示
exclude_hosts /usr/local/sarg/noreport           //不計入排序的站點列表文件
topuser_sort_field connect reverse             //top排序中有連接次數、訪問字節、降序排列
user_sort_field reverse                       //用戶訪問記錄、連接次數、訪問字節按降序排序
overwrite_report no                           //同名日誌是否覆蓋
mail_utility mail.postfix                     //發送郵件報告命令
charset UTF-8                                //使用字符集
weekdays 0-6                                 //top排行的星期週期
www_document_root /varwww/html               //網頁根目錄


(6)添加不計入站點文件,添加的域名將不被顯示在排序中

touch /usr/local/sarg/noreport


ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
//方便管理,可以創建一個軟連接


開啓:

在這裏插入圖片描述


第二步:安裝 Apache

 yum install httpd -y


第三步:客戶機上測試

瀏覽器上訪問: http://192.168.220.131/squid-reports

image.png


image.png

通過這個工具,我們可以看到詳細的訪問情況。


同時,也可以使用週期性計劃任務執行每天生成報告:

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)

三、反向代理

反向代理工作原理:


反向代理服務器位於本地WEB服務器和Internet之間。

當用戶瀏覽器發出一個HTTP請求時,通過域名解析將請求定向到反向代理服務器(如果要實現多個WEB服務器的反向代理,需要將多個WEB服務器的域名都指向反向代理服務器)。由反向代理服務器處理器請求。反向代理一般只緩存可緩衝的數據(比如html網頁和圖片等),而一些CGI腳本程序或者ASP之類的程序不緩存。它根據從WEB服務器返回的HTTP頭標記來緩衝靜態頁面。


角色IP地址
Web服務器1192.168.220.136
Squid代理服務器192.168.220.131
客戶機192.168.220.128
Web服務器2192.168.220.137


1、配置 Squid 代理服務器:


修改 /etc/squidconf 文件


vim /etc/squid.conf
http_port 192.168.220.131:80 accel vhost vport
cache_peer 192.168.220.136 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.220.137 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.yun.com


service squid restart     //重啓squid

systemctl stop httpd.service    //關閉Apache服務


2、在兩臺 Web服務器上做一個測試網頁:

image.png

image.png


3、客戶機做一下域名解析:

image.png

修改一下,代理服務器端口:

image.png


4、瀏覽器訪問 http://www.yun.com/

image.png

image.png




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章