本文就少一點廢話,前面兩篇博客進行了基於squid實現正反向代理實例演示,加深了對代理服務器工做原理及過程的理解。本文主要介紹一下基於squid軟件實現ACL訪問控制以及使用sarg軟件對squid的日誌進行分析的實際案例。html
補充:本文基於手工編譯安裝squid軟件,參考正向代理實驗文章便可。linux
client ip:192.168.100.100(Win7/win10)web
squid 代理服務器IP地址:20.0.0.128 192.168.100.1 shell
在squid服務器上修改主配置文件vim
[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
訪問服務器結果以下圖所示:ide
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 完畢!
配置參數而且安裝post
[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服務
由於安裝了gd庫咱們能夠在客戶端訪問sarg日誌,咱們在服務器上能夠使用crontab生成周期性計劃任務生成日誌報告。