內容要點:
一、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 //拒絕訪問
2、基於時間限制:
acl work time WTHMFAS 11:00-12:00 //時間設置在 11:00-12:00 http_access deny work //拒絕訪問
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
二、日誌分析
第一步:安裝 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
通過這個工具,我們可以看到詳細的訪問情況。
同時,也可以使用週期性計劃任務執行每天生成報告:
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服務器1 | 192.168.220.136 |
Squid代理服務器 | 192.168.220.131 |
客戶機 | 192.168.220.128 |
Web服務器2 | 192.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服務器上做一個測試網頁:
3、客戶機做一下域名解析:
修改一下,代理服務器端口:
4、瀏覽器訪問 http://www.yun.com/