linux代理服務(wù)器
*,*,單擊此處編輯母版標(biāo)題樣式,*,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),代理服務(wù)器,本章目標(biāo),代理服務(wù)器的作用,代理服務(wù)器的工作流程,代理服務(wù)器的類(lèi)型,配置代理服務(wù)器,概述,代理服務(wù)器可以代表其它計(jì)算機(jī)傳送數(shù)據(jù)包或信息,.,作用,共享網(wǎng)絡(luò),不受公有,IP,的限制,加快訪速度,防止內(nèi)部主機(jī)受到攻擊,限制用戶訪問(wèn),完善網(wǎng)絡(luò)管理,ACL,訪問(wèn)控制列表,ARL,訪問(wèn)權(quán)限列表,什么時(shí)候使用代理,SQUID,Squid,是,Linux,下一個(gè)緩存,Internet,數(shù)據(jù)的代理服務(wù)器軟件,其接收用戶的下載申請(qǐng),并自動(dòng)處理所下載的數(shù)據(jù)。,Squid,可以代理,HTTP,、,FTP,、,GOPHER,、,SSL,和,WAIS,協(xié)議,暫不能代理,POP3,、,NNTP,等協(xié)議。,Squid,可以工作在很多操作系統(tǒng)中,如,AIX,、,Unix,、,FreeBSD,、,HP-UX,、,Irix,、,Linux,、,NetBSD,、,Nextstep,、,SCO,、,Solaris,、,O,S/2,等。,Squid,能夠緩存任何數(shù)據(jù)嗎?不是的。象緩存信用卡帳號(hào)、可以遠(yuǎn)方執(zhí)行的,scripts,、經(jīng)常變換的主頁(yè)等是不合適的也是不安全的。,工作流程,配置,SQUID,安裝包,/etc/squid/squid.conf,squid,配置文件,http_port 192.168.0.11:3128,cache_mem 300MB,cache_dir ufs/var/spool/squid 1000 16 255,cache_effective_user squid,cache_access_log /var/log/squid/access.log,cache_log/var/log/squid/cache.log,visible_hostname,cache_mgr ,ACL,語(yǔ)法,:,acl aclname acltype string,acltype,src/dst srcdomain/dstdomain,time url_regex urlpath_regex,portproto,proxy_authmaxconn,ACL,規(guī)則,acltype,可以是任一個(gè)在,ACL,中定義的名稱(chēng);,任何兩個(gè),ACL,條目不能用相同的名字;,每個(gè),ACL,由列表值組成,當(dāng)進(jìn)行匹配檢測(cè)的時(shí)候,多個(gè)值由邏輯或運(yùn)算連接,換句話說(shuō),任一,ACL,元素的值被匹配,則這個(gè),ACL,元素即被匹配;,并不是所有的,ACL,元素都能使用訪問(wèn)列表中的全部類(lèi)型;,不同的,ACL,元素寫(xiě)在不同行中,,Squid,將這些元素組合在一個(gè)列表中。,ARL,http_access,語(yǔ)法,http_access allow/deny !aclname,ARL,規(guī)則,根據(jù)訪問(wèn)控制列表允許或禁止某一類(lèi)用戶訪問(wèn)。如果某個(gè)訪問(wèn)沒(méi)有相符合的項(xiàng)目,則默認(rèn)為應(yīng)用最后一條項(xiàng)目的“非”。比如最后一條為允許,則默認(rèn)就是禁止。通常應(yīng)該把最后的條目設(shè)為“,deny all”,或“,allow all”,來(lái)避免安全性隱患。,ARL,規(guī)則,這些規(guī)則按照它們的排列順序進(jìn)行匹配檢測(cè),一旦檢測(cè)到匹配的規(guī)則,匹配檢測(cè)就立即結(jié)束;,訪問(wèn)列表可以由多條規(guī)則組成;,如果沒(méi)有任何規(guī)則與訪問(wèn)請(qǐng)求匹配,默認(rèn)動(dòng)作將與列表中最后一條規(guī)則對(duì)應(yīng);,一個(gè)訪問(wèn)條目中的所有元素將用邏輯與運(yùn)算連接,如下所示:,http_access Action,聲明,1 AND,聲明,2 AND,聲明,OR,http_access Action,聲明,3,多個(gè),http_access,聲明間用或運(yùn)算連接,但每個(gè)訪問(wèn)條目的元素間用與運(yùn)算連接;,表中的規(guī)則總是遵循由上而下的順序。,禁止緩存,acl QUERY urlpath_regex-i cgi-bin?.asp.php.jsp.cgi,acl denyssl urlpath_regex-i https:,cache deny QUERY,cache deny denyssl,高級(jí)控制,acl advance arp 00:01:02:1f:2c:3e,acl sina dstdomain ,acl qq dstdomain ,acl conn5 maxconn 5,驗(yàn)證,控制所有登錄并檢查訪問(wèn)用戶的合法性,.,讓合法用戶以合法的權(quán)限訪問(wèn)網(wǎng)絡(luò)資源,外部認(rèn)證程序,NCSA 2.5,版本開(kāi)始,,NCSA,認(rèn)證包含在了,basic,中,而非以前單獨(dú)的認(rèn)證模塊,PAM,LDAP,SMB,SASL,配置驗(yàn)證,squid.conf,auth_param basic program/usr/lib/squid/ncsa_auth/var/squid/etc/password,該選項(xiàng)指出了認(rèn)證方式(,basic),、認(rèn)證程序(,ncsa_auth,)和 密碼文件,auth_param basic children 5,指定認(rèn)證程序的進(jìn)程數(shù),auth_param basic realm My Proxy Caching Domain,瀏覽器顯示輸入用戶,/,密碼對(duì)話框時(shí)的領(lǐng)域內(nèi)容,auth_param basic credentialsttl 2 hours,基本的認(rèn)證有效時(shí)間,acl normal proxy_auth REQUIRED,http_access normal auth_user,普通用戶需要通過(guò)認(rèn)證才能訪問(wèn),Internet,建立帳號(hào)文件,htpasswd-C/var/lib/squid/ncsa_auth pg,測(cè)試驗(yàn)證,squid restart,客戶端上配置瀏覽器,訪問(wèn)任意網(wǎng)站,彈出驗(yàn)證框,方案一,192.168.0.1-10,為高級(jí)用戶,上網(wǎng)沒(méi)有限制,192.168.0.11-192.168.0.200,為普通用戶,普通用戶要求上班時(shí)間,9,:,00-18,:,00,可以上網(wǎng),其余時(shí)間不能上網(wǎng),普通用戶不能下載,exe mp3 wma rm,等結(jié)尾的文件。,普通用戶要求通過(guò)身份驗(yàn)證,高級(jí)不用驗(yàn)證。,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 media_url urlpath_regex-i.mp3$.rm$.wma$.exe$,acl nettime time MTWHF 9:00-12:00 13:30-18:00,acl all src 0.0.0.0/0,http_access deny baduser,http_access deny normal media_url,http_access deny nomal !netime,http_access allow advance,http_access allow normal,http_access allow all,透明代理,squid,主配文件:,/etc/squid/squid.conf,http_port 3128 transparent/,啟用透明模式,啟用,ipforward,vim/etc/sysctl.conf,配置防火墻,iptables -t nat -A PREROUTING-s 192.168.0.0/24-p tcp -dport=80,-j REDIECT -to-ports 3128,service iptables save,客戶端要正確配置,DNS,網(wǎng)關(guān),SQUID,反向代理,Squid,反向代理單個(gè)后臺(tái),WEB,服務(wù)器,WEB,服務(wù)器和反向代理服務(wù)器是兩臺(tái)單獨(dú)的機(jī)器(一般的反向代理應(yīng)該有兩塊網(wǎng)卡分別連接了內(nèi)外部網(wǎng)絡(luò)),如果,WEB,服務(wù)器和反向代理服務(wù)器是同一臺(tái)機(jī)器,Squid,反向代理多個(gè)后臺(tái),WEB,服務(wù)器,一臺(tái),WEB&,一臺(tái)代理,配置代理監(jiān)聽(tīng),80,httpd_port 80 vport vhost,配置,WEB,監(jiān)聽(tīng),httpd_accel_host ip WEB,的,IP,httpd_accel_port 80,加速服務(wù)的端口,如果后臺(tái),apache,為,80,端口,這里就為,80,端口,cache_peer webip parent 80 0 no-query originserver,WEB,自緩沖加速,數(shù)據(jù)走向:訪問(wèn)者,=192.168.1.1:80=127.0.0.1:80http_port 80 vport vhost,httpd_accel_host 127.0.0.1,httpd_accel_port 80,測(cè)試,把,http,服務(wù)器給停了,通過(guò),SQUID,緩存可以看到頁(yè)面,cache_peer 127.0.0.1 parent 80 0 no-query originserver,一臺(tái)代理,&,多,WEB,#cache_peer hostname type http-port icp-port options,cache_peer 192.168.1.2 parent 81 0 originserver weight=1 name=web1,cache_peer 192.168.1.3 parent 82 0 originserver weight=1 name=web2,cache_peer 192.168.1.4 parent 83 0 originserver weight=1 name=web3,-,#cache_peer_domain cache-host domain domain.,cache_peer_domain web1 ,cache_peer_domain web2 ,cache_peer_domain web3 ,-,cache_peer_access web1 allow ok,cache_peer_access web2 allow ok,cache_peer_access web3 allow ok,#cache_peer_access cache-host allow|deny!aclname.,總結(jié),代理原理,代理配置,