日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

squid服务的应用 转

發(fā)布時間:2023/12/9 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 squid服务的应用 转 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原貼:http://blog.ixpub.net/8400463/viewspace-3985

空間管理 您的位置: IXPUB技術博客 ? 太陽微繫統(tǒng)'sBlog ? 博客 網(wǎng)絡依然還是計算機,Sun還是Sun!

squid服務的應用[轉(zhuǎn)]

上一篇 / 下一篇 ?2007-09-15 04:27:50 / 個人分類:Linux學習

查看( 1 ) / 評論( 0 ) / 評分( 0 / 0 ) 初始化cache
)P PZv] i `0# /s/squid/sbin/squid -zIXPUB技術博客0j gSo4LO5q
啟動squid
`;Z(jY `0# /s/squid/etc/rc.d/squid.sh start
H)T`0w&| z;q0@ 設置ipfilter
7Em#q-^ e!v9U5k0為了實現(xiàn)透明的功能,需要將所有對80端口的請求轉(zhuǎn)到squid的3128端口上,以實現(xiàn)對客戶端透明的功能。在/etc/ipnat.rules中加入:
t[c0}R Y0rdr fxp1 0.0.0.0/0 port 80 -> 127.0.0.1 3128
;c?2r!E!}Ob0刷新ipnat配置:
@V4l3o(V@ a2_0# ipnat -Cf /etc/ipnat.rules
/IS` p iq-z/z0一切完成,客戶端無需任何設置,根本感覺不到代理的存在,而且訪問速度明顯變快透明代理IXPUB技術博客(e,xRv/V,fG4^ ~1S
httpd_accel_host virtual
*Dt;]p&|3h%E fA0httpd_accel_port 80
(F&]f F}j/ndL ]LY0httpd_accel_with_proxy on
7`lb)C-khdl0httpd_accel_user_host_header onIXPUB技術博客 w U)f w#wL M
在Linux上,可以用iptables/ipchains直接將對Web端口80的請求直接轉(zhuǎn)發(fā)到Squid端口3128,由Squid接手,而用戶瀏覽器仍然認為它訪問的是對方的80端口。例如以下這條命令:iptables -t nat -A PREROUTING -s 192.168.0.200/32 -p tcp --dport 80 -j REDIRECT 3128
GdHe/'{'S,I0就是將192.168.0.200的所有針對80端口的訪問重定向到3128端口。IXPUB技術博客pPcCQ ~VM&mR
普通代理服務器
nZ)O&qTPv dY4]K0在這個例子中,代理服務器同時也是網(wǎng)關,內(nèi)部網(wǎng)絡接口eth0的IP地址為192.168.0.1,外部網(wǎng)絡接口eth1的IP地址為202.103.x.x。下面是一個基本的代理所需要配置選項:
u0p6EjQa7l,B0http_port 192.168.0.1:3128IXPUB技術博客uNX0GzfIH8aj
? 默認端口是3128,當然也可以是任何其它端口,只要不與其它服務發(fā)生沖突即可。為了安全起見,在前面加上IP地址,Squid就不會監(jiān)聽外部的網(wǎng)絡接口。IXPUB技術博客G+U&f&|B k0/!Cl
? 下面的配置選項是服務器管理者的電子郵件,當錯誤發(fā)生時,該地址會顯示在錯誤頁面上,便于用戶聯(lián)系:
b&T3L({R.PoI_V0/ V0cache_mgrstart@soocol.com以下這些參數(shù)告訴Squid緩存的文件系統(tǒng)、位置和緩存策略:
1u+rU+hvQ0cache_dir ufs /var/squidIXPUB技術博客Q.bt V'l+R I
cache_mem 32MB
_/G6d6Y)v8I3c%f,s0cache_swap_low 90IXPUB技術博客!g b x,] I/y
cache_swap_high 95在這里,Squid會將/var/squid目錄作為保存緩存數(shù)據(jù)的目錄,每次處理的緩存大小是32兆字節(jié),當緩存空間使用達到95%時,新的內(nèi)容將取代舊的而不直接添加到目錄中,直到空間又下降到90%才停止這一活動。如果不想Squid緩存任何文件,如某些存儲空間有限的專有系統(tǒng),可以使用null文件系統(tǒng)(這樣不需要那些緩存策略):
t3XX9C8}1A*O+^]|2/J0cache_dir null /tmp下面的幾個關于緩存的策略配置中,較主要的是第一行,即用戶的訪問記錄,通過分析它來了解所有用戶訪問的詳盡地址
Z.[Iesd(a&Q0cache_access_log /var/squid/access.logIXPUB技術博客4k(u*i p3CYI:uOI
cache_log /var/squid/cache.logIXPUB技術博客9C| p _z0O'u-Mh
cache_store_log /var/squid/store.log下面這行配置是在較新版本中出現(xiàn)的參數(shù),告訴Squid在錯誤頁面中顯示的服務器名稱:
8y^ R9Ss k Y;f0visible_hostname No1.proxy以下配置告訴Squid如何處理用戶,對每個請求的IP地址作為單獨地址處理:
YgPLoiG"m0client_mask 255.255.255.255################################################################################
K:w/PaW"X,PM;E0第4章 快速配置向?qū)?.1 squid.conf 語法Squid 的配置文件相對規(guī)范。它與其他許多unix 程序相似。每行以配置指令開始,后面跟著數(shù)字值或關鍵字。在讀取配置文件時,squid 忽略空行和注釋掉的行(以#開始)。如下是一些配置行示例:IXPUB技術博客@Hp/[D@pTb
cache_log /squid/var/cache.log
1gpZ4N;~0# define the localhost ACLIXPUB技術博客ubW4Lz O
acl Localhost src 127.0.0.1/32IXPUB技術博客OxV h*?7m Vq
connect_timeout 2 minutesIXPUB技術博客*? v7uXtS$O6~
log_fqdn on某些指令取唯一值。在這些情形下,重復賦予該指令不同的值,將覆蓋前面的值。例如,IXPUB技術博客G:P5G-?/` ~
下面是一個連接超時值。第一行無效,因為第二行覆蓋了它:IXPUB技術博客8Xzah4p-z };@
connect_timeout 2 minutes
1o9WP5HE$v"Cy0connect_timeout 1 hour另外,某些指令取列表值。在這些情形下,每一個新增的值都有效。"擴展方式"指令以這種方法工作:
&^|)z*p7f)lH0extension_methods UNGETIXPUB技術博客.qw`@K z./
extension_methods UNPUT
6[R6J$^6V+V-gcL0extension_methods UNPOST對這些基于列表的指令,你通常能在同一行中賦予多個值:
R/]H0OiOH3Y+v0extension_methods UNGET UNPUT UNPOST許多指令有通用類型。例如,連接超時值是一個時間規(guī)范,在數(shù)字后面跟著時間單元。例如:
&n"xtQ-/&X0connect_timeout 3 hoursIXPUB技術博客rc c+{:i]P[#w+ee!M3y
client_lifetime 4 daysIXPUB技術博客:u*f1sl1i'm
negative_ttl 27 minutes類似的,大量的指令指向文件大小或者內(nèi)存額度。例如,你可以這樣編寫大小規(guī)范:十進制數(shù)字后面跟bytes,KB,MB 或GB.例如:
[tS7X+s!@T0minimum_object_size 12 bytes
pBv#l [0request_header_max_size 10 KBIXPUB技術博客)c n:{0} f$tyZ
maximum_object_size 187 MB另一種值得提起的類型是觸發(fā)器,它的值是on 或者off。許多指令使用該類型。例如:
(xo4BGoF!]0server_persistent_connections on
&Anv4c!_lIaI4C0strip_query_terms off
Fs?I&P:y*c0prefer_direct on通常,配置文件指令能以任何順序出現(xiàn)。然而,如果某個指令指向的值被其他指令所定義,那么順序就很重要。訪問控制列表是個好的例子。acl 被用在http_access 規(guī)則之前必須被定義:
m9w)l`*C6]/H5fA0acl Foo src 1.2.3.4IXPUB技術博客| s tk6bc
http_access deny Foosquid.conf 文件里的許多東西是大小寫敏感的,例如指令名。你不能將http_port 寫成HTTP_port。默認的squid.conf 文件包含了對每個指令的大量注釋,以及指令的默認值。例如:IXPUB技術博客/UgdYNIAD3~
# TAG: persistent_request_timeout
P2FN+pGF&R&[5g"D:Y0# How long to wait for the next HTTP request on a persistent
#C0P8A3tHm0# connection after the previous request completes.
8k+M-RR;_;p0#IXPUB技術博客 qd;S%EO1]8?
#Default:IXPUB技術博客K DV] o l(Iu/s7y
# persistent_request_timeout 1 minute每次安裝squid 后,當前默認配置文件存放在$prefix/etc 目錄下的squid.conf.default。既然指令每次都有所改變,你能參考該文檔,以獲取最近的更新。該章剩下的部分是關于在開始運行squid 之前,你必須知道的少數(shù)指令。IXPUB技術博客[xun&m+K4j /5?
4.2 User IDs你可能知道,unix 進程和文件擁有文件和組屬主的屬性。你必須選擇某個用戶和組給squid。該用戶和組的組合,必須對大部分squid 相關的文件和目錄有讀和寫的權限。我高度推薦創(chuàng)建名為"squid"的用戶和組。這避免了某人利用squid 來讀取系統(tǒng)中的其他文件。假如不止一個人擁有對squid 的管理權限,你可以將他們加到squid 組里。unix 進程繼承了它們父進程的屬主屬性。那就是說,假如你以joe 用戶來啟動squid,squid 也以joe 來運行。假如你不想以joe 來運行squid,你需要預先改變你的用戶ID。這是su 命令的典型功能。例如:IXPUB技術博客%XwaN$i'W9WO
joe% su - squid
A8}`e.f/k3i:| Z%ub0squid% /usr/local/squid/sbin/squid不幸的是,運行squid 并非總是如此簡單。在某些情況下,你必須以root 來啟動squid,這依賴于你的配置。例如,僅僅root 能綁定TCP 套接字到特權端口上,如80。假如你必須以root 來啟動squid,你必須設置cache_effective_user 指令。它告訴squid,在執(zhí)行完需要特別權限的任務后,變成哪個用戶。例如:
9r&FqIN-K0cache_effective_user squid你提供的該名字必須是有效用戶(在/etc/passwd 文件里)。請注意僅僅當你以root 來啟動squid 時,你才需要用到該指令。僅僅root 有能力來隨意改變用戶身份。假如你以joe 來啟動squid,它不能改變到squid 用戶。你可能嘗試不設置cache_effective_user,直接以root 來運行squid。假如你試過,你會發(fā)現(xiàn)squid 拒絕運行。這違背了安全規(guī)則。假如外部攻擊者有能力危及或利用squid,他能獲取對系統(tǒng)的全部訪問權。盡管我們努力使squid 安全和少bug,但還是穩(wěn)重點好。假如你沒有設置cache_effective_user,以root 來啟動squid,squid 使用nobody 作為默認值。不管你選擇什么用戶ID , 請確認它有對下面目錄的讀訪問權:$prefix/etc,$prefix/libexec,$prefix/share。該用戶ID 也必須有對日志文件和緩存目錄的寫訪問IXPUB技術博客)dei0bE
權。squid 也有一個cache_effective_group 指令,但你也許不必設置它。默認的,squid 使用cache_effective_user 的默認組(從/etc/passwd 文件讀取)。
+Odl;Fyg+d#A04.3 端口號http_port 指令告訴squid 在哪個端口偵聽HTTP 請求。默認端口是3128:
*G2JFl:C,j0http_port 3128假如你將squid 作為加速器運行(見15 章),你也許該將它設為80。你能使用附加的http_port 行,來指示squid 偵聽在多個端口上。假如你必須支持客戶組(它們被配置得不一致),這點就經(jīng)常有用。例如,來自某個部門的瀏覽器發(fā)送請求到3128,
*O%X+a$w&bV/s0然而另一個部門使用80 端口。簡單的將兩個端口號列舉出來:
Ac3E$B7]+o l8N&xA9^xe0http_port 3128
,D2f m0DV%y7/$AUT0http_port 8080你也能使用http_port 指令來使squid 偵聽在指定的接口地址上。當squid 作為防火墻運行時,它有兩個網(wǎng)絡接口:一個內(nèi)部的和一個外部的。你可能不想接受來自外部的http 請求。為了使squid 僅僅偵聽在內(nèi)部接口上,簡單的將IP 地址放在端口號前面:IXPUB技術博客Q/z#wTD3Q z9/ w
http_port 192.168.1.1:3128
;B)Y&A"Yl(?7]!h04.4 日志文件路徑我將在第13 章討論所有squid 的日志細節(jié)。你現(xiàn)在你關注的唯一事情是,squid 將它的日志放在何處。默認的日志目錄是squid 安裝位置下的logs 目錄。例如,假如你在./configureIXPUB技術博客?xj1WL
時沒有使用--prefix=選項,那么默認的日志文件路徑是/usr/local/squid/var/logs。你必須確認日志文件所存放的磁盤位置空間足夠。在squid 寫日志時如果接受到錯誤,它會退出和重啟。該行為的主要理由應引起你的注意。squid 想確認你不會丟失任何重要的日志信息,特別是你的系統(tǒng)被濫用或者被攻擊時。squid 有三個主要的日志文件:cache.log,access.log,store.log.第一個文件即cache.log,包含狀態(tài)性的和調(diào)試性的消息。當你剛開始運行squid 時,你應密切的關注該文件。假如squid拒絕運行,理由也許會出現(xiàn)在cache.log 文件的結尾處。在正常條件下,該文件不會變得很大。也請注意,假如你以-s 選項來運行squid,重要的cache.log 消息也可被送到你的syslog進程。通過使用cache_log 指令,你可以改變該日志文件的路徑:IXPUB技術博客|P3x j5Uv
cache_log /squid/logs/cache.logaccess.log 文件包含了對squid 發(fā)起的每個客戶請求的單一行。每行平均約150 個字節(jié)。也就是說,在接受一百萬條客戶請求后,它的體積約是150M。請使用cache_access_log 指令來改變該日志文件的路徑:IXPUB技術博客.D3OT.q U
cache_access_log /squid/logs/access.log假如因為某些理由,你不想squid 記錄客戶端請求日志,你能指定日志文件的路徑為/dev/null.store.log 文件對大多數(shù)cache 管理員來說并非很有用。它包含了進入和離開緩存的每個目標的記錄。平均記錄大小典型的是175-200 字節(jié)。然而,squid 不在store.log 里對cache點擊創(chuàng)建接口,所以它比access.log 包含少得多的記錄。請使用cache_store_log 指令來改變它的位置:IXPUB技術博客)C~)Z}:_ P w
cache_store_log /squid/logs/store.log通過指定路徑為none,你能輕易的完全禁止store.log 日志:IXPUB技術博客4G7S B!g_4c
cache_store_log none假如你不小心,squid 的日志文件增加沒有限制。某些操作系統(tǒng)對單個文件強制執(zhí)行2G的大小限制,即使你有充足的磁盤空間。超過該限制會導致寫錯誤,這樣squid 就會退出。為了保證日志文件大小合理,你應創(chuàng)建任務來有規(guī)律的重命名和打包日志。squid 有內(nèi)建功能來使這個容易做到。請見13.7 章關于日志輪循的解釋。
&}-Y_B5y{7nn&~04.5 訪問控制在第6 章里有更多的關于訪問控制的描述。現(xiàn)在,我只講述少量的訪問控制方法,以使熱心的讀者能快速開始使用squid。squid 默認的配置文件拒絕每一個客戶請求。在任何人能使用代理之前,你必須在squid.conf 文件里加入附加的訪問控制規(guī)則。最簡單的方法就是定義一個針對客戶IP 地址的ACL 和一個訪問規(guī)則,告訴squid 允許來自這些地址的HTTP 請求。squid 有許多不同的ACL類型。src 類型匹配客戶IP 地址,squid 會針對客戶HTTP 請求檢查http_access 規(guī)則。這樣,你需要增加兩行:
v,k$@m2{ A0acl MyNetwork src 192.168.0.0/16
1Bq!E?V!i0http_access allow MyNetwork請將這些行放在正確的位置。http_access 的順序非常重要,但是acl 行的順序你不必介意。你也該注意默認的配置文件包含了一些重要的訪問控制,你不應該改變或刪除它們,除非你完全理解它們的意義。在你第一次編輯squid.conf 文件時,請看如下注釋:IXPUB技術博客3C&r)[#/t W3B2FH
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS在該注釋之后,以及"http_access deny all"之前插入你自己的新規(guī)則。為了徹底說明,如下是一個合理的初始訪問控制配置,包括推薦的默認控制和早先的例子:
d?Ex:J&/6EdK0acl All src 0/0IXPUB技術博客 ^XYI)bo
acl Manager proto cache_objectIXPUB技術博客2xN6wng3hm!q
acl Localhost src 127.0.0.1/32IXPUB技術博客Z2_ b7wQ(w `)Q@
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535IXPUB技術博客9dHUUR?T4RhA,r:S
acl SSL_ports 443 563IXPUB技術博客w y%AaE%N
acl CONNECT method CONNECTIXPUB技術博客3m q&[J8`u/W
acl MyNetwork src 192.168.0.0/16IXPUB技術博客E H4h;qQ
http_access allow Manager LocalhostIXPUB技術博客8v~Q[&Q"Th X
http_access deny ManagerIXPUB技術博客 p:T*Tnk
http_access deny !Safe_portsIXPUB技術博客9i-?T&Y+t;q1C
http_access deny CONNECT !SSL_ports
w2/fzi:LI6Z0http_access allow MyNetwork
z8_~*j%hi0http_access deny AllIXPUB技術博客9}X/q2i"DaP
4.6 可見主機名希望你不必擔心visible_hostname 指令。然而,假如squid 不能發(fā)現(xiàn)它所運行的機器的主機名,你就必須設置它。如果發(fā)生這樣的事,squid 抱怨和拒絕運行:IXPUB技術博客!L.XEMN/Q4v6Byh r
% squid -Nd1
G'n1o;Fa:oO0FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'有大量的理由使squid 需要知道主機名:IXPUB技術博客1R Z-PF(~l/^/Ag
+ 主機名出現(xiàn)在squid 的錯誤消息里,這幫助用戶驗證潛在問題的源頭。
5jn5r /9uJ:M!I0+ 主機名出現(xiàn)在squid 轉(zhuǎn)發(fā)的cache 單元的HTTP Via 頭里。當請求到達原始主機時,Via頭包含了在傳輸過程中涉及的代理列表。squid 也使用Via 頭來檢測轉(zhuǎn)發(fā)環(huán)路。我將在第10章里討論轉(zhuǎn)發(fā)環(huán)路。squid 對特定事務使用內(nèi)部URL,例如FTP 目錄列表的圖標。當squid 對FTP 目錄產(chǎn)生HTML 頁面時,它插入小圖標用以指明該目錄中的文件類型。圖標URL 包含了cache 的主機名,以便web 瀏覽器能直接從squid 請求它們。每個從squid 響應的HTTP 回復包含了X-Cache 頭。這并非官方HTTP 頭。它是一個擴展頭,用以指明該響應是cache 點擊還是cache 丟失。既然請求和響應可能經(jīng)過多個cache,每個X-Cache 頭包含了cache 報告點擊或丟失的名字。如下是一個通過2 個cache 的響應示例:IXPUB技術博客;}"Lx[:F])rx
HTTP/1.0 200 OK
gBMVh*V2FNt0Date: Mon, 29 Sep 2003 22:57:23 GMTIXPUB技術博客(IE%|4Kf
Content-type: text/html
!Q?/$~ Um0W:sN,h$d0Content-length: 733IXPUB技術博客"y1j9d"VE:^5_`B
X-Cache: HIT from bo2.us.ircache.net
}C3_J0{d ers&Zsm0X-Cache: MISS from bo1.us.ircache.netsquid 在啟動時試圖自動獲取主機名。首先它調(diào)用gethostname()函數(shù),這通常能返回正確的主機名。接著,squid 調(diào)用gethostbyname()函數(shù)嘗試對主機名進行DNS 查詢。該函數(shù)典型的返回IP 地址和系統(tǒng)的規(guī)范名。假如gethostbyname()成功,squid 在錯誤消息里,Via 頭里等地方使用這個規(guī)范名。因為大量的理由,squid 可能不能檢測到它的規(guī)范主機名,包括:IXPUB技術博客w c,Wi*Pi
+ 主機名可能未設置。
wK`S0{4o^Ao0+ 主機名可能從DNS 區(qū)域或/etc/hosts 文件里丟失。squid 系統(tǒng)的DNS 客戶端配置可能不正確或丟失。在unix 系統(tǒng)上,你該檢查/etc/resolv.conf 和/etc/host.conf 文件。假如你看到上述的致命錯誤,你必須修正主機名和DNS 信息,或者顯式的給squid 指明主機名。在大多數(shù)情況下,請確認"hostname"命令返回一個完全規(guī)范的主機名,并且在/etc/hosts 文件里增加這個接口。假如這樣不成功,請在squid.conf 里設置可見主機名:
lP Vm x/i0visible_hostname squid.packet-pushers.netIXPUB技術博客0X `~ XE(f
4.7 管理聯(lián)系信息你應該設置cache_mgr 指令作為對用戶的幫助。它是一個email 地址,假如問題發(fā)生,用戶能寫信給它。cache_mgr 地址默認出現(xiàn)在squid 的錯誤消息里。例如:
@j5{"]0S0cache_mgrsquid@web-cache.net
qi`-])E ?'qc04.8 下一步在創(chuàng)建了初步的配置文件后,你多少準備首次運行squid 了。請遵循下面章節(jié)的建議。當你掌握了啟動和停止squid 后,你該花費一些時間來改善配置文件。你可能想增加更高級的訪問控制,這在第6 章里有描述。既然我在這里沒有討論磁盤cache,你該花些時間閱讀第7 和第8 章。第5章 運行Squid5.1 squid 命令行選項在開始其他事情之前,讓我們先看一下squid 的命令行選項。這里的許多選項你從不會使用,另外有些僅僅在調(diào)試問題時有用。-a portIXPUB技術博客+lg4FMe?%Rn
指定新的http_port 值。該選項覆蓋了來自squid.conf 的值。然而請注意,你能在squid.conf里指定多個值。-a 選項僅僅覆蓋配置文件里的第一個值。(該選項使用字母a 是因為在Harvest cache 里,HTTP 端口被叫做ASCII 端口)-d level
(Y~$X*Md0讓squid 將它的調(diào)試信息寫到標準錯誤(假如配置了,就是cache.log 和syslog)。level參數(shù)指定了顯示在標準錯誤里的消息的最大等級。在多數(shù)情況下,d1 工作良好。請見16.2章關于調(diào)試等級的描述。-f fileIXPUB技術博客8TE4i(q#~D%^
指定另一個配置文件。-hIXPUB技術博客|Qx6N g~8LI
顯示用法。-k function
M af[3L*qd|0指示squid 執(zhí)行不同的管理功能。功能參數(shù)是下列之一:reconfigure,rotate,shutdown,interrupt,kill,debug,check,or parse。IXPUB技術博客Wv/C kYh
+ reconfigure 導致運行中的squid 重新讀取配置文件。
#p;MB0I&H+t%d0+ rotate導致squid 滾動它的日志,這包括了關閉日志,重命名,和再次打開它們。
-K,G`f}v0+ shutdown 發(fā)送關閉squid 進程的信號。
3d sO#FW/]e0+ interrupt 立刻關閉squid,不必等待活動會話完成。
!uBA+L5N#m f8e0+ kill 發(fā)送KILL 信號給squid,這是關閉squid 的最后保證。
9e g&m/@4q.Q0P0+ debug 將squid 設置成完全的調(diào)試模式,假如你的cache 很忙,它能迅速的用完你的磁盤空間。IXPUB技術博客o2h v0O!mj(]
+ check 簡單的檢查運行中的squid 進程,返回的值顯示squid 是否在運行。IXPUB技術博客 Ji$B:f${lK4Y |
+ 最后,parse 簡單的解析squid.conf 文件,如果配置文件包含錯誤,進程返回非零值。-s
H+b!S)Ls-M3n0激活將日志記錄到syslog 進程。squid 使用LOCAL4 syslog 設備。0 級別調(diào)試信息以優(yōu)先級LOG_WARNING 被記錄,1 級別消息以LOG_NOTICE 被記錄。更高級的調(diào)試信息不會被發(fā)送到syslogd.你可以在/etc/syslogd.conf 文件里使用如下接口:
u ?ak3b'[0local4.warning /var/log/squid.log-u port
"[#z Qy$a2i(Y[:X0指定另一個ICP 端口號,覆蓋掉squid.conf 文件里的icp_port。-v
(_k'THE,J JjH lW0打印版本信息。-z
?RS,h!_#l0初始化cache,或者交換,目錄。在首次運行squid,或者增加新的cache 目錄時,你必須使用該選項。-C
1T|7v/A3i,Fy#s0阻止安裝某些信號句柄,它們捕獲特定的致命信號例如SIGBUS 和SIGSEGV。正常的,這些信號被squid 捕獲,以便它能干凈的關閉。然而,捕獲這些信號可能讓以后調(diào)試問題困難。使用該選項,致命的信號導致它們的默認動作,通常是coredump。-DIXPUB技術博客VUO ] M&_:U3L
禁止初始化DNS 測試。正常情況下,squid 直到驗證它的DNS 可用才能啟動。該選項阻止了這樣的檢測。你也能在squid.conf 文件里改變或刪除dns_testnames 選項。-F
/8P/S'f X_0讓squid 拒絕所有的請求,直到它重新建立起存儲元數(shù)據(jù)。假如你的系統(tǒng)很忙,該選項可以減短重建存儲元數(shù)據(jù)的時間。然而,如果你的cache 很大,重建過程可能會花費很長的時間。-N
2]~ nU(z0W:R0阻止squid 變成后臺服務進程。-R
iu+^suu0VTp0阻止squid 在綁定HTTP 端口之前使用SO_REUSEADDR 選項。-VIXPUB技術博客2Q4HhQ,LV8e
激活虛擬主機加速模式。類似于squid.conf 文件里的httpd_accel_host virtual 指令。-X
8Aq t1nV _[4PV0強迫完整調(diào)試模式,如你在squid.conf 文件里指定debug_options ALL,9 一樣。-Y
F4W:}M#?}0在重建存儲元數(shù)據(jù)時,返回ICP_MISS_NOFETCH 代替ICP_MISS.忙碌的父cache 在重建時,該選項可以導致最少的負載。請見10.6.1.2 章。
;b m3|LK05.2 對配置文件查錯在開啟squid 之前,你應該謹慎的驗證配置文件。這點容易做到,運行如下命令即可:IXPUB技術博客y9O/`%C]pd;u}G
%squid -k parse假如你看不到輸出,配置文件有效,你能繼續(xù)后面的步驟。然而,如果配置文件包含錯誤,squid 會告訴你:IXPUB技術博客zc}a1VRI
squid.conf line 62: http_access allow okay2
3|,GYQ!m~0aclParseAccessLine: ACL name 'okay2' not found.這里你可以看到,62 行的http_access 指令指向的ACL 不存在。有時候錯誤信息很少:IXPUB技術博客 n5IZR `nU8n v'{
FATAL: Bungled squid.conf line 76: memory_pools在這個情形里,我們忘記了在76 行的memory_pools 指令后放置on 或off。建議你養(yǎng)成習慣:在每次修改配置文件后,使用squid -k parse。假如你不愿麻煩,并且你的配置文件有錯誤,squid 會告訴你關于它們而且拒絕啟動。假如你管理著大量的cache,也許你會編輯腳本來自動啟動,停止和重配置squid。你能在腳本里使用該功能,來確認配置文件是有效的。IXPUB技術博客J?/$mzEJ
5.3 初始化cache 目錄在初次運行squid 之前,或者無論何時你增加了新的cache_dir,你必須初始化cache 目錄。命令很簡單:
2KR.}#Zw*W {WP0%squid –z對UFS 相關的存儲機制(ufs,aufs,and diskd;見第8 章),該命令在每個cache_dir 下面創(chuàng)建了所需的子目錄。你不必擔心squid 會破壞你的當前cache 目錄(如果有的話)。在該階段屬主和許可權是通常遇到的問題。squid 在特定的用戶ID 下運行,這在squid.conf 文件里的cache_effective_user 里指定。用戶ID 必須對每個cache_dir 目錄有讀和寫權限。否則,你將看到如下信息:IXPUB技術博客 /}(X:c y%X
Creating Swap Directories
]9wq#Nl6l#s c1o0FATAL: Failed to make swap directory /usr/local/squid/var/cache/00:
#]DU6IFII_*_"U0(13) Permission denied在這樣的情形下,你該確認/usr/local/squid/var/cache 目錄的所有組成都可被squid.conf給定的用戶ID 訪問。最終的組件--cache 目錄--必須對該用戶ID 可寫。cache 目錄初始化可能花費一些時間,依賴于cache 目錄的大小和數(shù)量,以及磁盤驅(qū)動器的速度。假如你想觀察這個過程,請使用-X 選項:IXPUB技術博客.[g2RJ;k
%squid –zXIXPUB技術博客2ZO(R!B z
5.4 在終端窗口里測試squid一旦你已經(jīng)初始化cache 目錄,就可以在終端窗口里運行squid,將日志記錄到標準錯誤。這樣,你能輕易的定位任何錯誤或問題,并且確認squid 是否成功啟動。使用-N 選項來保持squid 在前臺運行,-d1 選項在標準錯誤里顯示1 級別的調(diào)試信息。
K)kR? l-]V8s0%squid -N -d1你將看到類似于以下的輸出:
"z"w)v,a(WY Y*@z02003/09/29 12:57:52| Starting Squid Cache
/_7lJ-]P}#[4E)~0version 2.5.STABLE4 for i386-unknown-freebsd4.8...IXPUB技術博客0C z6Bw*|%C+X
2003/09/29 12:57:52| Process ID 294IXPUB技術博客p(hbIM,W
2003/09/29 12:57:52| With 1064 file descriptors availableIXPUB技術博客y;O d&aYqc~8ZZ
2003/09/29 12:57:52| DNS Socket created on FD 4IXPUB技術博客wF*yh#H
2003/09/29 12:57:52| Adding nameserver 206.107.176.2 from /etc/resolv.confIXPUB技術博客m2B:N0s i#U
2003/09/29 12:57:52| Adding nameserver 205.162.184.2 from /etc/resolv.confIXPUB技術博客.`2H)L;/fu;|P8Y
2003/09/29 12:57:52| Unlinkd pipe opened on FD 9IXPUB技術博客@[h;S"KdUpf
2003/09/29 12:57:52| Swap maxSize 102400 KB, estimated 7876 objectsIXPUB技術博客8G Y{,r"Od5B0Q v
2003/09/29 12:57:52| Target number of buckets: 393IXPUB技術博客;n:F;R:X3j)|d
2003/09/29 12:57:52| Using 8192 Store bucketsIXPUB技術博客0CFN1R#p"f9`
2003/09/29 12:57:52| Max Mem size: 8192 KB
)^AI5}D4e"O,r+|02003/09/29 12:57:52| Max Swap size: 102400 KBIXPUB技術博客 c c2Pm/K8P5oy
2003/09/29 12:57:52| Rebuilding storage in /usr/local/squid/var/cache (DIRTY)
,j)R_Kut3C4e02003/09/29 12:57:52| Using Least Load store dir selection
!fB#C2rIK]'I02003/09/29 12:57:52| Set Current Directory to /usr/local/squid/var/cacheIXPUB技術博客X/xY y#DJ)k
2003/09/29 12:57:52| Loaded Icons.
o lA9T"O@02003/09/29 12:57:52| Accepting HTTP connections at 0.0.0.0, port 3128, FD 11.IXPUB技術博客N+k9Z H[D
2003/09/29 12:57:52| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.
J$u[Q XVN J02003/09/29 12:57:52| WCCP Disabled.
7xV.f;b9[5Z02003/09/29 12:57:52| Ready to serve reques假如你看到錯誤消息,你該首先修正它。請檢查輸出信息的開始幾行以發(fā)現(xiàn)警告信息。最普通的錯誤是文件/目錄許可問題,和配置文件語法錯誤。假如你看到一條不引起注意的錯誤消息,請見16 章中關于squid 故障處理的建議和信息。如果還不行,請檢查squid FAQ,或查找郵件列表來獲得解釋。一旦你見到"Ready to serve requests"消息,就可用一些HTTP 請求來測試squid。配置你的瀏覽器使用squid 作為代理,然后打開某個web 頁面。假如squid 工作正常,頁面被迅速載入,就象沒使用squid 一樣。另外,你可以使用squidclient 程序,它隨squid 發(fā)布:
A0@ Ec*ts0% squidclienthttp://www.squid-cache.org/假如它正常工作,squid 的主頁html 文件會在你的終端窗口里滾動。一旦確認squid 工作正常,你能中斷squid 進程(例如使用ctrl-c)并且在后臺運行squid。
'l+S&ne:b3N05.5 將squid 作為服務進程運行正常情況下你想將squid 以后臺進程運行(不出現(xiàn)在終端窗口里)。最容易的方法是簡單執(zhí)行如下命令:IXPUB技術博客!PCF8t"Bs4Qk
%squid –s-s 選項導致squid 將重要的狀態(tài)和警告信息寫到syslogd。squid 使用LOCAL4 設備,和LOG_WARNING 和LOG_NOTICE 優(yōu)先權。syslog 進程實際可能會或不會記錄squid 的消息,這依賴于它被如何配置。同樣的消息被寫進cache.log 文件,所以假如你愿意,忽略-s 選項也是安全的。當你不使用-N 選項來啟動squid,squid 自動在后臺運行并且創(chuàng)建父/子進程對。子進程做所有的實際工作。父進程確認子進程總在運行。這樣,假如子進程意外終止,父進程啟動另外一個子進程以使squid 正常工作。通過觀察syslog 消息,你能看到父/子進程交互作用。IXPUB技術博客2N'A5p.w+Z3yZ
Jul 31 14:58:35 zapp squid[294]: Squid Parent: child process 296 started這里顯示的父進程ID 是294,子進程是296。當你查看ps 的輸出,你可以看到子進程以(squid)形式出現(xiàn):
5C h*}kM"`Q0%ps ax | grep squidIXPUB技術博客f1sWJ(T]s
294 ?? Is 0:00.01 squid -sD
@"`U H r0296 ?? S 0:00.27 (squid) -sD (squid)假如squid 進程意外終止,父進程啟動另一個。例如:
2V;eXv,@ JA0Jul 31 15:02:53 zapp squid[294]: Squid Parent: child process 296 exited due to signal 6IXPUB技術博客&|_|)|&x*p y
Jul 31 15:02:56 zapp squid[294]: Squid Parent: child process 359 started在某些情形下,squid 子進程可能立即終止。為了防止頻繁的啟動子進程,假如子進程連續(xù)5 次沒有運行至少10 秒鐘,父進程會放棄。
'?9L[ F&f{V!z0Jul 31 15:13:48 zapp squid[455]: Squid Parent: child process 474 exited with status 1IXPUB技術博客#lY1G'E0pz
Jul 31 15:13:48 zapp squid[455]: Exiting due to repeated, frequent failures如果發(fā)生這樣的事,請檢查syslog 和squid 的cache.log 以發(fā)現(xiàn)錯誤。
];G6e MT-O2V n B4a05.5.1 squid_start 腳本當squid 以后臺進程運行時,它查找squid 執(zhí)行程序目錄下的名為squid_start 的文件。假如發(fā)現(xiàn),該程序在父進程創(chuàng)建子進程之前被執(zhí)行。你能使用該腳本完成特定的管理任務,例如通知某人squid 在運行,管理日志文件等。除非squid_start 程序存在,squid 不會創(chuàng)建子進程。squid_start 腳本在你使用絕對或相對路徑啟動squid 時才開始工作。換句話說,squid 不使用PATH 環(huán)境變量來定位squid_start.這樣,你應該養(yǎng)成習慣這樣啟動squid:IXPUB技術博客'unoL(y
% /usr/local/squid/sbin/squid –sD而不要這樣:
zj~TUdx3G0%squid –sD
d Lv/]Z5k]"TO05.6 啟動腳本通常你希望squid 在每次計算機重啟后自動啟動。對不同的操作系統(tǒng),它們的啟動腳本如何工作也很不同。我在這里描述一些通用的環(huán)境,但對你自己的特殊操作系統(tǒng),也許該有特殊的處理方法。
{_+m9w)dK"A05.6.1 /etc/rc.local最容易的機制之一是/etc/rc.local 腳本。這是個簡單的shell 腳本,在每次系統(tǒng)啟動時以root 運行。使用該腳本來啟動squid 非常容易,增加一行如下:
p~uP3[Z X0/usr/local/squid/sbin/squid –s當然你的安裝位置可能不同,還有你可能要使用其他命令行選項。不要在這里使用-N選項。假如因為某些理由,你沒有使用cache_effective_user 指令,你可以嘗試使用su 來讓squid以非root 用戶運行:IXPUB技術博客6M p:c_ `U s)sW l+Z8H
/usr/bin/su nobody -c '/usr/local/squid/sbin/squid -s'
;FCFo3x5/:@05.6.2 init.d 和rc.dinit.d 和rc.d 機制使用獨立的shell 腳本來啟動不同的服務。這些腳本通常在下列目錄之中:/sbin/init.d, /etc/init.d, /usr/local/etc/rc.d.腳本通常獲取單一命令行參數(shù),是start 或stop。某些系統(tǒng)僅僅使用start 參數(shù)。如下是啟動squid 的基本腳本:IXPUB技術博客Pr*XA vdi
#!/bin/shIXPUB技術博客C5J#cc.JX
# this script. starts and stops Squid
e8v#F|1dBZ)x0case "$1" in
8jx$nz!DE0start)
Cvo.YxoZ0/usr/local/squid/sbin/squid -s
O2z0po9FXU5f ` c UF-o0echo -n ' Squid'
+~x@ZQ0;;IXPUB技術博客$m&zC$J#KAd
stop)
!S ^(Q2_4l0/usr/local/squid/sbin/squid -k shutdownIXPUB技術博客;TzH-y _4_2j
;;IXPUB技術博客1l `3]"P H R H
esacLinux 用戶可能在啟動squid 之前需要設置文件描述符限制。例如:IXPUB技術博客O@/s{T
echo 8192 >; /proc/sys/fs/file-maxIXPUB技術博客U:}C:_y
limit -HSn 8192為了使用該腳本,先找到腳本存放的目錄。給它一個有意義的名字,類似于其他的系統(tǒng)啟動腳本。可以是S98squid 或squid.sh。通過重啟計算機來測試該腳本,而不要假想它會正常工作。
Px TFs7N05.6.3 /etc/inittab某些操作系統(tǒng)支持另一種機制,是/etc/inittab 文件。在這些系統(tǒng)中,init 進程啟動和停止基于運行等級的服務。典型的inittab 接口類似如此:IXPUB技術博客$k3lW yo[ ]
sq:2345nce:/usr/local/squid/sbin/squid –s使用該接口,init 進程啟動squid 一次并且隨后忘記它。squid 確認它駐留在運行狀態(tài),象前面描述的一樣。或者,你能這樣做:IXPUB技術博客y0cJDX!Ik_
sq:2345:respawn:/usr/local/squid/sbin/squid –Ns這里我們使用了respawn 選項,假如進程不存在init 會重啟squid。假如使用respawn,請確認使用-N 選項。在編輯完inittab 文件后,使用下面的命令來使init 重新讀取它的配置文件和啟動squid:
~*fM;~'/N0# init q
#C1x$Tf'Q,e05.7 chroot 環(huán)境某些人喜歡在chroot 環(huán)境運行squid。這是unix 的功能,給予進程新的root 文件系統(tǒng)目錄。在squid 受安全威脅時,它提供額外等級的安全保護。假如攻擊者在某種程度上通過squid獲取了對操作系統(tǒng)的訪問權,她僅僅能訪問在chroot 文件系統(tǒng)中的文件。在chroot 樹之外的系統(tǒng)文件,她不可訪問。最容易在chroot 環(huán)境里運行squid 的方法是,在squid.conf 文件里指定新的root 目錄,如下:
l/nL6I4^I1~0chroot /new/root/directorychroot()系統(tǒng)調(diào)用需要超級用戶權限,所以你必須以root 來啟動squid。chroot 環(huán)境不是為unix 新手準備的。它有點麻煩,因為你必須在新的root 目錄里重復放置大量的文件。例如,假如默認的配置文件正常在/usr/local/squid/etc/squid.conf,并且你使用chroot 指令,那么文件必須位于/new/root/directory/usr/local/squid/etc/squid.conf.你必須將位于$prefix/etc,$prefix/share,$prefix/libexec 下的所有文件拷貝到chroot 目錄。請確認$prefix/var 和cache 目錄在chroot 目錄中存在和可寫。同樣的,你的操作系統(tǒng)需要將大量的文件放在chroot 目錄里,例如/etc/resolv.conf 和/dev/null.假如你使用外部輔助程序,例如重定向器(見11 章)或者驗證器(見12 章),你也需要來自/usr/lib 的某些共享庫。你可以使用ldd 工具來查找給定的程序需要哪些共享庫:IXPUB技術博客+D0{Xq|Z/^
% ldd /usr/local/squid/libexec/ncsa_authIXPUB技術博客b?/F-o7N
/usr/local/squid/libexec/ncsa_auth:
+z@*CK2o`0libcrypt.so.2 =>; /usr/lib/libcrypt.so.2 (0x28067000)
S _ |.E'cDn0libm.so.2 =>; /usr/lib/libm.so.2 (0x28080000)
5e c)}3n D0libc.so.4 =>; /usr/lib/libc.so.4 (0x28098000)你可以使用chroot 命令來測試輔助程序:
b"s7O*U5S*|Ao7j*{#dG0# chroot /new/root/directory /usr/local/squid/libexec/ncsa_authIXPUB技術博客 w2i1Jw{8sux
/usr/libexec/ld-elf.so.1: Shared object "libcrypt.so.2" not found更多的關于chroot 的信息,請見你系統(tǒng)中chroot()的manpage。
+Y}t w*Z%}05.8 停止squid最安全的停止squid 的方法是使用squid -k shutdown 命令:IXPUB技術博客-h.e9Y~P`7z'i
%squid -k shutdown該命令發(fā)送TERM 信號到運行中的squid 進程。在接受到TERM 信號后,squid 關閉進來的套接字以拒收新請求。然后它等待一段時間,用以完成外出請求。默認時間是30 秒,你可以在shutdown_lifetime 指令里更改它。
&Ckr E;a"^:^0假如因為某些理由,squid.pid 文件丟失或不可讀,squid -k 命令會失敗。在此情形下,你可以用ps 找到squid 的進程ID,然后手工殺死squid。例如:
%/,Y!|*NyJh^ z0%ps ax |grep squid假如你看到不止一個squid 進程,請殺死以(squid)顯示的那個。例如:IXPUB技術博客)T$X[.Fi4Y7I
% ps ax | grep squid
&h1U V'X pl+m` [k0294 ?? Is 0:00.01 squid -sD
R1V4dagN0296 ?? S 0:00.27 (squid) -sD (squid)IXPUB技術博客U0N;Dsjp6Z`iw
% kill -TERM 296在發(fā)送TERM 信號后,你也許想查看日志,以確認squid 已關閉:
fC-t;B'ku#o0% tail -f logs/cache.logIXPUB技術博客-W,p|+]SC3f$v
2003/09/29 21:49:30| Preparing for shutdown after 9316 requests
a1e&f ByG02003/09/29 21:49:30| Waiting 10 seconds for active connections to finish
Rc7l"}oVI:C02003/09/29 21:49:30| FD 11 Closing HTTP connection
Eg Ky2xQV_7J(wC;RZ7q02003/09/29 21:49:31| Shutting down...IXPUB技術博客S&Z6L&cKPn
2003/09/29 21:49:31| FD 12 Closing ICP connection
m;Yu]*J'^!t-u~02003/09/29 21:49:31| Closing unlinkd pipe on FD 9
|B _ml @R02003/09/29 21:49:31| storeDirWriteCleanLogs: Starting...
tU-I,j^,Cg02003/09/29 21:49:32| Finished. Wrote 253 entries.
la;Mm`_+~9]K02003/09/29 21:49:32| Took 0.1 seconds (1957.6 entries/sec).IXPUB技術博客C8x2M(]0g#^
2003/09/29 21:49:32| Squid Cache (Version 2.5.STABLE4): Exiting normally.假如你使用squid -k interrupt 命令,squid 立即關閉,不用等待完成活動請求。這與在kill 里發(fā)送INT 信號相同。IXPUB技術博客!j1y IMefj&N(iH
5.9 重配置運行中的squid 進程在你了解了更多關于squid 的知識后,你會發(fā)現(xiàn)對squid.conf 文件做了許多改動。為了讓新設置生效,你可以關閉和重啟squid,或者在squid 運行時,重配置它。重配置運行中的squid 最好的方法是使用squid -k reconfigure 命令:
SN'UKbUBK*v0%squid -k reconfigure當你運行該命令時,HUP 信號被發(fā)送到運行中的squid 進程。然后squid 讀取和解析squid.conf 文件。假如操作成功,你可以在cache.log 里看到這些:
b"Jk3lLHsiS P02003/09/29 22:02:25| Restarting Squid Cache (version 2.5.STABLE4)...
2?Ud6aw5Ik)T/'m02003/09/29 22:02:25| FD 12 Closing HTTP connection
$Mz[2e5D;?.]E02003/09/29 22:02:25| FD 13 Closing ICP connectionIXPUB技術博客mg$kU?6/J]
2003/09/29 22:02:25| Cache dir '/usr/local/squid/var/cache' size remains unchangedIXPUB技術博客.VKz"R;D$i)L/P
at 102400 KB
3^k5vQ+aID02003/09/29 22:02:25| DNS Socket created on FD 5IXPUB技術博客:pa!BH1g*V.{.Z`
2003/09/29 22:02:25| Adding nameserver 10.0.0.1 from /etc/resolv.confIXPUB技術博客xa8c.a)G'uV3F
2003/09/29 22:02:25| Accepting HTTP connections at 0.0.0.0, port 3128, FD 9.IXPUB技術博客?C{-|r8{/yc7Mr_
2003/09/29 22:02:25| Accepting ICP messages at 0.0.0.0, port 3130, FD 11.
9o'/"zIB$s02003/09/29 22:02:25| WCCP Disabled.
p[i0gmH8e O Ppk5f02003/09/29 22:02:25| Loaded Icons.
6[?,q~ m02003/09/29 22:02:25| Ready to serve requests.在使用reconfigure 選項時你須謹慎,因為所做的改變可能會導致致命錯誤。例如,請注意squid 關閉和重新打開進來的HTTP 和ICP 套接字;假如你將http_port 改變?yōu)閟quid 不能打開的端口,它會發(fā)生致命錯誤并退出。在squid 運行時,某些指令和和選項不能改變,包括:IXPUB技術博客p(I d7F8A$`Y/S*g-^a
+ 刪除cache 目錄(cache_dir 指令)
YS,r le0+ 改變store_log 指令
~f.o^eT xhTre0+ 改變coss cache_dir 的塊大小數(shù)值。事實上,無論何時你改變了該值,你必須重新初始化coss cache_dir。IXPUB技術博客aj3r3F/o|
+ coredump_dir 指令在重配置過程中不被檢查。所以,在squid 已經(jīng)啟動了后,你不能讓squid 改變它的當前目錄。solaris 用戶在重配置squid 過程中可能遇到其他問題。solaris 的stdio 執(zhí)行組件里的fopen()調(diào)用要求使用小于256 的未用文件描述符。FILE 結構以8 位值存儲該文件描述符。正常情況下這不構成問題,因為squid 使用底層I/O(例如open())來打開cache 文件。然而,在重配置過程中的某些任務使用fopen(),這就有可能失敗,因為前面的256 個文件描述符已被分配出去。IXPUB技術博客w"C/gIL#j/r|
5.10 滾動日志文件除非你在squid.conf 里禁止,squid 會寫大量的日志文件。你必須周期性的滾動日志文件,以阻止它們變得太大。squid 將大量的重要信息寫入日志,假如寫不進去了,squid 會發(fā)生錯誤并退出。為了合理控制磁盤空間消耗,在cron 里使用如下命令:
@u*V r6w`.N H2|r0%squid -k rotate例如,如下任務接口在每天的早上4 點滾動日志:
:_4RW6l(Z1R+^B00 4 * * * /usr/local/squid/sbin/squid -k rotate該命令做兩件事。首先,它關閉當前打開的日志文件。然后,通過在文件名后加數(shù)字擴展名,它重命名cache.log,store.log,和access.log。例如,cache.log 變成cache.log.0,cache.log.0變成cache.log.1,如此繼續(xù),滾動到logfile_rotate 選項指定的值。squid 僅僅保存每個日志文件的最后logfile_rotate 版本。更老的版本在重命名過程中被刪除。假如你想保存更多的拷貝,你需要增加logfile_rotate 限制,或者編寫腳本用于將日志文件移動到其他位置。請見13.7 章關于滾動日志的其他信息。6.訪問控制6.1 訪問控制元素ACL 元素是Squid 的訪問控制的基礎。這里告訴你如何指定包括IP 地址,端口號,主機名,和URL 匹配等變量。每個ACL 元素有個名字,在編寫訪問控制規(guī)則時需要引用它們。基本的ACL 元素語法如下:
/[F%l+j*jQ0acl name type value1 value2 ...例如:IXPUB技術博客XV*T5u1ZP
acl Workstations src 10.0.0.0/16在多數(shù)情況下,你能對一個ACL 元素列舉多個值。你也可以有多個ACL 行使用同一個名字。例如,下列兩行配置是等價的:IXPUB技術博客 lx.O+_f$[(Pc'_
acl http_ports port 80 8000 8080
e:z.M&W1|s@0acl Http_ports port 80IXPUB技術博客1d,Zgn/B
acl Http_ports port 8000IXPUB技術博客q a5B Y$x+aqQ:oZ
acl Http_ports port 80806.1.1 一些基本的ACL 類型Squid 大約有25 個不同的ACL 類型,其中的一些有通用基本類型。例如,src 和dst ACL使用IP 地址作為它們的基本類型。為避免冗長,我首先描述基本類型,然后在接下來章節(jié)里描述每種ACL 類型。6.1.1.1 IP 地址使用對象:src,dst,myipIXPUB技術博客&f:hTZ E)S1l/[:t+^
squid 在ACL 里指定IP 地址時,擁有強有力的語法。你能以子網(wǎng),地址范圍,域名等形式編寫地址。squid 支持標準IP 地址寫法(由”.”連接的4 個小于256 的數(shù)字)和無類域間路由規(guī)范。另外,假如你忽略掩碼,squid 會自動計算相應的掩碼。例如,下例中的每組是相等的:
B] Jbea G^0acl Foo src 172.16.44.21/255.255.255.255
&VZ E'H(h1P%x0acl Foo src 172.16.44.21/32
oG+V6A*U| oo0acl Foo src 172.16.44.21
(B6~;P1H0h0Y u/B0acl Xyz src 172.16.55.32/255.255.255.248
%ZRm/b+iU v0acl Xyz src 172.16.55.32/28
w9V3mu*J9G0acl Bar src 172.16.66.0/255.255.255.0IXPUB技術博客Gz?)T h9}0n
acl Bar src 172.16.66.0/24IXPUB技術博客7N.HE3B9vX t
acl Bar src 172.16.66.0當你指定掩碼時,squid 會檢查你的工作。如果你的掩碼在IP 地址的非零位之外,squid會告警。例如,下列行導致告警:
N6tq3TI r0acl Foo src 127.0.0.1/8IXPUB技術博客2G&X$~McFX)s
aclParseIpData: WARNING: Netmask masks away part of the specified IP in 'Foo'這里的問題是/8 掩碼(255.0.0.0)在最后三個字節(jié)里都是零值,但是IP 地址127.0.0.1不是這樣的。squid 警告你這個問題,以便你消除歧義。正確的寫法是:IXPUB技術博客 [D g2i{#H
acl Foo src 127.0.0.1/32IXPUB技術博客u:?(g1wvn
or:IXPUB技術博客l'WThY1?
acl Foo src 127.0.0.0/8有時候你可能想列舉多個相鄰子網(wǎng),在這樣的情況下,通過指定地址范圍很容易做到。例如:
8QI2RMm|+C0acl Bar src 172.16.10.0-172.16.19.0/24這等價但高效于下面的行:
)uL0/ T*B'Z6s&xs0acl Foo src 172.16.10.0/24
;V:S&NK"ZJ U3LA$QC0acl Foo src 172.16.11.0/24
ky vxvBL6{0acl Foo src 172.16.12.0/24
9e hn5Rt4UVS0acl Foo src 172.16.13.0/24IXPUB技術博客8K ^#p[?/X8{!v
acl Foo src 172.16.14.0/24IXPUB技術博客!] is Ev)v
acl Foo src 172.16.15.0/24IXPUB技術博客Z Pj{.saP2Wq
acl Foo src 172.16.16.0/24IXPUB技術博客H Q7Ii Z{(UV
acl Foo src 172.16.18.0/24IXPUB技術博客/D tU X9X
acl Foo src 172.16.19.0/24注意使用IP 地址范圍,掩碼只能取一個。你不能為范圍里的地址設置多個不同掩碼。你也能在IP ACL 里指定主機名,例如:IXPUB技術博客7l,p,y-f C*b:QnQ'S
acl Squid dstwww.squid-cache.orgsquid 在啟動時,將主機名轉(zhuǎn)換成IP 地址。一旦啟動,squid 不會對主機名的地址發(fā)起第二次DNS 查詢。這樣,假如在squid 運行中地址已改變,squid 不會注意到。假如主機名被解析成多個IP 地址,squid 將每一個增加到ACL 里。注意你也可以對主機名使用網(wǎng)絡掩碼。在基于地址的ACL 里使用主機名通常是壞做法。squid 在初始化其他組件之前,先解析配置文件,所以這些DNS 查詢不使用squid 的非阻塞IP 緩存接口。代替的,它們使用阻塞機制的gethostbyname()函數(shù)。這樣,將ACL 主機名轉(zhuǎn)換到IP 地址的過程會延緩squid 的啟動。除非絕對必要,請在src,dst,和myip ACL 里避免使用主機名。squid 以一種叫做splay tree 的數(shù)據(jù)結構在內(nèi)存里存儲IP 地址ACL ( 請見http://www.link.cs.cmu.edu/splay/)。splay tree 有一些有趣的自我調(diào)整的特性,其中之一是在查詢發(fā)生時,列表會自動糾正它自己的位置。當某個匹配元素在列表里發(fā)現(xiàn)時,該元素變成新的樹根。在該方法中,最近參考的條目會移動到樹的頂部,這減少了將來查詢的時間。屬于同一ACL 元素的所有的子網(wǎng)和范圍不能重迭。如果有錯誤,squid 會警告你。例如,如下不被允許:IXPUB技術博客/aL,q0@$X?K
acl Foo src 1.2.3.0/24
7` @MX jg/~mL0acl Foo src 1.2.3.4/32它導致squid 在cache.log 里打印警告:IXPUB技術博客&[D?'_!r
WARNING: '1.2.3.4' is a subnetwork of '1.2.3.0/255.255.255.0'
1U%KCzC fT2G0WARNING: because of this '1.2.3.4' is ignored to keep splay tree searching predictable
E"H'H(A;kiU a+T4?o0WARNING: You should probably remove '1.2.3.4' from the ACL named 'Foo'在該情形下,你需要修正這個問題,可以刪除其中一個ACL 值,或者將它們放置在不同的ACL 列表中。IXPUB技術博客 PD2[ }8s
6.1.1.2 域名使用對象:srcdomain,dstdomain,和cache_host_domain 指令域名簡單的就是DNS 名字或區(qū)域。例如,下面是有效的域名:
k(f2N+T!q1O5y TI$^0www.squid-cache.orgIXPUB技術博客],^.b8f] ?6[
squid-cache.org
(y'Q!FJ/? RU0org域名ACL 有點深奧,因為相對于匹配域名和子域有點微妙的差別。當ACL 域名以"."開頭,squid 將它作為通配符,它匹配在該域的任何主機名,甚至域名自身。相反的,如果ACL 域名不以"."開頭,squid 使用精確的字符串比較,主機名同樣必須被嚴格檢查。表6-1 顯示了squid 的匹配域和主機名的規(guī)則。第一列顯示了取自URL 請求的主機名(或者srcdomain ACL 的客戶主機名)。第二列指明是否主機名匹配lrrr.org。第三列顯示是否主機名匹配.lrrr.org ACL。你能看到,唯一的不同在第二個實例里。IXPUB技術博客9ZZ*~(]'f
Table 6-1. Domain name matchingIXPUB技術博客2~-[Y^E E-VI#Z
___________________________________________________________________
1/A6B3w ~{-|/rE9c0__URL hostname_____Matches ACL lrrr.org? ____Matches ACL .lrrr.org?
S{v`5q0S0__lrrr.org_________Yes_______________________Yes
$R.?4BRw/Ev0__i.am.lrrr.org____No________________________Yes
u6kU&l(`:|0__iamlrrr.org______No________________________No
N2r{o T%de/rI0___________________________________________________________________
a ~7J)jd [ DV mw0**說明:為了表現(xiàn)表格形狀,“__”僅代表空格分隔符,沒有任何實際意義(段譽 注釋)。域名匹配可能讓人迷惑,所以請看第二個例子以便你能真正理解它。如下是兩個稍微不同的ACL:
!LH1S,xy6b$~N.p0acl A dstdomain foo.com
G&j;~9MVqoA0acl B dstdomain .foo.com用戶對http://www.foo.com/的請求匹配ACL B,但不匹配A。ACL A 要求嚴格的字符串IXPUB技術博客)V3I1W kA;/l
匹配,然而ACL B 里領頭的點就像通配符。另外,用戶對http://foo.com/的請求同時匹配A 和B。盡管在URL 主機名里的foo.com前面沒有字符,但ACL B 里領頭的點仍然導致一個匹配。squid 使用splay tree 的數(shù)據(jù)結構來存儲域名ACL,就像它處理IP 地址一樣。然而,squid的域名匹配機制給splay tree 提供了一個有趣的問題。splay tree 技術要求唯一鍵去匹配任意特定搜索條目。例如,讓我們假設搜索條目是i.am.lrrr.org。該主機名同時匹配.lrrr.org和.am.lrrr.org。事實上就是兩個ACL 值匹配同一個主機名擾亂了splay 機制。換句話說,在配置文件里放置如下語句是錯誤的:IXPUB技術博客cB|emJ.@&s
acl Foo dstdomain .lrrr.org?? .am.lrrr.org假如你這樣做,squid 會產(chǎn)生如下警告信息:
2{#e(wn`-S b/f0WARNING: '.am.lrrr.org' is a subdomain of '.lrrr.org'IXPUB技術博客l5G2@r$VN8R
WARNING: because of this '.am.lrrr.org' is ignored to keep splay tree searching predictable
zm"V kO-EN K*^6x0WARNING: You should probably remove '.am.lrrr.org' from the ACL named 'Foo'在該情況下你應遵循squid 的建議。刪除其中一條相關的域名,以便squid 明確知道你的意圖。注意你能在不同的ACL 里任意使用這樣的域名:IXPUB技術博客%pu"~M%C#inw
acl Foo dstdomain .lrrr.orgIXPUB技術博客`;Xw.{0{$G?
acl Bar dstdomain .am.lrrr.org這是允許的,因為每個命名ACL 使用它自己的splay tree.
F!_ Yr*UU p06.1.1.3 用戶名使用對象:ident,proxy_auth該類型的ACL 被設計成匹配用戶名。squid 可能通過RFC 1413 ident 協(xié)議或者通過HTTP驗證頭來獲取用戶名。用戶名必須被嚴格匹配。例如,bob 不匹配bobby。squid 也有相關的ACL 對用戶名使用正則表達式匹配(ident_regex 和proxy_auth_regex)。你可以使用單詞"REQUIRED"作為特殊值去匹配任意用戶名。假如squid 不能查明用戶名,ACL 不匹配。當使用基于用戶名的訪問控制時,squid 通常這樣配置。IXPUB技術博客qs9St/D S&R@
6.1.1.4 正則表達式使用對象:srcdom_regex,dstdom_regex,url_regex,urlpath_regex,browser,referer_regex,ident_regex,proxy_auth_regex,req_mime_type,rep_mime_type大量的ACL 使用正則表達式來匹配字符串(完整的正則表達式參考,請見O'Reilly 的Mastering Regular Expressions 一書)。對squid 來說,最常使用的正則表達式功能用以匹配字符串的開頭或結尾。例如,^字符是特殊元字符,它匹配行或字符串的開頭:IXPUB技術博客2WgRL Fa._
^http://該正則表達式匹配任意以http://開頭的URL。$也是特殊的元字符,因為它匹配行或字IXPUB技術博客$V$Y]3k@KU6}2o?
符串的結尾:IXPUB技術博客U5f8jd)g&i
.jpg$實際上,該示例也有些錯誤,因為.字符也是特殊元字符。它是匹配任意單個字符的通配符。我們實際想要的應該是:
Wpx g.nx0/.jpg$反斜杠對這個"."進行轉(zhuǎn)義。該正則表達式匹配以.jpg 結尾的任意字符串。假如你不使用^或$字符,正則表達式的行為就象標準子串搜索。它們匹配在字符串里任何位置出現(xiàn)的單詞或詞組。對所有的squid 正則表達式類,你可以使用大小寫敏感的選項。匹配是默認大小寫敏感的。為了大小寫不敏感,在ACL 類型后面使用-i 選項。例如:
#C6LghN7Y(Pqik0acl Foo url_regex -i ^http://wwwIXPUB技術博客Qmb'F^,j:b
6.1.1.5 TCP 端口號使用對象:port,myport該類型是相對的。值是個別的端口號或端口范圍。回想一下TCP 端口號是16 位值,這樣它的值必須大于0 和小于65536。如下是一些示例:
_!uUZgB'c D vg,x d0acl Foo port 123
Dk*d ng V!y0acl Bar port 1-1024
k$|I6Op06.1.1.6 自主系統(tǒng)號
C{-c ^j-j-y#ep,OV0使用對象:src_as,dst_asIXPUB技術博客S$iH4ty]PK
Internet 路由器使用自主系統(tǒng)(AS)號來創(chuàng)建路由表。基本上,某個AS 號指向被同一組織管理的IP 網(wǎng)絡范圍。例如,我的ISP 分配了如下網(wǎng)絡塊:134.116.0.0/16, 137.41.0.0/16, 206.168.0.0/16,和其他更多。在Internet 路由表里,這些網(wǎng)絡被公布為屬于AS 3404。當路由器轉(zhuǎn)發(fā)包時,它們典型的選擇經(jīng)過最少AS 的路徑。假如這些對你不重要,請不必關注它們。AS 基礎的ACL 僅僅被網(wǎng)絡gurus 使用。如下是基于AS 的類型如何工作的:當squid 首先啟動時,它發(fā)送一條特殊的查詢到某個whois 服務器。查詢語句基本是:“告訴我哪個IP 網(wǎng)絡屬于該AS 號”。這樣的信息被RADB收集和管理。一旦Squid 接受到IP 網(wǎng)絡列表,它相似的將它們作為IP 基礎的ACL 對待。基于AS 的類型僅僅在ISP 將他們的RADB 信息保持與日更新時才工作良好。某些ISP更新RADB 比其他人做得更好;而許多根本不更新它。請注意squid 僅僅在啟動或者reconfigure 時才將AS 號轉(zhuǎn)換為網(wǎng)絡地址。假如ISP 更新了它的RADB 接口,除非你重啟或者重配置squid,squid 不會知道這個改變。另外的情況是,在你的squid 啟動時,RADB可能不可到達。假如Squid 不能聯(lián)系上RADB服務器,它從訪問控制配置里刪除AS 接口。默認的whois 服務器是whois.ra.net,對許多用戶來說太遙遠了而不可信賴。
/f/m JPe*Sg0H06.1.2 ACL 類型現(xiàn)在我們能把焦點放在ACL 類型自身上。我在這里按照重要性的降序來列舉它們。
M4c-E^7xw m/F06.1.2.1 srcIP 地址在訪問控制元素里是最普遍使用的。大部分站點使用IP 地址來控制客戶允許或不允許訪問Squid。src 類型指客戶源IP 地址。也就是說,當src ACL 出現(xiàn)在訪問控制列表里時,squid 將它與發(fā)布請求的客戶IP 地址進行比較。正常情況下你允許來自內(nèi)網(wǎng)中主機的請求,并阻塞其他的。例如,假如你的單位使用192.168.0.0 子網(wǎng),你可以這樣指定ACL:
#_4d(dG%~.g-@[0acl MyNetwork src 192.168.0.0假如你有許多子網(wǎng),你能在同一個acl 行里面列舉它們:IXPUB技術博客4Tsn.ox X
acl MyNetwork src 192.168.0.0 10.0.1.0/24 10.0.5.0/24 172.16.0.0/12squid 有許多其他ACL 類型用以檢查客戶地址。srcdomain 類型比較客戶的完整可驗證域名。它要求反向DNS 查詢,這可能會延緩處理該請求。srcdom_regex ACL 是類似的,但它允許你使用正則表達式來匹配域名。最后,src_as 類型比較客戶的AS 號。
.U%jH3_Q-Y5T06.1.2.2 dstdst 類型指向原始服務器(目標)IP 地址。在某些情況下,你能使用該類型來阻止你的用戶訪問特定web 站點。然而,在使用dst ACL 時你須謹慎。大部分squid 接受到的請求有原始服務器主機名。例如:
U5C |E;AZ z0GEThttp://www.web-cache.com/HTTP/1.0這里,www.web-cache.com是主機名。當訪問列表規(guī)則包含了dst 元素時,squid 必須找到該主機名的IP 地址。假如squid 的IP 緩存包含了該主機名的有效接口,這條ACL 被立即檢測。否則,在DNS 查詢忙碌時,squid 會延緩處理該請求。這對某些請求來說會造成延時。為了避免延時,你該盡可能的使用dstdomain ACL 類型來代替dst。如下是簡單的dst ACL 示例:
@ SD xO'f3d/r)R0acl AdServers dst 1.2.3.0/24請注意,dst ACL 存在的問題是,你試圖允許或拒絕訪問的原始服務器可能會改變它的IP 地址。假如你不關心這樣的改變,那就不必麻煩去升級squid.conf。你可以在acl 行里放上主機名,但那樣會延緩啟動速度。假如你的ACL 需要許多主機名,你也許該預處理配置文件,將主機名轉(zhuǎn)換成IP 地址。
'M)uJ^SR0s06.1.2.3 myipmyip 類型指Squid 的IP 地址,它被客戶連接。當你在squid 機上運行netstat -n 時,你見到它們位于本地地址列。大部分squid 安裝不使用該類型。通常所有的客戶連接到同一個IP 地址,所以該ACL元素僅僅當系統(tǒng)有多個IP 地址時才有用。為了理解myip為何有用,考慮某個有兩個子網(wǎng)的公司網(wǎng)絡。在子網(wǎng)1的用戶是程序員和工程師。子網(wǎng)2包括會計,市場和其他管理部門。這樣情況下的squid 有三個網(wǎng)絡接口:一個連接子網(wǎng)1,一個連接子網(wǎng)2,第三個連接到外部因特網(wǎng)。當正確的配置時,所有在子網(wǎng)1 的用戶連接到squid 位于該子網(wǎng)的IP 地址,類似的,子網(wǎng)2 的用戶連接到squid 的第二個IP 地址。這樣你就可以給予子網(wǎng)1 的技術部員工完全的訪問權,然而限制管理部門的員工僅僅能訪問工作相關的站點。ACL 可能如下:
3e q6m5we7Nq0acl Eng myip 172.16.1.5IXPUB技術博客g:Lw9e*T8c
acl Admin myip 172.16.2.5然而請注意,使用該機制你必須特別小心,阻止來自某個子網(wǎng)的用戶連接squid 位于另一子網(wǎng)的IP 地址。否則,在會計和市場子網(wǎng)的聰明的用戶,能夠通過技術部子網(wǎng)進行連接,從而繞過你的限制。
hH a1H'Q]8x6tzT'W06.1.2.4 dstdomain在某些情況下,你發(fā)現(xiàn)基于名字的訪問控制非常有用。你可以使用它們?nèi)プ枞麑δ承┱军c的訪問,去控制squid 如何轉(zhuǎn)發(fā)請求,以及讓某些響應不可緩存。dstdomain 之所以非常有用,是因為它檢查請求url 里的主機名。然而首先我想申明如下兩行的不同:IXPUB技術博客R$G7t9vYY
acl A dstwww.squid-cache.orgIXPUB技術博客&{?m}5y%Ak R'/
acl B dstdomainwww.squid-cache.orgA 實際上是IP 地址ACL。當Squid 解析配置文件時,它查詢www.squid-cache.org的IP地址,并將它們存在內(nèi)存里。它不保存名字。假如在squid 運行時IP 地址改變了,squid 會繼續(xù)使用舊的地址。然而dstdomain ACL 以域名形式存儲,并非IP 地址。當squid 檢查ACL B 時,它對URL的主機名部分使用字符串比較功能。在該情形下,它并不真正關心是否www.squid-cache.orgIXPUB技術博客as%LV;[9hh:P
的IP 地址改變了。使用dstdomain ACL 的主要問題是某些URL 使用IP 地址代替主機名。假如你的目標是使用dstdomain ACL 來阻塞對某些站點的訪問,聰明的用戶能手工查詢站點的IP 地址,然后將它們放在URL 里。例如,下面的2 行URL 帶來同樣的頁面:
/c4H6[E'x&UR J0http://www.squid-cache.org/docs/FAQ/IXPUB技術博客r-h+u(Cc/aX n
http://206.168.0.9/docs/FAQ/第一行能被dstdomain ACL 輕易匹配,但第二行不能。這樣,假如你依靠dstdomain ACL,你也該同樣阻塞所有使用IP 地址代替主機名的請求。請見6.3.8 章節(jié)。IXPUB技術博客y$v Dx9} G:O Gk
6.1.2.5 srcdomainsrcdomain ACL 也有點麻煩。它要求對每個客戶IP 地址進行所謂的反向DNS 查詢。技術上,squid 請求對該地址的DNS PTR 記錄。DNS 的響應--完整可驗證域名(FQDN)--是squid匹配ACL 值的東西。(請參考O'Reilly's DNS and BIND 找到更多關于DNS PTR 記錄的信息)使用dst ACL,FQDN 查詢會導致延時。請求會被延緩處理直到FQDN 響應返回。FQDN響應被緩存下來,所以srcdomain 查詢通常僅在客戶首次請求時延時。不幸的是,srcdomain 查詢有時不能工作。許多組織并沒有保持他們的反向查詢數(shù)據(jù)庫與日更新。假如某地址沒有PTR 記錄,ACL 檢查失敗。在該情形下,請求可能會延時非常長時間(例如2 分鐘)直到DNS 查詢超時。假如你使用srcdomain ACL,請確認你自己的DNS in-addr.arpa 區(qū)域配置正確并且在工作中。假如這樣,你可以使用如下的ACL:IXPUB技術博客#X3A)/WEC
acl LocalHosts srcdomain .users.example.comIXPUB技術博客*m8BU,y_"M'X*fi
6.1.2.6 port你很可能想使用port ACL 來限制對某些原始服務器端口號的訪問。就像我即將講到的,squid 其實不連接到某些服務,例如email 和IRC 服務。port ACL 允許你定義單獨的端口或端口范圍。例如:
E.` R6Gz |0l ]0acl HTTPports port 80 8000-8010 8080HTTP 在設計上與其他協(xié)議類似,例如SMTP。這意味著聰明的用戶通過轉(zhuǎn)發(fā)email 消息到SMTP 服務器能欺騙squid。Email 轉(zhuǎn)發(fā)是垃圾郵件的主要原因之一,我們必須處理它們。歷史上,垃圾郵件有真正的郵件服務器。然而近來,越來越多的垃圾郵件制造者使用開放HTTP 代理來隱藏他們的蹤跡。你肯定不想Squid 被當成垃圾郵件轉(zhuǎn)發(fā)器。假如是這樣,你的IP 地址很可能被許多郵件轉(zhuǎn)發(fā)黑名單凍結(MAPS,ORDB,spamhaus 等)。除email 之外,還有其他許多TCP/IP 服務是squid 不與其通信的。這些包括IRC,Telnet,POP,和NNTP。你的針對端口的策略必須被配置成拒絕已知危險端口,并允許剩下的;或者允許已知安全端口,并拒絕剩下的。我的態(tài)度比較保守,僅僅允許安全的端口。默認的squid.conf 包含了下面的安全端口ACL:IXPUB技術博客v@8o4EB
acl Safe_ports port 80 # http
0A%[a1}+n'PO0acl Safe_ports port 21 # ftpIXPUB技術博客qO rvz1_FRc
acl Safe_ports port 443 563 # https, snews
4z*Sl.K!H[0acl Safe_ports port 70 # gopherIXPUB技術博客lk!X0]3O-s} S!Iq
acl Safe_ports port 210 # waisIXPUB技術博客1K(cQI9s$@#L#RQ
acl Safe_ports port 1025-65535 # unregistered portsIXPUB技術博客!]#r[ /-l8{J
acl Safe_ports port 280 # http-mgmt
q Ep@@1T0acl Safe_ports port 488 # gss-httpIXPUB技術博客,@?|{*W2A H1Q3N
acl Safe_ports port 591 # filemakerIXPUB技術博客 `4XzE2d
acl Safe_ports port 777 # multiling httpIXPUB技術博客&J-_1qC9N,[+Wy
http_access deny !Safe_ports這是個較明智的配置。它允許用戶連接到任何非特權端口(1025-65535),但僅僅指定的特權端口可以被連接。假如你的用戶試圖訪問某個URL如下:http://www.lrrr.org:123/,squid會返回訪問拒絕錯誤消息。在某些情形下,為了讓你的用戶滿意,你可能需要增加另外的端口號。寬松的做法是,拒絕對特別危險的端口的訪問。Squid FAQ 包括了如下示例:
7k-CB2a]!L:]7^7g0acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119
y}+KA9l0http_access deny Dangerous_ports使用Dangerous_ports 的弊端是squid 對幾乎每個請求都要搜索整個列表。這對CPU 造成了額外的負擔。大多數(shù)情況下,99%到達squid的請求是對80端口的,它不出現(xiàn)在危險端口列表里。所有請求對該表的搜索不會導致匹配。當然,整數(shù)比較是快速的操作,不會顯然影響性能。(譯者注:這里的意思是,兩者都要對列表進行搜索和匹配。在第一種情況下,它搜索安全端口列表并匹配80,顯然第一個元素就匹配成功了。而第二種情況中,會搜索危險端口列表并試圖匹配80,當然危險端口不會包括80,所以每次對80 的請求都要搜索完整個列表,這樣就會影響性能。)
~:}Y_;[ y i{06.1.2.7 myportsquid 也有myport ACL。port ACL 指向原始服務器的端口號,myport 指向squid 自己的端口號,用以接受客戶請求。假如你在http_port 指令里指定不止一個端口號,那么squid 就可以在不同的端口上偵聽。假如你將squid 作為站點HTTP 加速器和用戶代理服務器,那么myport ACL 特別有用。你可以在80 上接受加速請求,在3128 上接受代理請求。你可能想讓所有人訪問加速器,但僅僅你自己的用戶能以代理形式訪問squid。你的ACL 可能如下:
y{;KN a%/'t0acl AccelPort myport 80IXPUB技術博客7l0{eZ3X$y'r%{
acl ProxyPort myport 3128IXPUB技術博客8C Y+Q+K3k q9xwHe
acl MyNet src 172.16.0.0/22IXPUB技術博客@ v2t@"YmW
http_access allow AccelPort # anyoneIXPUB技術博客 Or$g7pd4fx
http_access allow ProxyPort MyNet # only my users
_ z2J|b ro;c?_'h8P0http_access deny ProxyPort # deny othersIXPUB技術博客V4i nc2P mx%o
6.1.2.8 methodmethod ACL 指HTTP 請求方法。GET 是典型的最常用方法,接下來是POST,PUT,和其他。下例說明如何使用method ACL:IXPUB技術博客:x iH2W1FdZ{;U
acl Uploads method PUT POSTSquid 知道下列標準HTTP 方法:GET, POST, PUT, HEAD, CONNECT, TRACE,OPTIONS 和DELETE。另外,squid 了解下列來自WEBDAV 規(guī)范,RFC 2518 的方法:PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK。某些Microsoft 產(chǎn)品使用非標準的WEBDAV 方法,所以squid 也了解它們:BMOVE, BDELETE, BPROPFIND。最后,你可以在extension_methods 指令里配置squid 去理解其他的請求方法。請見附錄A。注意CONNECT 方法非常特殊。它是用于通過HTTP 代理來封裝某種請求的方法(請見RFC 2817:Upgrading to TLS Within HTTP/1.1)。在處理CONNECT 方法和遠程服務器的端口號時應特別謹慎。就像前面章節(jié)講過的一樣,你不希望squid 連接到某些遠程服務。你該限制CONNECT 方法僅僅能連接到HTTPS/SSL 或NNTPS 端口(443 和563)。默認的squid.conf 這樣做:IXPUB技術博客;whPJ2GGm
acl CONNECT method CONNECTIXPUB技術博客@T?YT O
acl SSL_ports 443 563IXPUB技術博客w(p*l^*] u
http_access allow CONNECT SSL_ports
3K5}b4Oq'f UdD:Q7Z0http_access deny CONNECT在該配置里,squid 僅僅允許加密請求到端口443(HTTPS/SSL)和563(NNTPS)。CONNECT 方法對其他端口的請求都被拒絕。PURGE 是另一個特殊的請求方法。它是Squid 的專有方法,沒有在任何RFC 里定義。它讓管理員能強制刪除緩存對象。既然該方法有些危險,squid 默認拒絕PURGE 請求,除非你定義了ACL 引用了該方法。否則,任何能訪問cache 者也許能夠刪除任意緩存對象。我推薦僅僅允許來自localhost 的PURGE:
bA P9@"[[c[0acl Purge method PURGE
wC%eOMV4k0acl Localhost src 127.0.0.1IXPUB技術博客;?4J3mE O"_cGU
http_access allow Purge LocalhostIXPUB技術博客*{*Hz%WJ-`J O*f!ld
http_access deny Purge關于從squid 的緩存里刪除對象,請見7.6 章。IXPUB技術博客QJ(h/@C n sg{
6.1.2.9 proto該類型指URI 訪問(或傳輸)協(xié)議。如下是有效值:http, https (same as HTTP/TLS), ftp,gopher, urn, whois, 和cache_object。也就是說,這些是被squid 支持的URL 機制名字。例如,假如你想拒絕所有的FTP 請求,你可以使用下列指令:IXPUB技術博客r X2wLw S `0a"R
acl FTP proto FTPIXPUB技術博客H1pWJ u,U
http_access deny FTPcache_object機制是squid的特性。它用于訪問squid的緩存管理接口,我將在14.2 章討論它。不幸的是,它并非好名字,可能會被改變。默認的squid.conf 文件有許多行限制緩存管理訪問:
o-n|!i)H0acl Manager proto cache_objectIXPUB技術博客_X+v'})H/v7Kw"c
acl Localhost src 127.0.0.1
xqSNZ0CX1o0http_access allow Manager LocalhostIXPUB技術博客6^)lTLd3x2~QC$|4@h
http_access deny Manager這些配置行僅允許來自本機地址的緩存管理請求,所有其他的緩存管理請求被拒絕。這意味著在squid 機器上有帳號的人,能訪問到潛在的敏感緩存管理信息。你也許想修改緩存管理訪問控制,或?qū)δ承╉撁媸褂妹艽a保護。我將在14.2.2 章里談論到。IXPUB技術博客7v6Uw M8~E(KxK eW
6.1.2.10 timetime ACL 允許你控制基于時間的訪問,時間為每天中的具體時間,和每周中的每天。日期以單字母來表示,見如下表。時間以24 小時制來表示。開始時間必須小于結束時間,這樣在編寫跨越0 點的time ACL 時可能有點麻煩。IXPUB技術博客/`~4M+_E N*X*Ry
Code____Day
u2P n'G#n~ `j0-----------------IXPUB技術博客{!A$d |)vySY5u*N
S_______SundayIXPUB技術博客i dhS-Sc
M_______MondayIXPUB技術博客"h]FM){y4SU
T_______Tuesday
OS4Y [5Ca0/L0W_______Wednesday
B4L[ HA4i5^0H_______Thursday
/9A?%Th`0F_______Friday
F~A'U)^X`%Puq0A_______Saturday
Lp&Odj4e1x7Y0D_______All weekdays (M-F)
xr&n*Ma9YD%h0^(V0-----------------日期和時間由localtime()函數(shù)來產(chǎn)生。請確認你的計算機位于正確的時區(qū),你也該讓你的時鐘與標準時間同步。為了編寫time ACL 來匹配你的工作時間,你可以這樣寫:
F!ZCW|~*yr%R0acl Working_hours MTWHF 08:00-17:00
-{iw!| R?O(q"E0or:IXPUB技術博客lfGk D!O
acl Working_hours D 08:00-17:00讓我們看一個麻煩的例子。也許你是某個ISP,在下午8 點到早上4 點這段不忙的時間內(nèi)放松訪問。既然該時間跨越子夜,你不能編寫“20:00-04:00”。代替的,你需要把它們分成兩個ACL 來寫,或者使用否定機制來定義非忙時。例如:IXPUB技術博客.G7j6s*?;Wy![s
acl Offpeak1 20:00-23:59IXPUB技術博客BLS$~J;j|c)i)r
acl Offpeak2 00:00-04:00
A we-/.V0http_access allow Offpeak1 ...
3k)v&]H4QJ6x0http_access allow Offpeak2 ...另外,你可以這樣寫:IXPUB技術博客9r:VE5hEy*LJa
acl Peak 04:00-20:00
u:V{U2lj*p(bCe0http_access allow !Peak ...盡管squid 允許,你也不應該在同一個time ACL 里放置多個日期和時間范圍列表。對這些ACL 的解析不一定是你想象的那樣。例如,假如你輸入:IXPUB技術博客d0Ku|wa*B
acl Blah time M 08:00-10:00 W 09:00-11:00實際能做到的是:IXPUB技術博客ze0g s |
acl Blah time MW 09:00-11:00解析僅僅使用最后一個時間范圍。正確的寫法是,將它們寫進兩行:IXPUB技術博客 q:FP.j:d;Y6j
acl Blah time M 08:00-10:00
8iX:~1U IoF/s7g1h*/0acl Blah time W 09:00-11:00IXPUB技術博客cL^6E R5_v(O
6.1.2.11 identident ACL 匹配被ident 協(xié)議返回的用戶名。這是個簡單的協(xié)議,文檔是RFC 1413。它工作過程如下:1.用戶代理(客戶端)對squid 建立TCP 連接。2.squid 連接到客戶系統(tǒng)的ident 端口(113)。3.squid 發(fā)送一個包括兩個TCP 端口號的行。squid 端的端口號可能是3128(或者你在squid.conf 里配置的端口號),客戶端的端口號是隨機的。4.客戶端的ident 服務器返回打開第一個連接的進程的用戶名。5.squid 記錄下用戶名用于訪問控制目的,并且記錄到access.log。當squid 遇到對特殊請求的ident ACL 時,該請求被延時,直到ident 查詢完成。這樣,ident ACL 可以對你的用戶請求造成延時。我們推薦僅僅在本地局域網(wǎng)中,并且大部分客戶工作站運行ident 服務時,才使用ident ACL。假如squid 和客戶工作站連在一個局域網(wǎng)里,ident ACL 工作良好。跨廣域網(wǎng)使用ident難以成功。ident 協(xié)議并非很安全。惡意的用戶能替換他們的正常ident 服務為假冒服務,并返回任意的他們選擇的用戶名。例如,假如我知道從administrator 用戶的連接總是被允許,那么我可以寫個簡單的程序,在回答每個ident 請求時都返回這個用戶名。你可以使用ident ACL 攔截cache(請見第9 章)。當squid 被配置成攔截cache 時,操作系統(tǒng)假設它自己是原始服務器。這意味著用于攔截TCP 連接的本地socket 地址有原始服務器的IP 地址。假如你在squid 上運行netstat -n 時,你可以看到大量的外部IP 地址出現(xiàn)在本地地址欄里。當squid 發(fā)起一個ident 查詢時,它創(chuàng)建一個新的TCP 套接字,并綁定本地終點到同一個IP 地址上,作為客戶TCP 連接的本地終點。既然本地地址并非真正是本地的(它可能與原始服務器IP 地址相距遙遠),bind()系統(tǒng)調(diào)用失敗。squid 將這個作為失敗的ident查詢來處理。注意squid也有個特性,對客戶端執(zhí)行懶惰ident 查詢。在該情形下,在等待ident 查詢時,請求不會延時。在HTTP 請求完成時,squid 記錄ident 信息,假如它可用。你能使用ident_lookup_access 指令來激活該特性,我將在本章后面討論。
5y/G-V-c"|FdU(B7E06.1.2.12 proxy_authsquid 有一套有力的,在某種程度上有點混亂的特性,用以支持HTTP 代理驗證功能。使用代理驗證,客戶的包括頭部的http 請求包含了驗證信用選項。通常,這簡單的是用戶名和密碼。squid 解密信用選項,并調(diào)用外部驗證程序以發(fā)現(xiàn)該信用選項是否有效。squid 當前支持三種技術以接受用戶驗證:HTTP 基本協(xié)議,數(shù)字認證協(xié)議,和NTLM。基本認證已經(jīng)發(fā)展了相當長時間。按今天的標準,它是非常不安全的技術。用戶名和密碼以明文同時發(fā)送。數(shù)字認證更安全,但也更復雜。基本和數(shù)字認證在RFC 2617 文檔里被描述。NTLM 也比基本認證更安全。然而,它是Microsoft 發(fā)展的專有協(xié)議。少數(shù)squid 開發(fā)者已經(jīng)基本完成了對它的反向工程。為了使用代理驗證,你必須配置squid 使用大量的外部輔助程序。squid 源代碼里包含了一些程序,用于對許多標準數(shù)據(jù)庫包括LDAP,NTLM,NCSA 類型的密碼文件,和標準Unix密碼數(shù)據(jù)庫進行認證。auth_param 指令控制對所有輔助程序的配置。我將在12 章里討論這些細節(jié)。auth_param 指令和proxy_auth ACL 是少數(shù)在配置文件里順序重要的實例。你必須在proxy_auth ACL 之前定義至少一個驗證輔助程序(使用auth_param)。假如你沒有這樣做,squid 打印出錯誤消息,并且忽略proxy_auth ACL。這并非致命錯誤,所以squid 可以啟動,但所有你的用戶的請求可能被拒絕。proxy_auth ACL 取用戶名作為值。然而,大部分安裝里簡單的使用特殊值REQUIRED:auth_param ...
^7o_E_^Y0acl Auth1 proxy_auth REQUIRED在該情況中,任何具有有效信用選項的請求會匹配該ACL。假如你需要細化控制,你可以指定獨立的用戶名:IXPUB技術博客9qWg-`8Z:X
auth_param ...
N:F C!Fv{0acl Auth1 proxy_auth allan bob charlie
j.dE!/l:]+Rp]!s0acl Auth2 proxy_auth dave eric frank代理驗證不支持HTTP 攔截,因為用戶代理不知道它在與代理服務器,而非原始服務器通信。用戶代理不知道在請求里發(fā)送Proxy-Authorization 頭部。見9.2 章更多細節(jié)。IXPUB技術博客4g[? p'G
6.1.2.13 src_as該類型檢查客戶源IP 地址所屬的具體AS 號(見6.1.1.6 關于squid 如何將AS 號映射到IP 地址的信息)。作為示例, 我們虛構某ISP 使用AS 64222 并且通告使用10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 網(wǎng)絡。你可以編寫這樣的ACL,它允許來自該ISP 地址空間的任何主機請求:IXPUB技術博客0`9nq0_z/ m/?1s"l/
acl TheISP src 10.0.0.0/8IXPUB技術博客&Ui"T#n UcB
acl TheISP src 172.16.0.0/12IXPUB技術博客+^(]l"x^2}
acl TheISP src 192.168.0.0/16
8VN%nVkp'L0http_access allow TheISP當然,你還可以這樣寫:IXPUB技術博客/HZqzx Rv+bh
acl TheISP src_as 64222IXPUB技術博客6P$O `S[u9X
http_access allow TheISP第二種寫法不但更短,而且假如ISP 增加了新的網(wǎng)絡,你不必更新ACL 配置。
gV Z.y8P-q?"k1V06.1.2.14 dst_asdst_as ACL 經(jīng)常與cache_peer_access 指令一起使用。在該方法中,squid 使用與IP 路由一致的方式轉(zhuǎn)發(fā)cache 丟失。考慮某ISP,它比其他ISP 更頻繁的更換路由。每個ISP 處理他們自己的cache 代理,這些代理能轉(zhuǎn)發(fā)請求到其他代理。理論上,ISP A 將ISP B 網(wǎng)絡里主機的cache 丟失轉(zhuǎn)發(fā)到ISP B 的cache 代理。使用AS ACL 和cache_peer_access 指令容易做到這點:IXPUB技術博客 t9KVt"B-Q
acl ISP-B-AS dst_as 64222IXPUB技術博客iY(f)JuW.^
acl ISP-C-AS dst_as 64333
w"Ab#aHl[0cache_peer proxy.isp-b.net parent 3128 3130
W%L'AM$QJt0cache_peer proxy.isp-c.net parent 3128 3130IXPUB技術博客#X#|8XDu,?{ j9b
cache_peer_access proxy.isb-b.net allow ISP-B-ASIXPUB技術博客3bdkU8zI6Rc r
cache_peer_access proxy.isb-c.net allow ISP-C-AS我將在第10 章里討論更多關于cache 協(xié)作。IXPUB技術博客"T[g%wb)f?
6.1.2.15 snmp_communitysnmp_community ACL 對SNMP 查詢才有意義,后者被snmp_access 指令控制。例如,你可以這樣寫:
'R A0EZ"P]'^H0acl OurCommunityName snmp_community hIgHsEcUrItYIXPUB技術博客 A'U{M@*L,^e6E$T
acl All src 0/0
4P{'I/|'l0snmp_access allow OurCommunityName
(W R/q Wc/^7G2X0snmp_access deny All在該情況中,假如community 名字設置為hIgHsEcUrItY,SNMP 查詢才被允許。
3r8S_q fb"X+J06.1.2.16 maxconnmaxconn ACL 指來自客戶IP 地址的大量同時連接。某些squid 管理員發(fā)現(xiàn)這是個有用的方法,用以阻止用戶濫用代理或者消耗過多資源。maxconn ACL 在請求超過指定的數(shù)量時,會匹配這個請求。因為這個理由,你應該僅僅在deny 規(guī)則里使用maxconn。考慮如下例子:IXPUB技術博客v%{?l9i1P)p
acl OverConnLimit maxconn 4
l kJp9?J OTt-w0http_access deny OverConnLimit在該情況中,squid 允許來自每個IP 地址的同時連接數(shù)最大為4 個。當某個客戶發(fā)起第五個連接時,OverConnLimit ACL 被匹配,http_access 規(guī)則拒絕該請求。IXPUB技術博客V6K_q(F/v3K J
6.1.2.17 arparp ACL 用于檢測cache 客戶端的MAC 地址(以太網(wǎng)卡的物理地址)。地址解析協(xié)議(ARP)是主機查找對應于IP 地址的MAC 地址的方法。某些大學學生發(fā)現(xiàn),在Microsoft Windows 下,他們可以改變系統(tǒng)的IP 地址到任意值,然后欺騙squid 的基于地址的控制。這時arp 功能就派上用場了,聰明的系統(tǒng)管理員會配置squid 檢查客戶的以太網(wǎng)地址。不幸的是,該特性使用非移植性代碼。假如你運行Solaris 或Linux,你能使用arp ACL。其他系統(tǒng)不行。當你運行./configure 時增加--enable-arp-acl 選項,就可以激活該功能。arp ACL 有另一個重要限制。ARP 是數(shù)據(jù)鏈路層協(xié)議,假如客戶主機和squid 在同一子網(wǎng),它才能工作。你不容易發(fā)現(xiàn)不同子網(wǎng)主機的MAC 地址。假如在squid 和你的用戶之間有路由器存在,你可能不能使用arp ACL。現(xiàn)在你知道何時去使用它們,讓我們看看arp ACL 實際上是怎樣的。它的值是以太網(wǎng)地址,當使用ifconfig 和arp 時你能看到以太網(wǎng)地址。例如:
T4@e-y%YLh0acl WinBoxes arp 00:00:21:55:ed:22IXPUB技術博客e7r(lZ&u~.R
acl WinBoxes arp 00:00:21:ff:55:38IXPUB技術博客'_ ft"Q T7Ec^^r-V
6.1.2.18 srcdom_regexsrcdom_regex ACL 允許你使用正則表達式匹配客戶域名。這與srcdomain ACL 相似,它使用改進的的子串匹配。相同的限制是:某些客戶地址不能反向解析到域名。作為示例,下面的ACL 匹配以dhcp 開頭的主機名:IXPUB技術博客 m%z1k^_y@*J5a
acl DHCPUser srcdom_regex -i ^dhcp因為領頭的^ 符號, 該ACL 匹配主機名dhcp12.example.com , 但不匹配host12.dhcp.example.com。IXPUB技術博客&T!tKL&~7ro
6.1.2.19 dstdom_regexdstdom_regex ACL 也與dstdomain 相似。下面的例子匹配以www 開頭的主機名:
x7}#rc`?L0acl WebSite dstdom_regex -i ^www/.如下是另一個有用的正則表達式,用以匹配在URL 主機名里出現(xiàn)的IP 地址:
#i*c@ MIpvO[@v0acl IPaddr dstdom_regex [0-9]$這樣可以工作,因為squid 要求URL 主機名完全可驗證。既然全局頂級域名中沒有以數(shù)字結尾的,該ACL 僅僅匹配IP 地址,它以數(shù)字結尾。IXPUB技術博客&qyzp/wT
6.1.2.20 url_regexurl_regex ACL 用于匹配請求URL 的任何部分,包括傳輸協(xié)議和原始服務器主機名。例如,如下ACL 匹配從FTP 服務器的MP3 文件請求:IXPUB技術博客ROi4@)UI
acl FTPMP3 url_regex -i ^ftp://.*/.mp3$IXPUB技術博客K4^_?+qR"J/I,|
6.1.2.21 urlpath_regexurlpath_regex 與url_regex 非常相似,不過傳輸協(xié)議和主機名不包含在匹配條件里。這讓某些類型的檢測非常容易。例如,假設你必須拒絕URL 里的"sex",但仍允許在主機名里含有"sex"的請求,那么這樣做:
.g"B"ARp*Gn t0acl Sex urlpath_regex sex另一個例子,假如你想特殊處理cgi-bin 請求,你能這樣捕獲它們:IXPUB技術博客S6cO1H"@R P
acl CGI1 urlpath_regex ^/cgi-bin當然,CGI 程序并非總在/cgi-bin/目錄下,這樣你應該編寫其他的ACL 來捕獲它們。IXPUB技術博客l.X"m-p.Mf!J
6.1.2.22 browser大部分HTTP 請求包含了User-Agent 頭部。該頭部的值典型如下:
,l2F,[.M;/:B [0Mozilla/4.51 [en] (X11; I; Linux 2.2.5-15 i686)browser ACL 對user-agent 頭執(zhí)行正則表達式匹配。例如,拒絕不是來自Mozilla 瀏覽器的請求,可以這樣寫:
Mt*j-TAZ P;f9j0acl Mozilla browser Mozilla
c_B#eYh0http_access deny !Mozilla在使用browser ACL 之前,請確認你完全理解cache 接受到的User-Agent 字符串。某些user-agent 與它們的來源相關。甚至squid 可以重寫它轉(zhuǎn)發(fā)的請求的User-Agent 頭部。某些瀏覽器例如Opera 和KDE 的Konqueror,用戶可以對不同的原始服務器發(fā)送不同的user-agent字串,或者干脆忽略它們。
L2|Ge8^c WZ06.1.2.23 req_mime_typereq_mime_type ACL 指客戶HTTP 請求里的Content-Type 頭部。該類型頭部通常僅僅出現(xiàn)在請求消息主體里。POST 和PUT 請求可能包含該頭部,但GET 從不。你能使用該類型ACL 來檢測某些文件上傳,和某些類型的HTTP 隧道請求。req_mime_type ACL 值是正則表達式。你可以這樣編寫ACL 去捕獲音頻文件類型:IXPUB技術博客$qDsU~ K5G9AB
acl AuidoFileUploads req_mime_type -i ^audio/
cJ'C sG/R}06.1.2.24 rep_mime_type該類型ACL 指原始服務器的HTTP 響應里的Content-Type 頭部。它僅在使用http_reply_access 規(guī)則時才有用。所有的其他訪問控制形式是基于客戶端請求的。該ACL 基于服務器響應。假如你想使用squid 阻塞Java 代碼,你可以這樣寫:
7HL|l5R gp;B0acl JavaDownload rep_mime_type application/x-javaIXPUB技術博客O3OA&o!F-nZ
http_reply_access deny JavaDownloadIXPUB技術博客n$m z_l.?C_
6.1.2.25 ident_regex在本節(jié)早些時講過ident ACL。ident_regex 允許你使用正則表達式,代替嚴格的字符串匹配,這些匹配是對ident 協(xié)議返回的用戶名進行。例如,如下ACL 匹配包含數(shù)字的用戶名:IXPUB技術博客7G'c#go V.R'fn2v,Ni
acl NumberInName ident_regex [0-9]
S.{%PL/K;K1G06.1.2.26 proxy_auth_regex該ACL 允許對代理認證用戶名使用正則表達式。例如, 如下ACL 匹配
Z}#_Q0A^0admin,administrator 和administrators:IXPUB技術博客*Od7C bu:M
acl Admins proxy_auth_regex -i ^admin
2Y~z2f'x~P0U/zG06.1.3 外部ACLSquid 2.5 版本介紹了一個新特性:外部ACL。你可以指示squid 發(fā)送某些信息片斷到外部進程,然后外部的輔助程序告訴squid,數(shù)據(jù)匹配或不匹配。squid 附帶著大量的外部ACL 輔助程序;大部分用于確定命名用戶是不是某個特殊組的成員。請見12.5 章關于這些程序的描述,以及關于如何編寫你自己的程序的信息。現(xiàn)在,我解釋如何定義和使用外部ACL 類型。external_acl_type 指令定義新的外部ACL 類型。如下是通用語法:
5lj5m!}.l&v0external_acl_type type-name [options] format helper-commandtype-name 是用戶定義的字串。你也可以在acl 行里引用它。Squid 當前支持如下選項(options):ttl=nIXPUB技術博客x8?(~.NBq
時間數(shù)量,單位是秒,用以緩存匹配值的時間長短。默認是3600 秒,或1 小時。negative_ttl=nIXPUB技術博客 L`!V hm C?
時間數(shù)量,單位是秒,用以緩存不匹配值的時間長短。默認是3600 秒,或1 小時。concurrency=n
:`,vb A"Gm P0衍生的輔助程序的數(shù)量,默認是5。cache=nIXPUB技術博客:V [}2l{x8D
緩存結果的最大數(shù)量。默認是0,即不限制cache 大小。格式是以%字符開始的一個或多個關鍵字。squid 當前支持如下格式:%LOGINIXPUB技術博客dA}^(xPr5m J1i!t
從代理驗證信用選項里獲取的用戶名。%IDENTIXPUB技術博客*{{#g2A?}^
從RFC 1413 ident 獲取的用戶名。%SRC
/D.p4Jt LeE*Go.F,e)/0客戶端IP 地址。%DST
Zo7`R,qx3Gc0原始服務器IP 地址。%PROTO
.V/.Mp7M2F zF0傳輸協(xié)議(例如HTTP,FTP 等)%PORTIXPUB技術博客-@Al9P5H-E0Cr]U H
原始服務器的TCP 端口。%METHOD
9O,q"q)m5x:Su6goz0HTTP 請求方法。%{Header}IXPUB技術博客 O| }g/qRP
HTTP 請求頭部的值;例如,%{User-Agent}導致squid 發(fā)送這樣的字串到驗證器:"Mozilla/4.0 (compatible; MSIE 6.0; Win32)"%{Hdr:member}
yzE0U;w:w tF v0選擇某些數(shù)量的基于列表的HTTP 頭部,例如Caceh-Control;例如,給出如下HTTP頭部:IXPUB技術博客-j;OT/Ds qL8`V
X-Some-Header: foo=xyzzy, bar=plugh, foo=zoinks對%{X-Some-Header:foo}的取值,squid 發(fā)送這樣的字串到外部ACL 進程:
1q"l5A;_-ET0foo=xyzzy, foo=zoinks%{Hdr:;member}IXPUB技術博客@"y piu h(i
與%{Hdr:member}相同,除了";"是列表分隔符外。你能使用任何非字母數(shù)字的字符作為分隔符。輔助命令是squid 為輔助程序衍生的命令。你也可以在這里包含命令參數(shù)。例如,整條命令可能類似如此:
O-H:r0Qz/~0/usr/local/squid/libexec/my-acl-prog.pl -X -5 /usr/local/squid/etc/datafile將這些放在一個長行里。squid 不支持如下通過反斜杠分隔長行的技術,所以請記住所有這些必須放在單行里:IXPUB技術博客.~vB dZ,`+w,d,RS
external_acl_type MyAclType cache=100 %LOGIN %{User-Agent} /IXPUB技術博客:I.~/S^FIXAO
/usr/local/squid/libexec/my-acl-prog.pl -X -5 /
)A#Zm#LI0/usr/local/squid/share/usernames /
j$eQLV|uA:DcO0/usr/local/squid/share/useragents現(xiàn)在你知道如何定義外部ACL,下一步是編寫引用它的acl 行。這相對容易,語法如下:IXPUB技術博客7W eFa Dr'F/z4R
acl acl-name external type-name [args ...]如下是個簡單示例:
Y$kO}*H0acl MyAcl external MyAclTypesquid 接受在type-name 后面的任意數(shù)量的參數(shù)。這些在每個請求里被發(fā)送到輔助程序。
PsZ t X]0請見12.5.3 章,我描述了unix_group 輔助程序,作為該功能的示例。
EE g5F|WBs2f0f8P06.1.4 處理長ACL 列表ACL 列表某些時候非常長。?br />

TAG:

查看全部評論我來說兩句???

顯示全部

??? ???

?

???

內(nèi)容

???

昵稱

???

驗證

???

提交評論

??? width="0" height="0" id="xspace-phpframe">

?

???????????

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow

總結

以上是生活随笔為你收集整理的squid服务的应用 转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

免费国产黄线在线观看视频 | 国产精品破处视频 | 在线观看日本高清mv视频 | 三级黄色理论片 | 中文字幕无吗 | 不卡av在线免费观看 | 亚洲dvd| 一区二区视 | 99久久久久久国产精品 | 91精品国产99久久久久久久 | 国产成人精品久久久久蜜臀 | 精品免费视频123区 午夜久久成人 | 国产视频二 | 国产精品99免费看 | 日日精品 | 波多野结衣久久资源 | 久久国色夜色精品国产 | 超碰国产人人 | 岛国一区在线 | 中文字幕乱码电影 | 国产精品一区二区在线播放 | 在线视频电影 | 国内精品久久久久久久久久久 | 在线视频观看成人 | 激情小说网站亚洲综合网 | 激情综合六月 | 在线播放日韩av | 中文字幕在线国产 | 中文字幕影片免费在线观看 | 国产69精品久久app免费版 | 日韩av高清在线观看 | 国产高清小视频 | 麻豆国产网站入口 | 成人91在线 | 亚洲国产精品久久久久婷婷884 | 免费国产ww | 天天操偷偷干 | 免费看黄视频 | www欧美xxxx | av在线免费在线 | 99久久激情| 91秒拍国产福利一区 | 在线精品一区二区 | 久久99免费视频 | 亚洲精品无 | 69精品视频在线观看 | 美女国内精品自产拍在线播放 | 一级特黄av | 伊人天堂av | 欧美日韩在线免费观看 | 又大又硬又黄又爽视频在线观看 | 免费看91的网站 | 国产视频精品在线 | 日韩免费在线观看视频 | 久久美女电影 | 欧美日韩国产亚洲乱码字幕 | 国产精品久久久久久久久久久久久久 | 亚洲一区二区三区毛片 | 免费网址你懂的 | 国产精品6 | 极品嫩模被强到高潮呻吟91 | 免费在线观看日韩视频 | 国产福利一区二区在线 | 国产91aaa | 国产视频一区二区在线 | 国产精品午夜在线观看 | 久久99精品久久久久久 | 2019中文字幕第一页 | 丁香五月亚洲综合在线 | a√天堂中文在线 | 最新精品国产 | 五月天婷婷在线播放 | 欧美日韩二区三区 | 欧美日韩久久一区 | 成人在线观看资源 | 国产亚洲精品久久久久久电影 | 久草在线视频中文 | 亚洲天天干 | 91在线视频精品 | 免费看片亚洲 | 狠狠艹夜夜干 | 精品你懂的 | 欧美精品亚洲精品日韩精品 | 欧美高清视频不卡网 | 99视频在线免费看 | 91看片在线观看 | 嫩嫩影院理论片 | 日韩欧美一区二区三区视频 | 在线日韩中文 | 亚洲国产精品va在线看黑人 | 99久久这里有精品 | 91精品在线观看视频 | 亚洲jizzjizz日本少妇 | 麻豆91精品 | 日韩高清精品免费观看 | 精品国产精品久久一区免费式 | 日韩在线三级 | 98超碰在线| 欧美激情综合色综合啪啪五月 | 欧美在线日韩在线 | 亚洲精品视频在线观看免费视频 | 98久9在线 | 免费 | 久久成人视屏 | 永久免费av在线播放 | 韩日精品在线 | 国产精品久99 | 高清视频一区二区三区 | 免费h漫在线观看 | 日韩精品一区在线播放 | 免费av网站在线看 | 日韩最新av在线 | 久久精美视频 | 欧美成人中文字幕 | 久久人91精品久久久久久不卡 | 天天操网站 | 99视频免费看 | 五月色综合 | 久久刺激视频 | 国产精品99久久久精品免费观看 | 国产无遮挡猛进猛出免费软件 | 国产午夜小视频 | 欧美日韩不卡一区二区三区 | 国产精品午夜免费福利视频 | 97精品一区| 国产精品成人一区二区三区吃奶 | 在线观看mv的中文字幕网站 | 国产一区二区三区四区在线 | 人人舔人人爽 | 国产免费二区 | 国产在线观看av | 又黄又爽又刺激的视频 | 国产美女无遮挡永久免费 | 国产手机在线播放 | 激情网五月天 | 亚洲国产福利视频 | 一本大道久久精品懂色aⅴ 五月婷社区 | 成人午夜电影在线播放 | 亚洲精品综合在线观看 | 8x8x在线观看视频 | 国产免费视频一区二区裸体 | 久久成人人人人精品欧 | 国产黄色片网站 | 91精品视频一区二区三区 | 99热这里只有精品国产首页 | 国产精品18久久久久久久久久久久 | 国产日韩欧美自拍 | 亚洲高清视频在线观看免费 | 亚洲综合射 | 亚洲免费在线视频 | 国产手机在线播放 | 97超碰在线久草超碰在线观看 | 久久伊人五月天 | 超碰午夜 | 曰韩在线 | 天天射色综合 | 日韩黄色中文字幕 | 亚洲国产精品一区二区久久,亚洲午夜 | 免费精品在线观看 | 色在线免费 | 激情伊人五月天 | 91九色蝌蚪视频在线 | 久久久久久久久久久网 | 亚洲成人免费观看 | 精品在线视频一区二区三区 | 日韩视频在线一区 | a黄色片| 中日韩欧美精彩视频 | 国产专区欧美专区 | 999久久国精品免费观看网站 | 99久久99久久精品免费 | 国产亚洲午夜高清国产拍精品 | 又黄又刺激又爽的视频 | 成人黄色大片在线免费观看 | 成人免费看片98欧美 | 中文av字幕在线观看 | 国产99久久99热这里精品5 | 久青草影院 | 四虎成人精品永久免费av | 特级西西444www大精品视频免费看 | 青青啪| 欧美综合在线视频 | 精品国产91亚洲一区二区三区www | 久久久精品亚洲 | 九九有精品 | 午夜美女福利 | 成人久久久电影 | 日韩精品中文字幕一区二区 | 视频国产在线 | 91毛片视频| 久久久91精品国产一区二区精品 | 91九色蝌蚪视频网站 | 精品一区在线看 | 久久国产露脸精品国产 | 欧洲色综合 | 91成人免费看片 | 国产麻豆精品一区二区 | 亚洲日本va午夜在线影院 | 国产99久久久国产精品免费看 | 亚洲精品资源在线观看 | 成人免费视频播放 | 日韩视频精品在线 | 国产精品美女毛片真酒店 | 久久综合狠狠综合久久狠狠色综合 | 99国产免费网址 | 国产精品v欧美精品 | 国产美女精品视频免费观看 | 国产精品高清免费在线观看 | 超碰在线观看97 | 久久久精品成人 | 久久久高清视频 | 精品一区二区电影 | 人人爽人人插 | 国产自产在线视频 | 国产成人三级一区二区在线观看一 | 欧美日韩在线观看不卡 | 热久久最新地址 | aaa毛片视频 | 九九久久成人 | 国内精品久久久久久久久久久 | 色a在线观看 | av丝袜美腿 | 一本大道久久精品懂色aⅴ 五月婷社区 | 超碰人人国产 | 久久99精品久久久久久秒播蜜臀 | 日韩欧美中文 | 成在人线av | 久热国产视频 | 天天爱天天插 | 在线国产福利 | 五月天亚洲综合小说网 | 成人免费共享视频 | 久久伊人操 | 视频二区在线视频 | 97精品超碰一区二区三区 | 美国三级黄色大片 | 日本激情动作片免费看 | 六月色丁香 | 一区二区三区四区五区在线 | 97理论电影| 久久久久电影网站 | 国产一级视屏 | 亚洲国产美女精品久久久久∴ | 亚洲高清资源 | 精品国产精品久久一区免费式 | 亚洲精品视频偷拍 | 久久五月激情 | 国产精品亚洲a | 欧美日韩一区二区在线 | 国产成人a亚洲精品 | 在线免费色视频 | 久久免费福利 | 少妇自拍av | 国产一区二区在线观看免费 | 349k.cc看片app | 婷婷午夜 | 色婷婷播放 | 精品一区二区免费 | 91九色网址| 超碰97网站| 欧美激情精品久久久久久免费 | 国产97在线播放 | 97色在线视频 | 少妇视频一区 | 亚洲精品h | 欧美a级片网站 | 国产精品国产三级国产不产一地 | 开心激情综合网 | 午夜.dj高清免费观看视频 | 日韩在线高清视频 | 五月天六月色 | 成人三级黄色 | 日韩字幕在线 | 欧美色综合天天久久综合精品 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 一区在线免费观看 | 91精品一区国产高清在线gif | 国产一区二区三区在线免费观看 | 日日躁夜夜躁xxxxaaaa | 成人午夜电影在线 | 成人在线视 | 久久久久国产成人免费精品免费 | 在线亚洲欧美日韩 | 丁香网婷婷 | 国产精品毛片一区二区 | 日韩欧美在线高清 | 999一区二区三区 | 亚洲日日夜夜 | 免费亚洲精品 | 天天色天天综合 | 一级免费观看 | 日韩大片在线免费观看 | 日本一区二区三区免费看 | 国产中文字幕在线播放 | 国产一区 在线播放 | 亚洲专区在线播放 | 成人久久久电影 | 欧美三级高清 | 精品国产99| 亚洲传媒在线 | 少妇性aaaaaaaaa视频 | 国产精品久久久久婷婷二区次 | 99高清视频有精品视频 | bbbbb女女女女女bbbbb国产 | 国产成人免费 | 日韩在线字幕 | 亚洲精品国精品久久99热 | 精品一区二区三区久久久 | 亚洲激情av| 91久久一区二区 | 免费视频你懂得 | 久久久久久久免费观看 | 久久久久久蜜av免费网站 | 成年人在线免费看片 | 日韩免费在线看 | 国产亚洲综合性久久久影院 | www久久com| 在线观看免费中文字幕 | 中文字幕一区二区三区在线播放 | 免费a网址 | 91超国产 | 国产婷婷精品 | av解说在线| 久久www免费视频 | 人人爽久久久噜噜噜电影 | 99久久夜色精品国产亚洲 | 亚洲精品av中文字幕在线在线 | 天天操天天爽天天干 | 99精品视频网 | 国产中出在线观看 | 中文字幕一区二区三区在线视频 | 国产精品男女啪啪 | 久久男人视频 | 蜜桃视频日本 | 色五月成人 | 欧美巨乳波霸 | 一级久久精品 | 亚洲视频一区二区三区在线观看 | 欧美先锋影音 | 国产中文在线字幕 | 不卡国产在线 | 国产又粗又猛又色又黄视频 | 日韩视频免费播放 | 激情视频一区二区 | 欧美日韩国产在线一区 | 久久免费观看少妇a级毛片 久久久久成人免费 | 久草在线视频网 | 国产伦理久久精品久久久久_ | 中文字幕不卡在线88 | 久久婷婷综合激情 | 波多野结衣视频一区 | 97福利| 99视| 免费高清av在线看 | 久久国语露脸国产精品电影 | 成人免费亚洲 | 狠狠操夜夜 | 国产在线探花 | 国产成人精品久久久 | 久久久成人精品 | 欧美日韩在线观看一区二区三区 | 最新婷婷色 | 免费在线激情电影 | 国产成本人视频在线观看 | 成人动漫一区二区三区 | 国产xxxxx在线观看 | 日韩高清精品免费观看 | 午夜精选视频 | 亚洲一区黄色 | 日韩欧美高清一区二区三区 | 国产区精品在线观看 | 欧美在线a视频 | 久久免费视频99 | 精品国产电影一区二区 | 国产一区国产精品 | 免费在线色| 人人插人人射 | 国产传媒一区在线 | 亚洲视频99 | 国产一级黄色片免费看 | 欧美男女爱爱视频 | 黄色片网站av| 探花视频免费观看高清视频 | 国产精品手机在线 | 最新精品国产 | 久久深夜福利免费观看 | 开心激情婷婷 | 国产精品亚洲片在线播放 | 国产馆在线播放 | 国产99久久久久久免费看 | 六月丁香六月婷婷 | 免费无遮挡动漫网站 | 91国内在线 | 成人一区二区三区中文字幕 | 99精品国自产在线 | 3d黄动漫免费看 | 欧美日韩中文在线 | 久久国产系列 | 99色网站| 国产精品igao视频网网址 | 激情网站网址 | 亚洲经典视频在线观看 | 国产高清一 | 97人人网 | 日韩欧美精品一区二区三区经典 | 精品美女久久久久久免费 | 99国产在线 | 亚洲精品国产综合久久 | 日韩在线国产精品 | www.在线看片.com | 美女视频黄网站 | 在线免费观看黄色小说 | 欧美亚洲专区 | 日韩视频二区 | 99久久精品国产一区二区成人 | 天天综合导航 | 91丨九色丨蝌蚪丨老版 | 99草视频在线观看 | 少妇资源站 | 日韩av电影免费在线观看 | 久久免费视频这里只有精品 | 在线观看欧美成人 | 四虎影视成人 | av在线播放快速免费阴 | 亚洲精品视频二区 | 97视频在线免费 | 天天操夜夜拍 | 日韩最新理论电影 | 伊人电影天堂 | 久久国产精品99久久人人澡 | 成人作爱视频 | 视频国产一区二区三区 | 欧美一二三专区 | 国产白浆在线观看 | 午夜91视频| 美女福利视频一区二区 | 国产精品18久久久久久首页狼 | 特级毛片在线免费观看 | 激情五月婷婷丁香 | 在线视频精品 | 91福利影院在线观看 | 婷婷成人亚洲综合国产xv88 | 日韩欧美在线播放 | 992tv在线观看网站 | 欧美一区二区精美视频 | 99色精品视频 | 精品久久久久久久久久久久久久久久 | 久久丝袜视频 | 精品欧美一区二区在线观看 | 成 人 黄 色 视频 免费观看 | 日韩av看片 | 成人三级网站在线观看 | 婷婷亚洲综合 | 99久久夜色精品国产亚洲 | 伊在线视频 | 99免费| 9999毛片| 天天操夜夜爱 | 国产一区免费观看 | 亚洲手机av| 不卡的av电影在线观看 | 天天做天天爱天天爽综合网 | 亚洲乱码国产乱码精品天美传媒 | 久久99免费视频 | 日日碰夜夜爽 | 欧美一区三区四区 | 亚洲精品在线观看的 | 国产一区久久久 | 亚洲妇女av | 中文字幕日韩有码 | 国产精品美女久久久久久2018 | av3级在线 | 国产黄色在线网站 | 91一区啪爱嗯打偷拍欧美 | 国产一区二区三区免费在线观看 | 天天干,天天操,天天射 | 国产精品久久久久久影院 | 91在线精品观看 | 欧美激情综合五月色丁香 | 九九久久久久99精品 | 久久激情网站 | 欧美日韩高清免费 | 中文字幕一区在线 | 黄色一级免费电影 | 欧美日韩国产精品久久 | 三级黄色a | www.天天干 | 一区二区三区在线播放 | 国模一区二区三区四区 | 午夜视频免费播放 | 免费a网 | 日日夜夜草 | 精品999在线观看 | 国产黄色精品在线 | 国产福利91精品 | 草久电影| 色婷婷国产在线 | 麻豆传媒一区二区 | 激情五月婷婷 | 欧美精品视 | 亚洲乱码精品 | 在线播放精品一区二区三区 | 麻豆网站免费观看 | 精品视频久久 | 偷拍福利视频一区二区三区 | 在线播放一区二区三区 | 黄色片亚洲 | 亚洲精品国产成人 | 免费精品人在线二线三线 | 国产成人综合在线观看 | 亚洲综合五月 | 免费亚洲一区二区 | 午夜精品久久久久久久99热影院 | 日韩免费电影在线观看 | 日韩高清免费无专码区 | 中文字幕免费看 | 日韩电影在线观看一区二区 | 麻豆视频在线 | 亚洲精品在线国产 | 国产伦精品一区二区三区高清 | 免费看片亚洲 | 国产精品一区二区三区在线播放 | 91精品免费| 亚洲国产精品电影在线观看 | 99热在线看 | 91精品少妇偷拍99 | 黄网在线免费观看 | 久久这里精品视频 | 亚洲成年片 | 91精品国产欧美一区二区成人 | 国外成人在线视频网站 | 免费看成年人 | 国产97视频 | 中文字幕在线观看资源 | 欧美日韩不卡在线 | 免费在线国产 | 久久亚洲成人网 | 国产69精品久久99不卡的观看体验 | 99热这里精品 | 亚洲男人天堂a | 亚洲综合射 | 久综合网 | 久久国产精品网站 | 国产精品第72页 | 亚洲在线a | 亚洲三级在线免费观看 | 国产精品国产三级国产aⅴ入口 | 五月亚洲综合 | 欧美久久久久久久久久 | 丁香五月亚洲综合在线 | 美女国产精品 | 免费日韩 精品中文字幕视频在线 | 99婷婷狠狠成为人免费视频 | 欧美亚洲成人免费 | 国产中文字幕视频在线 | 正在播放 国产精品 | 日韩欧美视频一区二区三区 | av在线电影免费观看 | 亚洲综合色视频在线观看 | 日韩久久在线 | 国产视频在线观看一区二区 | 天天射天天射 | 国产精品免费在线播放 | 天天操 夜夜操 | 最近中文字幕大全中文字幕免费 | 亚洲视频在线观看网站 | 在线观看岛国 | 国产精品嫩草影视久久久 | 日韩免费电影在线观看 | 99久久精品国产亚洲 | 久久国产精品免费一区二区三区 | 国产日韩欧美在线观看 | 国内精品久久久久久久久久清纯 | 精品久久一区 | 国产极品尤物在线 | 天天干中文字幕 | 国产精品igao视频网网址 | 日韩高清一区二区 | 欧美一二三视频 | 91精品免费在线观看 | 天天天在线综合网 | 成人黄色小说网 | 欧美人交a欧美精品 | 麻豆久久久久久久 | 九色琪琪久久综合网天天 | 久久色视频 | 97精品国自产拍在线观看 | 青青射 | 天天干,天天射,天天操,天天摸 | 少妇bbbb搡bbbb搡bbbb | 国产91精品久久久久久 | 一区二区三区四区不卡 | 在线超碰av | 日韩av在线不卡 | 亚洲成aⅴ人片久久青草影院 | 草樱av| 2019中文字幕网站 | 久久不卡视频 | 国内揄拍国内精品 | 国产精品a成v人在线播放 | 久久精品国产一区 | 91伊人久久大香线蕉蜜芽人口 | www.99av| av丝袜在线 | 国产精品久久久久久久久免费 | 久久久久美女 | 成人午夜剧场在线观看 | 在线一区观看 | 91成人精品 | 日韩中文字 | 黄色一级性片 | 国产 日韩 在线 亚洲 字幕 中文 | 人人爽爽人人 | 丁香六月婷婷综合 | 草久久av | 国产精品精品久久久久久 | 日韩高清一 | 精品国产一区二区三区噜噜噜 | 在线观看视频精品 | 亚洲精品五月天 | 久久九九精品 | 天堂va在线观看 | 国产又粗又猛又爽又黄的视频先 | 国产黄在线播放 | 狠狠色综合网站久久久久久久 | 在线观看免费国产小视频 | 日韩一二区在线观看 | 国产色久 | 中文字幕 成人 | 日韩婷婷 | 久二影院 | av福利电影 | 91九色视频在线播放 | 黄色福利网站 | 欧美激情在线网站 | 亚洲激情校园春色 | 中文不卡视频 | 亚洲天堂免费视频 | 久久久久久久久久久久久久免费看 | 天天色天天操天天爽 | 亚洲精品乱码 | 91精选在线| 蜜臀久久99静品久久久久久 | 亚洲人av免费网站 | 婷婷中文字幕在线观看 | 日韩av一区二区在线 | 91精品久久久久久久久久久久久 | 国产精品专区在线 | 韩日电影在线观看 | 日日碰夜夜爽 | 91久久精品一区二区三区 | 亚洲一区二区视频在线播放 | 免费日韩av片 | 久久久综合精品 | 97视频人人免费看 | 国产一区二区久久精品 | 成片免费观看视频大全 | 亚洲无吗av | 中文字幕免费在线看 | 欧美性超爽 | 欧美一级片在线播放 | 国产在线一卡 | 国产亚洲精品久久久久久网站 | 国产精品美乳一区二区免费 | 国产精品无av码在线观看 | 日韩欧美国产视频 | 久久九九影视网 | 在线小视频 | 亚洲成人av一区 | 亚洲国产片 | 亚洲乱码在线观看 | 久久久高清视频 | 亚一亚二国产专区 | 高清不卡一区二区在线 | 性色va | 一区二区三区免费在线观看视频 | 国产不卡免费av | 在线天堂日本 | 伊人久久精品久久亚洲一区 | 91精品国产电影 | 视频三区在线 | 国产成人99久久亚洲综合精品 | 久久中文字幕视频 | 国产精品 9999 | 在线观看黄色大片 | 中文字幕欧美日韩va免费视频 | 在线亚洲小视频 | 国产视频在线播放 | 免费视频99 | 91福利视频一区 | 欧美日韩另类在线 | 91一区啪爱嗯打偷拍欧美 | 天天干天天干天天干 | 三级免费黄色 | 91成人在线视频观看 | 黄污视频网站大全 | 久久久久黄色 | 天天色天天色天天色 | 欧美久久久久久久久久久久久 | 成人视屏免费看 | 日本久久久久久科技有限公司 | 国产在线国偷精品产拍免费yy | 精品国产电影一区二区 | 中文字幕国产 | 九九热久久免费视频 | 在线观看中文字幕dvd播放 | 日韩精品中文字幕在线不卡尤物 | 操操日日 | 欧美激情视频免费看 | 肉色欧美久久久久久久免费看 | 国产美腿白丝袜足在线av | 黄色h在线观看 | 激情综合交| 免费福利视频导航 | 精品女同一区二区三区在线观看 | 欧美日韩不卡在线观看 | 麻豆视频免费网站 | 国产精品网址在线观看 | 国产亚洲久一区二区 | 日本天天操 | 久久撸在线视频 | 亚洲美女在线一区 | 国产高清第一页 | 日本久久久久 | 天天搞夜夜骑 | 91成人久久 | 五月婷婷在线视频 | 四虎影视成人精品 | 九九有精品| 欧美日韩另类视频 | 91丨九色丨高潮丰满 | 国产成人一区二 | 人人擦 | 精品久久美女 | 日韩中文字幕第一页 | 干狠狠| 日韩性网站 | a v在线视频 | 在线 国产 亚洲 欧美 | 国产精品成人一区二区 | 久久国产精品免费一区 | 久久国产精品久久w女人spa | 日韩视频免费 | 国产婷婷一区二区 | 天天草天天干天天 | 亚洲精品高清在线 | 91看成人 | 九月婷婷人人澡人人添人人爽 | 亚洲va在线va天堂va偷拍 | av片子在线观看 | 亚洲国产美女精品久久久久∴ | 日韩手机视频 | 日韩最新av | 热久久这里只有精品 | 免费高清在线观看成人 | 国产精品久久嫩一区二区免费 | 麻豆一区在线观看 | 中文在线天堂资源 | 成人久久免费视频 | 国产资源av | av黄色在线| 在线免费看片 | 香蕉在线视频播放网站 | 亚洲激情 | 亚洲精品网址在线观看 | 日韩视频免费 | 免费中午字幕无吗 | 99久久99久国产黄毛片 | 午夜.dj高清免费观看视频 | 日韩大片免费在线观看 | 少妇bbr搡bbb搡bbb | 四虎成人网 | avcom在线 | 亚洲美女在线国产 | 就操操久久 | 久久99久久99精品免观看软件 | 国产精品地址 | 国产精品video爽爽爽爽 | 日韩剧情 | 8x成人免费视频 | www.91成人 | 亚洲国内精品在线 | 国产精品6| 日韩av一区二区三区在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 久久久久国产精品厨房 | 久久成人精品电影 | 超碰97国产精品人人cao | 免费成人在线观看视频 | 亚洲最大成人免费网站 | 狠狠色丁香婷综合久久 | 91av视频在线播放 | 国产99自拍| 天天激情站| 中文字幕精品三级久久久 | 日本二区三区在线 | 99成人精品 | 国产亚洲视频在线 | 久久久九九 | 亚洲婷婷综合色高清在线 | 丁香六月久久综合狠狠色 | 天天干天天操天天射 | 天天操天天射天天爱 | 在线观看一级视频 | 超碰人人超 | 国产精品男女 | 免费黄色小网站 | 91精品婷婷国产综合久久蝌蚪 | 亚洲jizzjizz日本少妇 | 国产在线更新 | 国产在线欧美日韩 | 波多野结衣动态图 | 国产精品12345 | 在线观看深夜福利 | 日本公妇在线观看高清 | 国产中文字幕91 | 久草com | 国产97视频在线 | 免费在线看成人av | 黄色一级大片免费看 | 日日夜夜精品网站 | 久久99九九99精品 | 蜜臀一区二区三区精品免费视频 | 欧美日韩国产综合网 | 91香蕉视频 | 97在线观看视频 | 91成人久久 | a资源在线 | 久久久人人人 | 韩国av免费观看 | 91 在线视频 | 成年人黄色av | 色婷婷亚洲 | 国产成人av电影在线 | 四虎成人免费影院 | 狠狠狠狠狠狠狠干 | av在线播放网址 | 久久国产系列 | 亚洲一片黄 | 成人精品国产 | 国产区精品视频 | 免费在线看成人av | 免费看黄色小说的网站 | 黄色视屏在线免费观看 | 国内久久久久久 | 免费影视大全推荐 | 99视频在线免费看 | 免费黄色a网站 | 亚洲aaa级 | av免费网页 | 免费h精品视频在线播放 | 国产精品国产三级在线专区 | 亚洲作爱视频 | 久久视屏网 | 欧美久草在线 | 国产资源网 | 91精品视频在线免费观看 | 国产一级二级三级在线观看 | 在线免费黄色毛片 | 欧美在线观看视频免费 | 中文字幕 成人 | 久久伊人91| 亚洲人成在线观看 | 亚洲精品乱码久久久一二三 | 一级一片免费观看 | 国产黄色片久久 | 亚洲午夜精品在线观看 | 一区二区精 | 精品人妖videos欧美人妖 | 国产黄色片免费观看 | 天天操综合网站 | 毛片视频电影 | 国产中文字幕一区二区 | 日韩精品视频在线免费观看 | 国产美女网站视频 | 国内精品国产三级国产aⅴ久 | 国产又粗又猛又黄 | a天堂最新版中文在线地址 久久99久久精品国产 | 色就是色综合 | 中文字幕在线一区二区三区 | 国产色a在线观看 | 午夜精品av在线 | 在线观看亚洲成人 | 免费在线一区二区 | 国产五月天婷婷 | 99热在线国产精品 | 色夜视频 | 一级久久精品 | 波多野结衣视频一区 | 日日日操操 | 国产日韩欧美中文 | 2000xxx影视| 欧美成人在线网站 | 色偷偷88888欧美精品久久 | 国产中文字幕在线视频 | 亚洲欧美在线综合 | 中国一级片免费看 | 91精品1区 | 日韩电影中文字幕在线观看 | 在线精品国产 | 麻豆视频国产在线观看 | 91在线视频免费 | 久久久在线视频 | 中文字幕在线不卡国产视频 | 日韩中文字幕一区 | 在线亚洲高清视频 | 国产精品麻豆视频 | 久草在线电影网 | 国产日韩在线播放 | av日韩精品 | 亚洲精品一区二区三区在线观看 | 国产精品久久久久久模特 | 在线岛国av | 日本性动态图 | 国产亚洲va综合人人澡精品 | 国产美女在线免费观看 | 国产色在线观看 | 国产日韩欧美视频在线观看 | 久久精品aaa | 美女免费电影 | 蜜桃视频日韩 | 久久免费视频3 | 五月天综合在线 | 91福利试看 | 日本黄色免费观看 | av天天草 | 在线黄色av电影 | www.五月天激情 | 中文字幕之中文字幕 | 国产成人精品一二三区 | 欧美少妇xx | 欧美激情h | 插综合网 | 久久久久久毛片 | 欧美一区二区视频97 | 91在线视频导航 | 日韩啪啪小视频 | 日日干夜夜骑 | av电影 一区二区 | 久久视频在线视频 | 在线99热| 国产精品99久久久久久宅男 | 午夜三级理论 | 久久无码精品一区二区三区 | 最近免费在线观看 | 国产日韩精品视频 | 99精品视频免费看 | 日韩一级网站 | 超碰最新网址 | 久久久99精品免费观看乱色 | 9999激情| 日韩网站在线看片你懂的 | 欧美专区国产专区 | 网站在线观看你们懂的 | 视频1区2区 | 婷婷六月综合网 | 亚洲国产精品第一区二区 | 精品国产一区二区三区久久影院 | 欧美激情xxxx | 久久久久久久免费观看 | 国产精品美女久久久网av | 色狠狠操 | 日日爽天天操 | 国产码电影 | 手机在线黄色网址 | 一本—道久久a久久精品蜜桃 | 欧美精品久久久久久久久老牛影院 | 成人作爱视频 | 久热超碰| 精品国产激情 | 久久夜夜操 | 91热爆在线观看 | a天堂在线看| 夜夜躁天天躁很躁波 | 亚洲精品一区二区三区高潮 | 久久露脸国产精品 | 国产婷婷色 | 亚洲综合色播 | www天天干 | 91激情在线视频 | 狠狠狠狠狠狠狠干 | 国产精品美女久久久久久免费 | 中文在线字幕免费观 | 亚洲婷婷丁香 | 日韩免费不卡av | 一区二区三区影院 | 99精品成人 | 日韩欧美久久 | 最新久久久 | 日韩99热| 日日爱999 | 四虎永久视频 | 国产黄影院色大全免费 | 国产精品自产拍在线观看桃花 | 国产精品18久久久久久首页狼 | 97色婷婷成人综合在线观看 | 色综合天 | 99视频在线观看一区三区 | 国产黄在线 |