實踐出真知——squid的ACL訪問控制及sarg日誌分析使用驗證
前言
本文就少一點廢話,前面兩篇博客進行了基於squid實現正反向代理實例演示,加深了對代理服務器工作原理及過程的理解。本文主要介紹一下基於squid軟件實現ACL訪問控制以及使用sarg軟件對squid的日誌進行分析的實際案例。
補充:本文基於手工編譯安裝squid軟件,參考正向代理實驗文章即可。
一、ACL訪問控制驗證實驗
服務器地址規劃
client ip:192.168.100.100(Win7/win10)
squid 代理服務器IP地址:20.0.0.128 192.168.100.1
配置
在squid服務器上修改主配置文件
[root@squid ~]# vim /etc/squid.conf #修改配置文件
# should be allowed #找到acl位置插入下面的語句
acl hostlocal src 192.168.100.100/32 #控制hostlocal10.10的主機
# Deny requests to certain unsafe ports #在該處下方插入語句
http_access deny hostlocal #表示匹配上方的設置,拒絕來自192.168.100.100的主機訪問
[root@squid ~]# service squid reload #重啓squid服務
先在Win7(192.168.100.100)驗證:結果是訪問被拒絕
而在win10(192.168.100.50)上訪問:結果是test頁面,爲了區別性先在squid服務器上寫一個index.html文件如下:
[root@squid html]# echo "you can access my web(because your ip is not 192.168.100.100)" > index.html
訪問服務器結果如下圖所示:
二、sarg日誌分析簡單應用
sarg的簡單介紹
Sarg(Squid Analysis Report Generator),是一款Squid 日誌分析的工具,採用HTML 格式,詳細列出每一位用戶訪問Internet 的站點信息、時間佔用信息、排名、連接次數、訪問量等。
使用案例
#軟件包資源,解壓
[root@squid ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg sarg-2.3.7.tar.gz squid-3.4.6.tar.gz 公共 模板 視頻 圖片 文檔 下載 音樂 桌面
[root@squid ~]# tar -xzf sarg-2.3.7.tar.gz -C /opt/
[root@squid ~]# cd /opt/
[root@squid opt]# ls
rh sarg-2.3.7 squid-3.4.6
#安裝gd庫
[root@squid opt]# yum install -y gd gd-devel
作爲依賴被安裝:
expat-devel.x86_64 0:2.1.0-10.el7_3 fontconfig-devel.x86_64 0:2.13.0-4.3.el7 freetype-devel.x86_64 0:2.8-14.el7
libX11-devel.x86_64 0:1.6.7-2.el7 libXau-devel.x86_64 0:1.0.8-2.1.el7 libXpm-devel.x86_64 0:3.5.12-1.el7
libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7 libpng-devel.x86_64 2:1.5.13-7.el7_2 libsmartcols.x86_64 0:2.23.2-61.el7_7.1
libuuid-devel.x86_64 0:2.23.2-61.el7_7.1 libxcb-devel.x86_64 0:1.13-1.el7 xorg-x11-proto-devel.noarch 0:2018.4-1.el7
zlib-devel.x86_64 0:1.2.7-18.el7
作爲依賴被升級:
fontconfig.x86_64 0:2.13.0-4.3.el7 freetype.x86_64 0:2.8-14.el7 libX11.x86_64 0:1.6.7-2.el7
libX11-common.noarch 0:1.6.7-2.el7 libblkid.x86_64 0:2.23.2-61.el7_7.1 libjpeg-turbo.x86_64 0:1.2.90-8.el7
libmount.x86_64 0:2.23.2-61.el7_7.1 libuuid.x86_64 0:2.23.2-61.el7_7.1 libxcb.x86_64 0:1.13-1.el7
util-linux.x86_64 0:2.23.2-61.el7_7.1 zlib.x86_64 0:1.2.7-18.el7
完畢!
配置參數並且安裝
[root@squid sarg-2.3.7]# ./configure --prefix=/usr/local/sarg \ ##安裝路徑
> --sysconfdir=/etc/sarg \ ##配置文件
> --enable-extraprotection ##開啓安全防護
[root@squid sarg-2.3.7]# make && make install ##編譯安裝
修改sarg配置文件
[root@squid sarg-2.3.7]# 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排序中有連接次數,訪問字節,降序排列,升序是normal
overwrite_report no #同名日誌是否覆蓋
mail_utility mailq.postfix #發送郵件報告命令
charset UTF-8 #使用字符集
weekdays 0-6 #top排行的時間週期
hours 0-23 #top排行的時間週期
www_document_root /var/www/html #網頁根目錄
[root@squid sarg-2.3.7]# touch /usr/local/sarg/noreport #添加不計入站點文件,添加的域名將不被顯示
[root@squid sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ #創建sarg命令的軟連接
[root@squid sarg-2.3.7]# sarg #生成報告
SARG: 紀錄在文件: 123, reading: 100.00%
SARG: 成功的生成報告在 /var/www/html/squid-reports/2020Feb08-2020Feb08 #提示報告生成在這個目錄,我們進入這個目錄查看一下
[root@squid sarg-2.3.7]# cd /var/www/html/squid-reports
[root@squid squid-reports]# ls
2020Feb08-2020Feb08 images index.html
隨後安裝並開啓httpd服務
client客戶端查看sarg日誌報告
因爲安裝了gd庫我們可以在客戶端訪問sarg日誌,我們在服務器上可以使用crontab生成週期性計劃任務生成日誌報告。