squid日誌分析與訪問控制
squid的日誌系統能夠幫助我們查看訪問者的記錄,包括來訪者Internet的站點信息,時間佔用信息,
排名、連接次數和訪問量。是一個很完善的日誌系統。
squid常用日誌分爲如下兩個:分別是access.log 和cache.log。
access.log:客戶端使用代理服務器的記錄文件,訪問日誌位置在squid.conf中自行定義;
cache.log : 緩存在運行時的狀態信息和調試信息,一般情況下容量不大。緩存日誌位置在squid.conf中自行定義。
本文主要針對訪問日誌使用sarg進行圖形化界面的顯示管理,相對於文字顯示更加直觀。
搭建squid請參考:http://blog.51cto.com/13760226/2177929
使用sarg軟件包地址:鏈接:https://pan.baidu.com/s/1IT6a2WvcpNpdXvr-EWMPvg 密碼:cfl8
實驗環境:
操作系統 | IP地址 | 服務類型 |
Centos7 | 192.168.60.134/24 | squid緩存服務、sarg、httpd |
Centos7 | 192.168.60.136/24 | httpd服務 |
win7 | 192.168.60.133/24 | client客戶機 |
一、使用Sarg日誌分析
● 安裝編譯環境
yum install gd gd-devel gcc gcc-c++ httpd -y
● 創建sarg的安裝目錄
mkdir /usr/local/sarg
● 解壓進行安裝
tar zxf sarg-2.3.7.tar.gz -C /opt/
cd /opt/sarg-2.3.7/
./configure --prefix=/usr/local/sarg \ #安裝目錄
--sysconfdir=/etc/sarg \ #配置文件目錄
--enable-extraportection #額外的安全防護
make && make install
● 安裝完成後修改配置文件
由於整個配置文件都是被註釋的,需要我們去掉註釋並加以修改
vim /opt/sarg/sarg.conf
access_log /usr/local/squid/var/logs/access.log #squid的日誌文件
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 將BYTES改成connect
user_sort_field connect reverse 將BYTES改成connect
overwrite_report no 同名日誌的覆蓋
mail_utility mailq.postfix 發送郵件命令報告
charset UTF-8 字符集
weekdays 0-6 top排行的星期週期
hours 0-23 top排行的時間週期
www_document_root /var/www/html 網頁根目錄
● 優化,啓動sarg和httpd服務
touch /usr/local/sarg/noreport #創建不計入排序的站點列表文件
ln -s /usr/local/sarg/bin/sarg /usr/local/bin #創建個軟鏈接系統識別方便使用
systemctl start httpd #啓動httpd服務
sarg #啓動sarg服務
● 訪問squid網站後再次使用sarg刷新
● 使用 http://192.168.60.134/squid-reports/ 進行訪問,查看日誌
● 使用週期性任務對日誌進行分割
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)
二、squid訪問控制
squid訪問控制功能就類似於一個acl訪問控制列表,可以對源、對目標網段進行控制,
對於寫入的控制條目,最後進行逐條匹配,控制着用戶訪問。
● 查看squid配置文件
vim /etc/squid
從配置文件我們可以看出全是acl的控制內容列表,我們可以自行添加條目,進行控制
以下是以下用法,大家可以根據實際需要添加相關條目。
acl hostlocal src 12.0.0.11/24 acl+名字+源地址+網址網段
acl work time MTWHFAS 8:00-17:50 基於時間進行的訪問控制
acl MYLAN src 12.0.0.0/24 對於一個網段
acl destionhost dst 192.168.60.136/24 對目標網段進行控制
acl MC20 maxconn 20 最大鏈接數量
acl BURL url_regex -i ^rtsp:// ^emule:// -i忽略大小寫 以什麼爲開頭的內容
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ 匹配路徑 正則表達式 -i 忽略大小寫 以什麼爲結尾的內容
例:針對某一ip進行固定限制
# should be allowed
acl hostlocal src 192.168.60.133/32
# Only allow cachemgr access from localhost
http_access deny hostlocal
http_access allow localhost manager
未做限制前訪問測試網站
做了限制後就不能進行訪問
客戶機已不能訪問測試頁面。