1. 程式人生 > >Squid的ACL訪問控制及反向代理

Squid的ACL訪問控制及反向代理

禁止訪問 water deny sed www. 訪問 指定 RoCE use

  • Squid提供了強大的代理控制機制,通過合理的設置ACL,並進行限制,可以針對源地址、目標地址、訪問的URL路徑、訪問的時間等條件進行過濾。
  • 在配置文章squid.conf中,ACL訪問控制通過以下兩個步驟來實現:
    1:使用acl配置項定義需要控制的條件
    2:通過http_access 配置對已定義的列表做出"允許" 或者 "拒絕" 訪問的控制

    定義控制列表:    acl      列表名      列表類型      列表內容
    允許訪問權限:    http_access  allow   列表名
    拒絕訪問權限:    http_access  deny   列表名
  • 列表類型
  • src :源IP地址、網段、IP範圍

    acl zkc1 src 192.168.100.50/32
    http_access deny zkc1                  //禁止zkc列表的IP進行訪問
  • dst :目標IP、網段、主機名

    acl zkc2 dst 192.168.100.11/32
        http_access deny zkc2                //禁止訪問zkc2列表的IP 
  • maxconn :每個客戶機的並發連接數

    acl  MC20 maxconn 20                  // 最大並發連接
    http_access deny MC20               //客戶機的並發連接超過20將被阻止
  • url_regex :目標資源的URL地址 -i:表示忽略大小寫

    acl BURL url_regex -i ^rtsp:// ^emule://             //以rtsp://  等 開頭的URL
     http_access deny BURL                 //拒絕列表內URL
  • urlpath_regex :目標資源的整個URL路徑 -i:表示忽略大小寫

    acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$            //以mp3、mp4、rmvb結尾的URL路徑
    http_access deny PURL                //禁止客戶機下載mp3、mp4等文件
  • time : 使用代理服務的時間段
  • 字母表示一星期幾的英文縮寫
  • M—Monday 、T—Tuseday、W—Wednesday、H—Thursday、F—Friday、A—Saturday、S—Sunday

    acl work time MTWHF 08:30-17:30         //時間為周一至周五 8點30到17點30
    http_access allow work                    //允許客戶機在工作時間上網
  • port : 目標端口

    acl ABC port 443                 //目標端口443
    http_access deny ABC     //禁止訪問443端口
  • dstdomain : 目標域,匹配域內的所有站點

    acl CBA  dstdomain .qq.com        //以.qq.com結尾的網站
    http_access deny CBA     //禁止訪問 .qq.com 結尾的網站
  • 技術分享圖片技術分享圖片技術分享圖片

    ?
    ?

    • Squid方向代理
    • Squid 反向代理常用於服務器端,客戶端訪問 Squid 代理服務器的 80 端口,Squid 代理服務器根據配置去請求後端的 web 服務器,然後將請求到的信息保存在本地並回傳給客戶端,當又有客戶端請求相同資源時,Squid 代理服務器直接將緩存中的信息回傳給客戶端。
    • 代理服務器:IP192.168.100.10
    • web1服務器:IP 192.168.100.11
    • web2服務器:IP 192.168.100.12
    • 客戶機上需要做域名解析代理服務器的IP 為www.yun.com

      # vim /etc/squid.conf
      http_port 192.168.100.10:80 accel vhost vport   
       (// 本地地址   accel:加速代理  虛擬主機  虛擬端口)
      cache_peer 192.168.100.11 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
      cache_peer 192.168.100.12 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
      (//指定負向服務器  ICP端口不開啟設為0   不進行查詢  指向真實服務器  輪詢   最大連接30   權重1   名字)
      cache_peer_domain web1 web2 www.yun.com
      (//指定web1,web2的域名為www.yun.com )
      
      # service squid restart  //重啟服務

      技術分享圖片

    • windows7上測試
    • 修改代理服務器端口 80

    技術分享圖片技術分享圖片技術分享圖片

    Squid的ACL訪問控制及反向代理