巧用Squid的ACL和訪問列表實現高效存取控制

來源:互聯網
上載者:User

標籤:http   ext   com   get   使用   strong   

Squid是一個緩衝Internet資料的軟體,其接收使用者的下載申請,並自動處理所下載的資料。當一個使用者想要下載一個首頁時,可以向 Squid發出一個申請,要Squid代替其進行下載,然後Squid串連所申請網站並請求該首頁,接著把該首頁傳給使用者同時保留一個備份,當別的使用者申 請同樣的頁面時,Squid把儲存的備份立即傳給使用者,使使用者覺得速度相當快。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS等協 議並且,Squid可以自動地進行處理,可以根據自己的需要設定Squid,使之過濾掉不想要的東西。

Squid可以工作在很多的作業系統中,如AIX、Digital、UNIX、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。

在使用過程中,合理使用存取控制是非常重要的工作。使用存取控制特性,可以控制其在訪問時根據特定的時間間隔進行緩衝、訪問特定網站或一組網站等 等。Squid存取控制有兩個要素:ACL元素和訪問列表。訪問列表可以允許或拒絕某些使用者對此服務的訪問。下面分別介紹ACL元素以及訪問列表的使用方 法。

1.ACL元素

該元素定義的文法如下:

acl aclname acltype string1…
acl aclname acltype "file"…

當使用檔案時,該檔案的格式為每行包含一個條目。

其中,acltype可以是src、dst、srcdomain、dstdomain、url_regex、urlpath_regex、time、port、proto、method中的一任意一種。

src:指明源地址。可以用以下的方法指定:

acl aclname src ip-address/netmask ... 客戶ip地址acl aclname src addr1-addr2/netmask ... 位址範圍

dst:指明目標地址,即客戶請求的伺服器的IP地址。文法為:

acl aclname dst ip-address/netmask ... 

srcdomain:指明客戶所屬的域,Squid將根據客戶IP反向查詢DNS。文法為:

acl aclname srcdomain foo.com ... 

dstdomain:指明請求伺服器所屬的域,由客戶請求的URL決定。文法為:

acl aclname dstdomain foo.com ...。此處需要注意的是:如果使用者使用伺服器IP而非完整的網域名稱時,Squid將進行反向的DNS解析來確定其完整網域名稱,如果失敗,就記錄為“none”。

time:指明訪問時間。文法如下:

acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]

日期的縮寫指代關係如下:

  1. S:指代Sunday
  2. M:指代Monday
  3. T:指代Tuesday
  4. W:指代Wednesday
  5. H:指代Thursday
  6. F:指代Friday
  7. A:指代Saturday

另外,h1:m1必須小於h2:m2,運算式為[hh:mm-hh:mm]。

port:指定訪問連接埠。可以指定多個連接埠,比如:

acl aclname port 80 70 21 ...acl aclname port 0-1024 ... 指定一個連接埠範圍

proto:指定使用協議。可以指定多個協議:

acl aclname proto HTTP FTP ...

method:指定要求方法。比如:

acl aclname method GET POST ...

url_regex:URL規則運算式匹配,文法為:

acl aclname url_regex[-i] pattern

urlpath_regex:URL-path規則運算式匹配,略去協議和主機名稱。其文法為:

acl aclname urlpath_regex[-i] pattern

在使用上述ACL元素的過程中,要注意如下幾點:

  1. acltype可以是任一個在ACL中定義的名稱。
  2. 任何兩個ACL元素不能用相同的名字。
  3. 每個ACL由列表值組成。當進行匹配檢測的時候,多個值由邏輯或運算串連;換句話說,任一ACL元素的值被匹配,則這個ACL元素即被匹配。
  4. 並不是所有的ACL元素都能使用訪問列表中的全部類型。
  5. 不同的ACL元素寫在不同行中,Squid將這些元素組合在一個列表中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.