中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析

發布時間:2020-07-14 20:56:59 來源:網絡 閱讀:1157 作者:安享落幕 欄目:建站服務器

目錄

1· squid 配置ACL訪問控制列表


2· squid 日志分析結合周期計劃任務


3· squid 反向代理


4· 文章總結


開頭說明:上篇文章詳細介紹了 squid 的兩種緩存代理方式和原理,這篇文章就不介紹 squid 這個服務,直接從 squid 的 ACL 訪問控制列表開始。有興趣的朋友可以看看:Squid 緩存服務器 之 傳統代理 + 透明代理、ACL 訪問控制列表的基本概念、Nginx + Tomcat 反向代理

源碼包提供:

1·squid 源碼包:百度網盤 Squid 源碼包 , 密碼:12sq


2·squid 日志:百度網盤 Squid 日志分析源碼包 ,密碼:sgwk


1)Squid 的ACL 訪問控制介紹

squid提供了強大的代理控制機制,通過合理的設置 ACL 并進行限制,可以針對很多方式來進行條件過濾,比如有以下的方式:針對源地址、目標地址、訪問的URL路徑、訪問的時間等。


配置ACL 的兩個步驟
1:在主配置文件中使用 acl 配置項定義需要控制的條件
2:通過 http_access配置項對已定義的列表做 “允許” ,“拒絕” 訪問的控制


**下面是定義控制列表和設置訪問權限的格式**:

1· acl 【列表名稱】【列表類型】【列表內容】。
【列表名稱】:可以自定義,用來識別控制條件;
【列表類型】:必須是 squid 預定義值,對應不同類別的控制條件
【列表內容】:是要控制的具體對象,它可以由多個值,以空格分開


2· http_access 【allow】或 【deny】列表名稱
【allow】:表示允許通過
【deny】:表示拒絕通過


以下表格是訪問控制的列表類型:

列表類型 列表內容示列 含義 / 用途
src 192.168.1.168 或 192.168.1.0 源 IP 地址、網段
dst 216.163.137.3 或 www.baidu.com 目標 IP 地址、主機名或網段
port 80 、443 、8080 目標端口
dstdomain .qq.com 目標域,匹配域內的所有站點
time MTWHF 8:30-17:30 AS 使用代理的服務時間段,字母代表星期中的各天
manconn 20 每個客戶機的并發連接數
url_regex url_regex -i ^rtsp:// 目標資源的 URL 地址,-i 表示忽略大小寫
urlpath_regex urlpath_regex -i .mp3$ 目標資源的整個URL路徑,-i 表示忽略大小寫

在實際生產環境中,定義ACL 訪問控制時,應該結合當前網絡環境正確分析用戶的訪問需求,準確定義使用代理服務的控制條件,下面演示針對不同的客戶機地址、需要限制訪問的目標網站、特定的時間段.......分別定義:


[root@localhost squid-3.4.6]# vim /etc/squid.conf


acl locahost src 127.0.0.1/255.255.255.255----- #源地址為:127.0.0.1


acl MYLAN src 192.168.1.0/24---- #客戶機網段


acl to_locahost src 127.0.0.0/8 ------ #目標地址為:127.0.0.0/8網段


acl MC20 maxconn 20 ------- #最大并發連接 20


acl BlackURL url_regex -i ^rtsp://^emule:// ----- #以rtsp://等開頭的 URL


acl MEDIAFILE urlpath_regex -i .mp3$ .mp4$ --- #以 .mp3 .mp4 結尾的 URL路徑


acl WORKTIME time MTWHF 08:30-17:30 ----- #時間為周一至周無 8:30~17:30


下圖是定義訪問控制列表圖解:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


如果當需要限制的同一類對象較多時,可以使用獨立的文件來存放,在acl配置行淚飆內容處只當對應的文件位置即可。


[root@localhost squid-3.4.6]# mkdir /etc/squid
[root@localhost squid-3.4.6]# cd /etc/squid/
[root@localhost squid]# vim ipblock.list ----(建立目標IP地址名單)


建立的目標IP如下:
61.135.167.36
125.49.127.25
60.28.14.0/24


[root@localhost squid]# vim dmblock.list ----(建立目標域地址名單)


建立目標域如下:
.qq.com
.msn.com
.live.com


[root@localhost squid]# vim /etc/squid.conf ---(再次配置ACL 訪問控制列表)


定義內容如下:
acl IPBLOCK dst "/etc/squid/ipblock.list" ---(調用指定文件中的列表內容)
acl DMBLOCK dstdomain "/etc/squid/dmblock.list"


如下圖
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


開始設置訪問權限:

[root@localhost squid]# vim /etc/squid.conf


設置如下
http_access deny MYLAN MEDIAFILE ---(禁止下載 MP3、MP4等危文件)
http_access deny MYLAN IPBLOCK ---(禁止客戶機訪問黑名單中的 IP 地址)
http_access deny MYLAN DMBLOCK ---(禁止客戶機訪問黑名單中的網站域)
http_access deny MYLAN MC20 ----(客戶機的并發連接超20時將被阻止)
http_access allow MYLAN WORKTIME ---(允許客戶機在工作時間上網)
http_access deny all ---(默認禁止所有客戶機使用代理)


如下圖:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


訪問控制規則說明: squid 將按照各條規則的順序依次進行檢測,如果找到了一天相匹配的規則就不再找。因此,規則的順序安排時非常重要的


Squid 日志分析:

Sarg 是一款 Squid 日志分析工具,采用 HTML 格式,詳細列出每一位用戶訪問 Internet 的站點信息、時間占用信息、排名、連接次數和訪問量等。


Sarg 部署過程如下:


安裝GD庫
[root@localhost ~]# mkdir /usr/local/sarg


安裝 Sarg :
[root@localhost ~]# tar xvf sarg-2.3.7.tar.gz -C /opt/ ----(解壓源碼包,需要的請點擊:百度網盤 Squid 日志分析源碼包)


[root@localhost sarg-2.3.7]# cd /opt/sarg-2.3.7


[root@localhost sarg-2.3.7]# ./configure --prefix=/usr/local/sarg -sysconfdir=/etc/sarg --enable-extraprotection


[root@localhost sarg-2.3.7]# make && make install


如下圖:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


[root@localhost sarg-2.3.7]# vim /etc/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 ----(去掉注釋,sarg報告輸出目錄)


user_ip no ----(去掉注釋,使用用戶名顯示)


exclude_hosts /usr/local/sarg/noreport ---(這里路徑需要添加,意思是不計入排序的站點列表文件)


topuser_sort_field connect reverse ---(需要修改為connect ,意思是:#top排序中又鏈接次數、訪問字節、降序排列)


user_sort_field connect reverse ---(用戶訪問記錄 連接次數、訪問字節按降序排列)


overwrite_report no ---(當那個報告存在,是否覆蓋報告)


mail_utility mailx.postfix ---(發送郵件報告)


charset UTF-8 ---(使用字符集)


weekdays 0-6 ---(top排行的星期周期)


hours 0-23 ---(去掉注釋,top排行的時間周期)


www_document_root /var/www/html ---(指定網頁根目錄)


上述配置中,添加了不計入排序的站點,需要存在下面這個文件
[root@localhost sarg-2.3.7]# touch /usr/local/sarg/noreport


因為這個sarg是需要訪問web來查看日志的,所以需要安裝個apache
[root@localhost sarg-2.3.7]# yum install httpd -y


啟動 apache 服務
[root@localhost sarg-2.3.7]# systemctl start httpd.service


[root@localhost ~]# mkdir /var/www/html/squid-reports
[root@localhost sarg-2.3.7]# sarg ---(啟動sarg)


訪問:http://192.168.106.154/squid-reports/ ---(相當于多網站訪問)
如下效果圖:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


可以將 sarg 做成計劃任務,定期執行:

每日報告如下實列:
[root@localhost ~]# vim /usr/local/sarg/daily.sh


內容如下
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAT &>/dev/null


如下圖:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


[root@localhost ~]# chmod +x /usr/local/sarg/daily.sh
[root@localhost ~]# crontab -e ---(添加計劃任務,每天 00:00 執行)


加入如下內容:
00 00 * /usr/local/sarg/daily.sh


[root@localhost ~]# chkconfig crond on


到這里日志分析完成,在生產環境中,考慮到多中因素,所以每日報告在 0點0份開始生成


Squid 反向代理:

許多大型的門戶網站架構中都采用了反向代理加速,使用比較多的是 nginx 、squid 等。
下圖是squid 反向代理拓撲
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


反向代理原理描述

(1)Squid 反向代理服務器位于本地 Web 服務器和 Internet 之間,客戶端訪問 Web 時,DNS 將訪問的域名解析為 Squid 反向代理服務器的IP地址。客戶端將訪問 Squid 代理服務器


(2)如果Squid 反向代理服務器中緩存了改請求的資源,則將資源直接返回給客戶端,否則squid將向后臺的web服務器拿資源,提供給客戶端并緩存在本地。


開始實現 Squid 反向代理。


[root@localhost ~]# vim /etc/squid.conf --(修改配置文件)


修改內容如下:

http_port 192.168.106.154:80 accel vhost vport ---(修改監聽地址和端口,這里端口不再是3128,而是需要改為 http 的80 端口)


cache_peer 192.168.106.156 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 ----(添加后端真的服務器的IP地址1,指定做大連接數,權重,別名)


cache_peer 192.168.106.157 parent 80 0 no-query originserver round-robin max_conn=30 weight=2 name=web2 ----(添加后端真的服務器的IP地址2,指定做大連接數,權重,別名)


cache_peer_domain web1 web2 www.yun.com ---(訪問的是域名,所以需要做DNS,現在可以直接修改 hosts 文件就好)


檢查配置文件:
[root@localhost ~]# squid -k parse ---(檢查配置文件,發現有報錯)

報錯信息如下:
2018/09/23 14:39:06| ERROR: Ignoring unknown cache_peer option 'max_conn=30'
//就是說配置文件現在不識別 ”max_conn=30“ 。那 我們就刪除它。


下圖是報錯截圖
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


正確的配置文件如下圖
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


下面需要修改hosts 配置文件,因為 我們訪問的是域名。如下圖:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


驗證:

【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


需要看到另一個結果,就要停掉其中一臺web服務器:
[root@localhost ~]# systemctl stop httpd.service


再次訪問:
【超詳細】反向代理Squid 緩存服務器+ ACL 訪問控制 + 日志分析


反向代理的結論:

如果不停掉一臺服務器,那么你的請求將會是一個結果,因為你請求的結果已經緩存在了squid服務器上,所以需要更完善的驗證,就需要關閉另一臺web服務器,看看是否能得到不同的結果。


文章總結

(1)squid 服務的訪問控制主要通過 acl 、http_access 配置項來設置,acl 用來定義控制條件、http_access 來決定通過還是拒絕。


(2)squid 日志分析工具 Sarg 采用的是 HTML 格式,所以要查看還需要搭建WEB服務器,比如 apache。它會詳細列出用戶的所有信息


(3)通過 squid 反向代理可以加速網站的訪問速度,可以將不同的URL 請求分到不同后臺的web服務器上,這樣互聯網用戶只能看到代理服務器的地址。


與本文章相關的推薦文章:

(1):Squid 緩存服務器 之 傳統代理 + 透明代理、


(2):ACL 訪問控制列表的基本概念、


(3):Nginx + Tomcat 反向代理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉林市| 简阳市| 会同县| 伊宁县| 张家口市| 五家渠市| 阳朔县| 柘荣县| 和平区| 门头沟区| 区。| 昌乐县| 延吉市| 探索| 崇仁县| 砀山县| 南宫市| 河南省| 同仁县| 法库县| 巴东县| 崇州市| 通道| 同德县| 沽源县| 海兴县| 正定县| 象山县| 扬中市| 固安县| 黄大仙区| 和政县| 城口县| 襄城县| 县级市| 麻城市| 沂水县| 秦皇岛市| 花莲市| 禄丰县| 建昌县|