溫馨提示×

溫馨提示×

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

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

squid代理服務(wù)器的ACL訪問控制及日志分析

發(fā)布時(shí)間:2020-04-08 13:59:38 來源:網(wǎng)絡(luò) 閱讀:489 作者:張九冫 欄目:系統(tǒng)運(yùn)維

squid服務(wù)的ACL訪問控制:
squid提供了強(qiáng)大的代理控制機(jī)制,通過合理設(shè)置ACL并進(jìn)行限制,可以針對源地址、目標(biāo)地址、訪問的URL路徑、訪問的時(shí)間等各種條件進(jìn)行過濾。

在配置文件squid.conf中,ACL訪問控制通過兩個(gè)步驟來實(shí)現(xiàn):1、使用ACL配置項(xiàng)定義需要控制的條件;2、通過http_access配置項(xiàng)對已定義的列表做“允許”或“拒絕”訪問的控制。

1、 每行ACL配置可以定義一條訪問控制列表,格式如下:

acl 列表名稱 列表類型 列表內(nèi)容

其中,列表名稱是自定義的,相當(dāng)于給ACL起了個(gè)名字;“列表類型”必須使用squid預(yù)定義的值,對應(yīng)不同類別的控制條件;“列表內(nèi)容”是要控制的具體對象,不同類型的列表所對應(yīng)的內(nèi)容也不一樣,可以有多個(gè)值(以空格分隔,為“或”的關(guān)系)。

常用的訪問控制列表類型如下:
squid代理服務(wù)器的ACL訪問控制及日志分析
ACL定義示例:

[root@localhost /]# vim /etc/squid.conf
                             ..........................
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network    #squid默認(rèn)的一些ACL
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network    #默認(rèn)存在
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network    #默認(rèn)存在
acl localhost src 127.0.0.1/255.255.255.255            #源地址為127.0.0.1
acl mylan src 192.168.1.0/24 192.168.4.0/24          #客戶機(jī)網(wǎng)段
acl to_localhost dst 127.0.0.0/8                         #目標(biāo)地址為127.0.0.0/8網(wǎng)段
acl mc20 maxconn 20                              #最大并發(fā)連接量為20
acl blackurl url_regex -i ^rtsp:// ^emule://                  #以rtsp://等開頭的URL
acl mediafile urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$            #以.mp3等結(jié)尾的URL路徑
acl worktime time MTWHF 9:00-18:00                       #時(shí)間為周一至周五的 9:00-18:00   
                              ........................

當(dāng)需要限制的同一類對象較多時(shí),可以使用獨(dú)立的文件來存放,在acl配置行的內(nèi)容處指定對應(yīng)的文件位置即可。如下:

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

61.135.167.36
125.39.127.25
60.28.14.0

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

.qq.com
.msn.com
.live.com
.verycd.com

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

acl ipblock dst "/etc/squid/ipblock.list"                         #調(diào)用指定文件中的列表內(nèi)容
acl dmblock dstdomain "/etc/squid/dmblock.list"
當(dāng)ACL設(shè)置好后,還需要通過http_access配置項(xiàng)來進(jìn)行控制。必須注意的是,http_access配置行必須放在對應(yīng)的acl配置行之后。每行http_access配置確定一條訪問規(guī)則,格式如下:

http_access allow或deny 列表名

將剛才定義的acl應(yīng)用到規(guī)則中,如下:

[root@localhost squid]# vim /etc/squid.conf
                        ......................
http_access deny !Safe_ports               #squid默認(rèn)存在的訪問權(quán)限
http_access deny mediafile                   #禁止客戶機(jī)下載mp3等文件
http_access deny ipblock                      #禁止客戶機(jī)訪問黑名單中的IP地址
http_access deny dmblock                   #禁止客戶機(jī)訪問黑名單中網(wǎng)站域
http_access deny mc20                        #客戶機(jī)的并發(fā)連接量超過20時(shí)將被阻止
http_access allow worktime                  #允許客戶機(jī)在工作時(shí)間內(nèi)上網(wǎng)
reply_body_max_size 10 MB                #允許下載的最大文件大小(10M)
                            .......................

http_access deny all #默認(rèn)禁止所有客戶機(jī)使用代理,squid默認(rèn)存在的訪問權(quán)限
在配置訪問權(quán)限時(shí),需要注意以下幾點(diǎn) :

每條http_access規(guī)則中,可以同時(shí)包含多個(gè)訪問控制列表名,各個(gè)列表之間以空格分隔,是“與”的關(guān)系,表示必須滿足所有訪問控制列表對應(yīng)的條件才會(huì)進(jìn)行限制。
需要使用取反條件時(shí),可以在訪問控制列表前添加“ !”符號。
執(zhí)行訪問控制時(shí),squid將按照各條規(guī)則的順序依次進(jìn)行檢查,如果找到一條相匹配的規(guī)則就不再向后搜索(這點(diǎn)和iptables的規(guī)則匹配類似)。因此,規(guī)則的順序非常重要。
沒有設(shè)置任何規(guī)則時(shí),squid服務(wù)將拒絕客戶端的請求。這也就是為什么配置文件中默認(rèn)存在三個(gè)內(nèi)網(wǎng)網(wǎng)段的ACL規(guī)則,若想拒絕默認(rèn)存在的三個(gè)網(wǎng)段中某個(gè),還需將其注釋掉,再進(jìn)行限制,以免發(fā)生沖突,造成訪問規(guī)則不生效。
有規(guī)則但找不到相匹配的項(xiàng):squid將采用與最后一條規(guī)則相反的動(dòng)作,即如果最好一條規(guī)則是allow,就拒絕客戶端的請求,否則允許該請求,默認(rèn)存在的最后一條規(guī)則為“http_access deny all ”
通常情況下,把最常用的控制規(guī)則放在最前面,以減少squid的負(fù)載。在訪問控制的總體策略上,建議采用“先拒絕后允許”或“先允許后拒絕”的方式。
若想配置更為精準(zhǔn)的控制可以參考博文:https://blog.51cto.com/jafy00/682590

二、squid日志分析:

為了使我們查看日志更為直觀一些,可以使用SARG,它是一款squid日志分析工具,采用HTML格式, 詳細(xì)列出每位用戶訪問Internet的站點(diǎn)信息,時(shí)間占用信息、排名、連接次數(shù)、訪問量等。

SARG的部署過程如下:

1、安裝系統(tǒng)盤中的GD庫:

[root@localhost yum.repos.d]# yum -y install gd gd-devel
2、安裝SARG:


[root@localhost src]# tar zxf sarg-2.3.7.tar.gz
[root@localhost src]# cd sarg-2.3.7/
[root@localhost sarg-2.3.7]# ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install

配置項(xiàng)含義如下:

--prefix=/usr/local/sarg:指定安裝目錄;
--sysconfdir=/etc/sarg:配置文件目錄,若不指定,默認(rèn)是/usr/local/etc;
--enable-extraprotection:添加額外的安全保護(hù)

3、配置:

[root@localhost sarg-2.3.7]# cd /etc/sarg/
[root@localhost sarg]# vim sarg.conf 
         ......................
#若只實(shí)現(xiàn)基本的功能,則配置以下三項(xiàng)即可:
access_log /usr/local/squid/var/logs/access.log            #指定squid的訪問日志文件
output_dir /var/www/html/sarg                        #sarg報(bào)告的輸出目錄,指向網(wǎng)站的根目錄下
www_document_root /var/www/html               #網(wǎng)頁根目錄

#其余一些優(yōu)化的配置項(xiàng)如下,根據(jù)需求來改即可:
title "Squid User Access Reports"                            #網(wǎng)頁標(biāo)題
user_ip no                                    #使用用戶名顯示
exclude_hosts /usr/local/sarg/noreport                     #指定不計(jì)入排序的站點(diǎn)列表文件
topuser_sort_field connect BYTES reverse                   
#在top排名中,指定連接次數(shù)、訪問字節(jié)數(shù),采用降序排列,升序?qū)everse換成normal即可。
user_sort_field connect reverse                   #對于用戶訪問記錄,連接次數(shù)按降序排列
overwrite_report no                                #當(dāng)那個(gè)日期報(bào)告已經(jīng)存在,是否覆蓋報(bào)告
mail_utility mailq.postfix                              #發(fā)送郵件報(bào)告的命令
charset utf-8                                     #使用字符集
weekdays 0-6                                    #指定top排序時(shí)的星期周期,0為周日。
hours 7-12,14,16,18-20                      #指定top排序時(shí)的時(shí)間周期。

4、運(yùn)行:

[root@localhost sarg]# touch /usr/local/sarg/noreport                 
#上面的配置項(xiàng)中添加了不計(jì)入排序的站點(diǎn),需要存在這個(gè)文件中。
#這個(gè)文件中添加的域名將不被顯示在排序中。
[root@localhost sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin               #設(shè)置符號鏈接
[root@localhost sarg]# sarg                   #執(zhí)行sarg啟動(dòng)一次記錄。
SARG: 紀(jì)錄在文件: 546, reading: 100.00%
SARG: 成功的生成報(bào)告在 /var/www/html/sarg/2019Jun07-2019Jun07
[root@localhost sarg]# systemctl start httpd                 #啟動(dòng)httpd服務(wù),若沒有該服務(wù),須自行安裝。

squid代理服務(wù)器的ACL訪問控制及日志分析

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI