Squid代理服務(wù)器
創(chuàng)新互聯(lián)專注于海拉爾網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供海拉爾營銷型網(wǎng)站建設(shè),海拉爾網(wǎng)站制作、海拉爾網(wǎng)頁設(shè)計、海拉爾網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造海拉爾網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供海拉爾網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Squid代理服務(wù)器工作在應(yīng)用層,主要提供緩存加速,應(yīng)用層過濾控制等功能。
Squid代理的工作機(jī)制:
當(dāng)客戶機(jī)通過代理來請求web頁面時,指定的代理服務(wù)器會先檢查自己的緩存,如果緩存中有數(shù)據(jù)則直接反饋給客戶機(jī),如果沒有則由代理服務(wù)器向internet發(fā)送訪問請求,然后返回web頁面時,先緩存起來,然后反饋給客戶機(jī)。
Squid代理的基本類型:
傳統(tǒng)代理:普通的代理方式,客戶機(jī)需手動指定代理地址和工作端口
透明代理:客戶機(jī)不需要指定代理地址和工作端口,而是通過默認(rèn)路由,防火墻策略將web訪問重定向交給代理服務(wù)器處理
搭建squid代理服務(wù)器:
v 編譯安裝squid
# tar xzvf squid-3.4.6.tar.gz
# cd squid-3.4.6
#./configure --prefix=/usr/local/squid --sysconfdir=/usr/local/squid/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnregex
注釋:
--prefix:指定安裝路徑
--sysconfdir:指定配置文件路徑
--enable-arp-acl :可以在規(guī)則中設(shè)置直接通過客戶端MAC進(jìn)行管理,防止客戶端使用IP欺騙
--enable-linux-netfilter:可以使用iptables的內(nèi)核過濾
--enable-linux-tproxy:支持透明模式
--enable-async-io:異步I/O,提升存儲性能,指定緩存空間大小
--enable-err-language:錯誤信息顯示的語言
--enable-underscore:允許URL中有下劃線
--enable-poll:使用Poll模式,提升性能
--enable-gnregex:使用GNU正則表達(dá)式
#make && make install
v 創(chuàng)建命令鏈接文件,使命令方便調(diào)用
#ln -s /usr/local/squid/sbin/* /usr/local/sbin/
v 創(chuàng)建用戶和組,授予安裝目錄相關(guān)權(quán)限
#useradd -M -s /sbin/nologin squid
#chown -R squid.squid /usr/local/squid/var
#vim /usr/local/squid/etc/squid.conf
visible_hostname ren
coredump_dir /usr/local/squid/var/cache/squid
cache_dir cache_effective_user squid
cache_effective_group squid ufs /usr/local/squid/var/cache/squid 100 16 256
cache_effective_user squid
cache_effective_group squid
Cache mem 512MB
http_port 1.1.1.0/24:3128 transparent
注釋:
visible_hostname:給一個主機(jī)名
coredump_dir:表示緩存的文件位置
cache_effective_group squid ufs:指定緩存文件的大小
cache_effective_user :指定運(yùn)行squid程序緩存的用戶
cache_effective_group squid:指定運(yùn)行squid程序緩存的組
Cache mem :在物理內(nèi)存中可用的值
http_port 1.1.1.0/24:3128 transparent :設(shè)置該網(wǎng)段讓其支持透明代理
v 初始化squid代理
#squid -k parse
# squid -z
v 啟動squid代理
#squid
代理實(shí)現(xiàn)方式:
傳統(tǒng)代理:在客戶機(jī)的瀏覽器中輸入要代理的地址端口
透明代理:修改配置文件讓其支持透明代理,然后通過iptables防火墻將規(guī)則重定向到代理服務(wù)器中即可,動作:REDIRECT
例:#iptables -t nat -A PREROUTING -i eth2 -s 1.1.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
#iptables -t nat -A PREROUTING -i eth2 -s 1.1.1.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
#unset HTTP_PROXY HTTPS_PROXY
ACL訪問控制
我們可以通過squid定義自己的訪問控制列表,格式:acl列表名稱 列表類型 列表內(nèi)容
常用的訪問控制列表里類型
列表類型 | 列表內(nèi)容 | 含義 |
Src | 192.168.1.1 192.168.1.0/24 192.168.1.1-192.168.1.10 | 基于源IP地址,網(wǎng)段,IP地址范圍過濾 |
Dst | 1.1.1.1 1.1.1.0/24 www.a.com | 基于目標(biāo)IP地址,網(wǎng)段,主機(jī)名過濾 |
Port | 80 443 8080 21 20 | 基于目標(biāo)端口過濾 |
Dstdomain | .qq.com | 基于目標(biāo)域過濾 |
Time | MTWHF 8:30-17:30 | 基于星期,M表示星期一,T表示星期二,W表示星期三,H表示星期四,F(xiàn)表示星期五 |
Maxconm | 20 | 每個客戶機(jī)的并發(fā)連接數(shù) |
Url_regex | Url_regex -i ^a:// | 目標(biāo)資源的URL地址,-i表示忽略大小寫 |
Urlpath_regex | Urlpath_regex -i \.mp3$ | 目標(biāo)資源的整個URL路徑,-i表示忽略大小寫 |
例:#vim /etc/squid.conf
Acl xiao url_regex -i ^http://
http_access deny MYLAN xiao表示只要是http://開頭的URL都拒絕訪問