Squid代理服務(wù)的配置與應(yīng)用第十一章_第1頁
Squid代理服務(wù)的配置與應(yīng)用第十一章_第2頁
Squid代理服務(wù)的配置與應(yīng)用第十一章_第3頁
Squid代理服務(wù)的配置與應(yīng)用第十一章_第4頁
Squid代理服務(wù)的配置與應(yīng)用第十一章_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Squid代理服務(wù)的配置與應(yīng)用第十一章第11章Squid代理服務(wù)的配置與應(yīng)用本章導(dǎo)讀代理服務(wù)概述Squid簡介Squid代理服務(wù)的安裝Squid代理服務(wù)的基本配置初始化Squid訪問控制應(yīng)用實例第11章Squid代理服務(wù)的配置與應(yīng)用啟動和停止代理服務(wù)透明代理的實現(xiàn)用戶身份認(rèn)證使用MySAR實現(xiàn)Squid流量管理代理客戶端的配置11.1代理服務(wù)概述代理服務(wù)器簡介代理服務(wù)器的原理代理服務(wù)器簡介 代理服務(wù)器是目前網(wǎng)絡(luò)中常見的服務(wù)器之一,它可以提供文件緩存、復(fù)制和地址過濾等服務(wù),充分利用有限的出口帶寬,加快內(nèi)部主機的訪問速度,也可以解決多用戶需要同時訪問外網(wǎng)但公有IP地址不足的問題。同時可以作為一個防火墻,隔離內(nèi)網(wǎng)與外網(wǎng),并且能提供監(jiān)控網(wǎng)絡(luò)和記錄傳輸信息的功能,加強局域網(wǎng)的安全性等。它的主要作用有以下幾點。1.共享網(wǎng)絡(luò)2.加快訪問速度,節(jié)約通信帶寬3.防止內(nèi)部主機受到攻擊4.限制用戶訪問,完善網(wǎng)絡(luò)管理代理服務(wù)器的原理①客戶端A向代理服務(wù)器提出訪問Internet的請求。②代理服務(wù)器接受到請求后,首先與訪問控制列表中的訪問規(guī)則相對照,如果滿足規(guī)則,則在緩存中查找是否存在需要的信息。③如果緩存中存在客戶端A需要的信息,則將信息傳送給客戶端。如果不存在,代理服務(wù)器就代替客戶端向Internet上的主機請求指定的信息。④Internet上的主機將代理服務(wù)器的請求信息發(fā)送到代理服務(wù)器中,同時代理服務(wù)會將信息存入緩存中。⑤代理服務(wù)器將Internet上主機的回應(yīng)信息傳送給客戶端A。⑥客戶端B向代理服務(wù)器提出相同的請求。⑦代理服務(wù)器也首先與訪問控制列表中的訪問規(guī)則相對照。⑧如果滿足規(guī)則,則將緩存中的信息傳送給客戶端B。11.2Squid簡介 Squid是Linux和UNIX平臺下最為流行的高性能應(yīng)用層代理服務(wù)器,它具有權(quán)限管理靈活、性能高和效率快等特點。Squid是一個由眾多在互聯(lián)網(wǎng)上的開發(fā)人員共同努力完成的高性能的代理緩沖服務(wù)器,它的具體開發(fā)是由國家網(wǎng)絡(luò)應(yīng)用研究室(theNationalLaboratoryforAppliedNetworkResearch)的DuaneWessels主持,由NSF出資支持的。 Squid的另一個優(yōu)越性在于它使用訪問控制列表(ACL)和訪問權(quán)限列表(ARL)進(jìn)行權(quán)限管理和內(nèi)容過濾。訪問控制清單和訪問權(quán)限清單通過阻止特定的網(wǎng)絡(luò)連接來減少潛在的Internet非法連接,可以使用這些清單來確保內(nèi)部網(wǎng)的主機無法訪問有威脅的或不適宜的站點。11.3Squid代理服務(wù)的安裝 RedHatEnterpriseLinux5安裝程序默認(rèn)沒有安裝Squid服務(wù),讀者可以使用下面的命令檢查系統(tǒng)是否已經(jīng)安裝了Squid服務(wù)或查看已經(jīng)安裝了何種版本。rpm-qsquid 如果系統(tǒng)還沒有安裝Squid服務(wù),可將RedHatEnterpriseLinux5第2張安裝盤放入光驅(qū),加載光驅(qū)后在光盤的Server目錄下找到Squid的RPM安裝包文件squid-2.6.STABLE6-3.el5.i386.rpm,使用下面的命令安裝Squid。11.4Squid代理服務(wù)的基本配置Squid主配置文件是/etc/squid/squid.conf,最基本的設(shè)置如下。_port:8080cache_mem64MBcache_dirufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquidcache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.log_accessallowall11.4Squid代理服務(wù)的基本配置acl選項的格式如下。acl列表名稱列表類型[-i]列表值列表名稱:用于區(qū)分Squid的各個訪問控制列表,任何兩個訪問控制列表不能用相同的列表名。雖然列表名稱可以隨便定義,但為了避免以后不知道這條列表是干什么用的,應(yīng)盡量使用有意義的名稱,如badurl、clientip和worktime等。列表類型:是可被Squid識別的類別。Squid支持的控制類別很多,可以通過IP地址、主機名、MAC地址和用戶/密碼認(rèn)證等識別用戶,也可以通過域名、域后綴、文件類型、IP地址、端口和URL匹配等控制用戶的訪問,還可以使用時間區(qū)間對用戶進(jìn)行管理-i選項:表示忽略列表值的大小寫,否則Squid是區(qū)分大小寫的。列表值:針對不同的類型,列表值的內(nèi)容是不同的。例如,對于類型為src或dst,列表值的內(nèi)容是某臺主機的IP地址或子網(wǎng)地址;對于類型為time,列表值的內(nèi)容是時間;對于類型為srcdomain和dstdomain,列表值的內(nèi)容是DNS域名。11.4Squid代理服務(wù)的基本配置類型選項命令說明src源IP地址(客戶機IP地址)dst目標(biāo)IP地址(服務(wù)器IP地址)srcdomain源名稱(客戶機所屬的域)dstdomain目標(biāo)名稱(服務(wù)器所屬的域)time一天中的時刻和一周內(nèi)的一天url_regexURL規(guī)則表達(dá)式匹配urlpath_regex:URL-path略去協(xié)議和主機名的URL規(guī)則表達(dá)式匹配proxy_auth通過外部程序進(jìn)行用戶認(rèn)證maxconn單一IP的最大連接數(shù)time時間段,語法為:[星期][時間段]。[星期]:可以使用這些關(guān)鍵字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天)[時間段]:可以表示為10:00-20:0011.4Squid代理服務(wù)的基本配置 Squid會針對客戶HTTP請求檢查_access規(guī)則,定義訪問控制列表后,就使用_access選項根據(jù)訪問控制列表允許或禁止訪問了。該選項的基本格式為:_access[allow|deny]訪問控制列表名稱[allow|deny]:定義允許(allow)或禁止(deny)訪問控制列表定義的內(nèi)容。訪問控制列表名稱:需要_access控制的ACL名稱。11.5初始化Squid1.創(chuàng)建Squid使用硬盤緩沖區(qū)的目錄結(jié)構(gòu)/usr/sbin/squid–z2.設(shè)置Squid錯誤提示信息為中文 在Squid的主配置文件/etc/squid/squid.conf中添加下列語句,并使用命令“/etc/init.d/squidreload”重新載入配置文件error_directory/usr/share/squid/errors/Simplify_Chinese11.6訪問控制應(yīng)用實例11.6訪問控制應(yīng)用實例【例5】禁止用戶訪問域名包含有163的網(wǎng)站。aclbadurl1url_regex-i163_accessdenybadurl1【例6】禁止用戶訪問域名包含有sex關(guān)鍵字的URL。aclbadurl2url_regex-isex_accessdenybadurl2【例7】限制IP地址為00的客戶機并發(fā)最大連接數(shù)為5。aclconn5maxconn5_accessdenyclient1conn1【例8】禁止這個子網(wǎng)里所有的客戶機在周一到周五的9:00到18:00上網(wǎng)。aclworktimetimeMTWHF9:00-18:00_accessdenyclientnet1worktime11.6訪問控制應(yīng)用實例【例9】禁止客戶機下載*.mp3、*.exe、*.zip和*.rar類型的文件。aclbadfile1urlpath_regex-i\.mp3$\.exe$\.zip$\.rar$_accessdenybadfile1【例10】禁止QQ通過Squid代理上網(wǎng)。aclqqurl_regex-itencent_accessdenyqq11.7啟動和停止代理服務(wù)1.啟動代理服務(wù)/etc/init.d/squidstart2.停止代理服務(wù)/etc/init.d/squidstop3.重新啟動代理服務(wù)/etc/init.d/squidrestart4.重新載入配置文件/etc/rc.d/init.d/squidreload11.7啟動和停止代理服務(wù)5.自動啟動代理服務(wù)如果需要讓代理服務(wù)隨系統(tǒng)啟動而自動加載,可以執(zhí)行“ntsysv”命令啟動服務(wù)配置程序,找到“squid”服務(wù),在其前面加上星號(*),然后選擇“確定”即可。11.8透明代理的實現(xiàn)透明代理的簡介配置Squid配置iptables透明代理的簡介

透明代理是NAT和代理的完美結(jié)合,之所以稱為透明,是因為在這種工作方式下用戶感覺不到代理服務(wù)器的存在,不需要在瀏覽器或其他客戶端工具(如網(wǎng)絡(luò)快車等)中作任何設(shè)置,客戶機只需要將默認(rèn)網(wǎng)關(guān)設(shè)置為Linux服務(wù)器的IP地址即可。當(dāng)客戶機訪問Internet,請求數(shù)據(jù)包經(jīng)過Linux服務(wù)器轉(zhuǎn)發(fā)時,Linux服務(wù)器上的iptables將客戶機的HTTP請求重定向到Squid代理服務(wù)器,由代理服務(wù)器代替客戶機訪問外部信息資源,再將獲取的數(shù)據(jù)傳回客戶機。配置SquidSquid主配置文件/etc/squid/squid.conf:_port:8080cache_mem64MBcache_dirufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquidcache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.log#以下是實現(xiàn)透明代理的4條語句的關(guān)鍵,缺一不可d_accel_hostvirtuald_accel_port80d_accel_with_proxyond_accel_uses_host_headeron_accessallowall配置iptables iptables在這里所起的作用是端口重定向,執(zhí)行以下命令將所有由eth0接口進(jìn)入的Web服務(wù)80端口的請求直接轉(zhuǎn)發(fā)到8080端口,由Squid處理。iptables-tnat-APREROUTING-ieth0-ptcp-mtcp--dport80-jREDIRECT--to-ports808011.9用戶身份認(rèn)證配置squid.conf文件建立賬戶文件測試用戶認(rèn)證配置squid.conf文件Squid主配置文件/etc/squid/squid.conf:_port:8080cache_mem64MBcache_dirufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquidcache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.log#以下是實現(xiàn)用戶身份認(rèn)證的語句auth_parambasicprogram/usr/lib/squid/ncsa_auth/etc/squid/passwdauth_parambasicchildren5auth_parambasiccredentialsttl2hoursauth_parambasicrealmExle'sSquidproxy-cachingaclauth_userproxy_authREQUIRED_accessallowauth_user建立賬戶文件 為了建立供用戶認(rèn)證使用的賬戶文件,可以利用Apache的htpasswd程序生成賬戶文件/etc/squid/passwd,該賬戶文件每行包含一個用戶的信息,即用戶名和經(jīng)過加密后的密碼。htpasswd-c/etc/squid/passwdlinden測試用戶認(rèn)證①在服務(wù)器中使用命令“/etc/init.d/squidrestart”重啟Squid服務(wù)。②在客戶端的Web瀏覽器中配置好代理服務(wù)器的IP地址和端口號。③訪問任意網(wǎng)站,這時Web瀏覽器會彈出輸入用戶名和口令的對話框。④輸入正確的用戶名和口令,就能連上Internet了。⑤如果用戶名和口令不正確,則出現(xiàn)“網(wǎng)絡(luò)緩存服務(wù)器拒絕訪問”的錯誤信息。11.10使用MySAR實現(xiàn)Squid流量管理安裝MySAR設(shè)置MySAR編寫管理程序安裝MySAR①安裝Apache和PHP解釋器,具體安裝和設(shè)置方法見第7章。②安裝MySQL和PHP-MySQL支持包,并設(shè)置MySQL管理員root的密碼為“mysar”,具體安裝設(shè)置方法常見第12章。,下載最新版的MySAR安裝軟件。安裝MySAR安裝MySAR 使用Web瀏覽器訪問“://服務(wù)器IP地址或域名/mysar/”,打開MySAR的安裝向?qū)А0惭bMySAR安裝MySAR安裝MySAR安裝MySAR安裝MySAR安裝MySAR安裝MySAR設(shè)置MySAR①編輯文件/usr/local/mysar/bin/mysar-importer.php(該文件的作用是讀取Squid的日志文件/var/log/squid/access.log,并對日志進(jìn)行分析,然后將相應(yīng)的數(shù)據(jù)寫入數(shù)據(jù)庫中),找到語句“debug('Recordreceived:',40,__FILE__,__LINE__);”在該語句前插入如下語句。$test_head=preg_split("[//]",$record[6]);if(substr($test_head[1],0,7)=="192.168"){continue1;}②編輯vi/usr/local/mysar/etc/mysar.cron文件,將文件中的“root”刪除,并在文件末尾添加語句“011***squid-krotate”,使Squid的日志每天循環(huán)保存一次(由于MySAR是通過分析Squid日志的方法來統(tǒng)計流量的,因此如果日志文件太大就會降低MySAR的運行效率,同時也可能使統(tǒng)計出錯)。然后再使用命令“crontab/usr/local/mysar/etc/mysar.cron”設(shè)置自動作業(yè)。③使用Web瀏覽器訪問“://服務(wù)器IP地址或域名/mysar/”,打開MySAR查看用戶使用Squid代理服務(wù)器訪問外網(wǎng)的情況。編寫管理程序1.編寫C程序用于執(zhí)行iptables命令#include<stdio.h>#include<getopt.h>#include<unistd.h>intmain(intargc,char*argv[]){intoptch;while((optch=getopt(argc,argv,"ad"))!=-1)/*分析命令行參數(shù)*/ {switch(optch) { case'd': execlp("iptables","iptables","-I","INPUT","-s",argv[2],"-j","DROP",(char*)0); break;/*設(shè)置iptable規(guī)則,禁止用戶訪問服務(wù)器*/ case'a':execlp("iptables","iptables","-D","INPUT","-s",argv[2],"-j","DROP",(char*)0); break;/*刪除iptable規(guī)則*/ default: printf("error\n");} }} 編寫完成后以.c為后綴名保存文件(本例文件名為uip.c),然后再分別使用命令gcc–cuip.c和makeuip.o編譯連接程序。 使用命令chmodu+suip修改程序uip的執(zhí)行權(quán)限,使PHP程序能夠調(diào)用它。編寫管理程序2.編寫PHP程序mysar.php用于管理代理用戶<?php$link=mysql_connect("localhost","root","ygjalarm");//mysql_connect(服務(wù)器名,mysql用戶名,mysql密碼)if(!$link){die('Couldnotconnect:'.mysql_error());exit;}mysql_select_db("mysar",$link);$result=mysql_query("selecttraffic.ip,hostnames.hostname,sum(traffic.bytes)fromtraffic,hostnameswheretraffic.ip=hostnames.ipandhostnames.usr_iptables=0groupbytraffic.ip");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論