所有設(shè)置完成后,關(guān)鍵且重要的任務(wù)是訪問(wèn)控制。Squid支持的管理方式很多,使用起來(lái)也非常簡(jiǎn)單(這也是有人寧愿使用不做任何緩存的Squid,也不愿意單獨(dú)使用iptables的原因)。Squid可以通過(guò)IP地址、主機(jī)名、MAC地址、用戶(hù)/密碼認(rèn)證等識(shí)別用戶(hù),也可以通過(guò)域名、域后綴、文件類(lèi)型、IP地址、端口、URL匹配等控制用戶(hù)的訪問(wèn),還可以使用時(shí)間區(qū)間對(duì)用戶(hù)進(jìn)行管理,所以訪問(wèn)控制是Squid配置中的重點(diǎn)。Squid用ACL(Access Control List,訪問(wèn)控制列表)對(duì)訪問(wèn)類(lèi)型進(jìn)行劃分,用http_access deny 或allow進(jìn)行控制。根據(jù)需求首先定義兩組用戶(hù)advance和normal,還有代表所有未指明的用戶(hù)組all及不允許上網(wǎng)的baduser,配置代碼如下:
acl advance 192.168.0.2-192.168.0.10/32 acl normal src 192.168.0.11-192.168.0.200/32 acl baduser src 192.168.0.100/32 acl baddst dst [url]www.soocol.com[/url] acl all src 0.0.0.0/0
http_access deny baduser http_access allow advance http_access allow normal
可以看出,ACL的基本格式如下:
acl 列表名稱(chēng) 控制方式 控制目標(biāo)
比如acl all src 0.0.0.0/0,其名稱(chēng)是all,控制方式是src源IP地址,控制目標(biāo)是0.0.0.0/0的IP地址,即所有未定義的用戶(hù)。出于安全考慮,總是在最后禁止這個(gè)列表。