squid代理介紹----ACL控制應用+sarg日誌分析+反向代理

一、squid的ACL訪問控制

  • Squid提供了強大的代理控制機制,通過合理設置ACL(Access Control List,訪問控制列表)並進行限制,可以針對源地址、目標地址、訪問的URL路徑、訪問的時間等各種條件進行過濾。

  • ACL訪問控制的步驟:

    • 1、使用 acl 配置項定義需要控制的條件
      定義格式:acl 列表名稱 列表類型 列表內容 …
    • 2、通過http_access配置項對已定義的列表做“允許”或“拒絕”訪問的控制

二、ACL設置的兩種方式

2.1、直接在squid的配置文件裏修改

vim /etc/squid.conf
acl localhost src 192.168.10.10/32        #針對固定的源ip地址
acl MYLAN src 192.168.220.0/24              #針對某一網段
acl destionhost dst 192.168.220.130/32   #針對具體的目標ip地址
acl MC20 maxconn 20                             #訪問的最大併發連接數量
acl BURL url_regex -i ^rtsp:// ^emule://    #正則表達式的訪問協議
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$   #訪問的文件資源末尾
acl work time MTWHF 08:30-17:30          #訪問時間
MTWHF:週一到週五
MTWHFAS:週一到週日

http_access deny localhost     #拒絕列表 (注意置頂)

2.2、創建新文件,在配置文件裏聲明文件位置

mkdir /etc/squid      #啓用對象列表管理
vim dest.list
       192.168.220.128
       192.168.220.140
       192.168.220.130     #目標web
vim /etc/squid.conf
    acl destionhost dst "/etc/squid/dest.list"
  
    http_access deny destionhost    #拒絕列表 (注意置頂)

三、sarg日誌分析

3.1、sarg安裝

//圖像處理
yum -y install gd gd-devel httpd 

//解壓安裝包
tar zxvf sarg-2.3.7.tar.gz -C /opt/

cd /opt/sarg-2.3.7/
./configure --prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection         #額外安全防護
 
make && make install

3.2、修改配置文件

vi /etc/sarg/sarg.conf
對應行號去掉註釋即開啓
7 access_log /usr/local/squid/var/logs/access.log              ###squid的訪問日誌位置
25 title "Squid User Access Reports"                                     ###網頁標題
120 output_dir /var/www/html/squid-reports                     ###分析報告的存放位置
178 user_ip no                                                                         ###不使用IP代替用戶ID
184 topuser_sort_field BYTES reverse                                   ###升序排列
190 user_sort_field BYTES reverse 
206 exclude_hosts /usr/local/sarg/noreport                        ###設置不生成報告的主機
257 overwrite_report no
289 mail_utility mailx                                                              ###指定發郵件命令
434 charset UTF-8
518 weekdays 0-6                                                                   ###指定top排序星期週期
523 hours 7-12,14,16,18-20                                                   ###指定top排序時間週期
633 www_document_root /var/www/html                           ###網頁根目錄

touch /usr/local/sarg/noreport            ###建立不生成報告的主機列表文件

ln -s /usr/local/sarg/bin/sarg /usr/local/bin/

//啓動sarg日誌分析和squid網頁服務
sarg
systemctl start httpd

在這裏插入圖片描述

3.3、驗證

1、在客戶端機瀏覽器輸入:http://192.168.10.1/squid-reports/index.html

2、squid服務器設置週期性任務

crontab -e 
*/1 * * * * /usr/local/bin/sarg    #這裏爲了效果快速呈現出,設置了每隔1分鐘

在這裏插入圖片描述

四、squid反向代理

4.1、介紹

  • 傳統和透明是爲客戶端服務的,藉助squid加快訪問web服務的速度,或者是公司內部對員工上網行爲做限制使用的。
  • 反向代理模式下的squid的服務對象是web服務器,通過squid來隱藏真實web服務器IP,加快客戶的訪問速度,還有負載均衡的功能。
  • 反向代理的設置,需要通過三個步驟來完成:
    • DNS解析
    • SQUID配置
    • 端口轉發

4.2、部署操作

一臺squid服務器
兩臺web服務器,web1:192.168.100.131 web2:192.168.100.132
一臺win10客戶端

1、web服務器部署

//安裝httpd
yum install httpd -y

//設置網頁內容
echo "this is test02 web" > /var/www/html/index.html    #web1換一下數字
route add -net 192.168.10.0/24 gw 192.168.220.128  #靜態路由

//開啓web服務
systemctl start httpd

2、squid反向代理配置

//設置防火牆規則
systemctl start firewalld
iptables -L    #查看防火牆規則
iptables -F
iptables -t nat -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

vim /etc/squid.conf
#去掉透明代理設置反向代理
http_port 192.168.100.128:80 accel vhost vport

#節點服務器1最大訪問30,權重1,別名web1
cache_peer 192.168.100.131 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
#節點服務器2最大訪問30,權重1,別名web2
cache_peer 192.168.100.132 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
#訪問yun.com匹配web1,web2節點
cache_peer_domain web1 web2 www.yun.com

service squid restart

3、客戶端驗證

在win10客戶端的瀏覽器輸入web的兩個IP地址可以訪問代理服務器。
在這裏插入圖片描述
在這裏插入圖片描述
接下來是域名驗證。
在客戶機的admin用戶下配置解析域名地址,並設置代理
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章