版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章Squid代理服務(wù)的配置與應(yīng)用本章導(dǎo)讀代理服務(wù)概述Squid簡(jiǎn)介Squid代理服務(wù)的安裝Squid代理服務(wù)的基本配置初始化Squid訪問(wèn)控制應(yīng)用實(shí)例第11章Squid代理服務(wù)的配置與應(yīng)用啟動(dòng)和停止代理服務(wù)透明代理的實(shí)現(xiàn)用戶身份認(rèn)證使用MySAR實(shí)現(xiàn)Squid流量管理代理客戶端的配置11.1代理服務(wù)概述代理服務(wù)器簡(jiǎn)介代理服務(wù)器的原理代理服務(wù)器簡(jiǎn)介 代理服務(wù)器是目前網(wǎng)絡(luò)中常見(jiàn)的服務(wù)器之一,它可以提供文件緩存、復(fù)制和地址過(guò)濾等服務(wù),充分利用有限的出口帶寬,加快內(nèi)部主機(jī)的訪問(wèn)速度,也可以解決多用戶需要同時(shí)訪問(wèn)外網(wǎng)但公有IP地址不足的問(wèn)題。同時(shí)可以作為一個(gè)防火墻,隔離內(nèi)網(wǎng)與外網(wǎng),并且能提供監(jiān)控網(wǎng)絡(luò)和記錄傳輸信息的功能,加強(qiáng)局域網(wǎng)的安全性等。它的主要作用有以下幾點(diǎn)。1.共享網(wǎng)絡(luò)2.加快訪問(wèn)速度,節(jié)約通信帶寬3.防止內(nèi)部主機(jī)受到攻擊4.限制用戶訪問(wèn),完善網(wǎng)絡(luò)管理代理服務(wù)器的原理①客戶端A向代理服務(wù)器提出訪問(wèn)Internet的請(qǐng)求。②代理服務(wù)器接受到請(qǐng)求后,首先與訪問(wèn)控制列表中的訪問(wèn)規(guī)則相對(duì)照,如果滿足規(guī)則,則在緩存中查找是否存在需要的信息。③如果緩存中存在客戶端A需要的信息,則將信息傳送給客戶端。如果不存在,代理服務(wù)器就代替客戶端向Internet上的主機(jī)請(qǐng)求指定的信息。④Internet上的主機(jī)將代理服務(wù)器的請(qǐng)求信息發(fā)送到代理服務(wù)器中,同時(shí)代理服務(wù)會(huì)將信息存入緩存中。⑤代理服務(wù)器將Internet上主機(jī)的回應(yīng)信息傳送給客戶端A。⑥客戶端B向代理服務(wù)器提出相同的請(qǐng)求。⑦代理服務(wù)器也首先與訪問(wèn)控制列表中的訪問(wèn)規(guī)則相對(duì)照。⑧如果滿足規(guī)則,則將緩存中的信息傳送給客戶端B。11.2Squid簡(jiǎn)介
Squid是Linux和UNIX平臺(tái)下最為流行的高性能免費(fèi)應(yīng)用層代理服務(wù)器,它具有權(quán)限管理靈活、性能高和效率快等特點(diǎn)。Squid是一個(gè)由眾多在互聯(lián)網(wǎng)上的開(kāi)發(fā)人員共同努力完成的高性能的代理緩沖服務(wù)器,它的具體開(kāi)發(fā)是由國(guó)家網(wǎng)絡(luò)應(yīng)用研究室(theNationalLaboratoryforAppliedNetworkResearch)的DuaneWessels主持,由NSF出資支持的。
Squid的另一個(gè)優(yōu)越性在于它使用訪問(wèn)控制列表(ACL)和訪問(wèn)權(quán)限列表(ARL)進(jìn)行權(quán)限管理和內(nèi)容過(guò)濾。訪問(wèn)控制清單和訪問(wèn)權(quán)限清單通過(guò)阻止特定的網(wǎng)絡(luò)連接來(lái)減少潛在的Internet非法連接,可以使用這些清單來(lái)確保內(nèi)部網(wǎng)的主機(jī)無(wú)法訪問(wèn)有威脅的或不適宜的站點(diǎn)。
11.3Squid代理服務(wù)的安裝
RedHatEnterpriseLinux5安裝程序默認(rèn)沒(méi)有安裝Squid服務(wù),讀者可以使用下面的命令檢查系統(tǒng)是否已經(jīng)安裝了Squid服務(wù)或查看已經(jīng)安裝了何種版本。rpm-qsquid
如果系統(tǒng)還沒(méi)有安裝Squid服務(wù),可將RedHatEnterpriseLinux5第2張安裝盤放入光驅(qū),加載光驅(qū)后在光盤的Server目錄下找到Squid的RPM安裝包文件squid-2.6.STABLE6-3.el5.i386.rpm,使用下面的命令安裝Squid。rpm-ivh/mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm11.4Squid代理服務(wù)的基本配置Squid主配置文件是/etc/squid/squid.conf
,最基本的設(shè)置如下。http_port:8080cache_mem64MBcache_dir
ufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquiddns_nameservers01cache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.logvisible_hostname
cache_mgrlindenstar@163.comaclallsrc/http_accessallowall11.4Squid代理服務(wù)的基本配置acl選項(xiàng)的格式如下。acl列表名稱列表類型[-i]列表值列表名稱:用于區(qū)分Squid的各個(gè)訪問(wèn)控制列表,任何兩個(gè)訪問(wèn)控制列表不能用相同的列表名。雖然列表名稱可以隨便定義,但為了避免以后不知道這條列表是干什么用的,應(yīng)盡量使用有意義的名稱,如badurl、clientip和worktime等。列表類型:是可被Squid識(shí)別的類別。Squid支持的控制類別很多,可以通過(guò)IP地址、主機(jī)名、MAC地址和用戶/密碼認(rèn)證等識(shí)別用戶,也可以通過(guò)域名、域后綴、文件類型、IP地址、端口和URL匹配等控制用戶的訪問(wèn),還可以使用時(shí)間區(qū)間對(duì)用戶進(jìn)行管理
-i選項(xiàng):表示忽略列表值的大小寫,否則Squid是區(qū)分大小寫的。列表值:針對(duì)不同的類型,列表值的內(nèi)容是不同的。例如,對(duì)于類型為src或dst,列表值的內(nèi)容是某臺(tái)主機(jī)的IP地址或子網(wǎng)地址;對(duì)于類型為time,列表值的內(nèi)容是時(shí)間;對(duì)于類型為srcdomain和dstdomain,列表值的內(nèi)容是DNS域名。11.4Squid代理服務(wù)的基本配置類型選項(xiàng)命令說(shuō)明src源IP地址(客戶機(jī)IP地址)dst目標(biāo)IP地址(服務(wù)器IP地址)srcdomain源名稱(客戶機(jī)所屬的域)dstdomain目標(biāo)名稱(服務(wù)器所屬的域)time一天中的時(shí)刻和一周內(nèi)的一天url_regexURL規(guī)則表達(dá)式匹配urlpath_regex:URL-path略去協(xié)議和主機(jī)名的URL規(guī)則表達(dá)式匹配proxy_auth通過(guò)外部程序進(jìn)行用戶認(rèn)證maxconn單一IP的最大連接數(shù)time時(shí)間段,語(yǔ)法為:[星期][時(shí)間段]。[星期]:可以使用這些關(guān)鍵字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天)[時(shí)間段]:可以表示為10:00-20:0011.4Squid代理服務(wù)的基本配置
Squid會(huì)針對(duì)客戶HTTP請(qǐng)求檢查http_access規(guī)則,定義訪問(wèn)控制列表后,就使用http_access選項(xiàng)根據(jù)訪問(wèn)控制列表允許或禁止訪問(wèn)了。該選項(xiàng)的基本格式為:http_access[allow|deny]訪問(wèn)控制列表名稱
[allow|deny]:定義允許(allow)或禁止(deny)訪問(wèn)控制列表定義的內(nèi)容。
訪問(wèn)控制列表名稱:需要http_access控制的ACL名稱。11.5初始化Squid1.創(chuàng)建Squid使用硬盤緩沖區(qū)的目錄結(jié)構(gòu)/usr/sbin/squid–z2.設(shè)置Squid錯(cuò)誤提示信息為中文 在Squid的主配置文件/etc/squid/squid.conf中添加下列語(yǔ)句,并使用命令“/etc/init.d/squidreload”重新載入配置文件error_directory/usr/share/squid/errors/Simplify_Chinese11.6訪問(wèn)控制應(yīng)用實(shí)例【例1】禁止IP地址為00的客戶機(jī)上網(wǎng)。aclbadclientip1src00http_accessdenybadclientip1【例2】禁止這個(gè)子網(wǎng)里所有的客戶機(jī)上網(wǎng)。aclbadclientnet1src/http_accessdenybadclientnet1【例3】禁止用戶訪問(wèn)IP地址為8的網(wǎng)站。aclbadsrvip1dst8http_accessdenybadsrvip1【例4】禁止用戶訪問(wèn)域名為的網(wǎng)站。aclbaddomain1dstdomain-ihttp_accessdenybaddomain111.6訪問(wèn)控制應(yīng)用實(shí)例【例5】禁止用戶訪問(wèn)域名包含有163.com的網(wǎng)站。aclbadurl1url_regex-i163.comhttp_accessdenybadurl1【例6】禁止用戶訪問(wèn)域名包含有sex關(guān)鍵字的URL。aclbadurl2url_regex-isexhttp_accessdenybadurl2【例7】限制IP地址為00的客戶機(jī)并發(fā)最大連接數(shù)為5。aclclientip1src00aclconn5maxconn5http_accessdenyclient1conn1【例8】禁止這個(gè)子網(wǎng)里所有的客戶機(jī)在周一到周五的9:00到18:00上網(wǎng)。aclclientnet1src/acl
worktimetimeMTWHF9:00-18:00http_accessdenyclientnet1worktime11.6訪問(wèn)控制應(yīng)用實(shí)例【例9】禁止客戶機(jī)下載*.mp3、*.exe、*.zip和*.rar類型的文件。aclbadfile1urlpath_regex-i\.mp3$\.exe$\.zip$\.rar$http_accessdenybadfile1【例10】禁止QQ通過(guò)Squid代理上網(wǎng)。acl
url_regex-ihttp_accessdenyqq11.7啟動(dòng)和停止代理服務(wù)1.啟動(dòng)代理服務(wù)/etc/init.d/squidstart2.停止代理服務(wù)/etc/init.d/squidstop3.重新啟動(dòng)代理服務(wù)/etc/init.d/squidrestart4.重新載入配置文件/etc/rc.d/init.d/squidreload11.7啟動(dòng)和停止代理服務(wù)
5.自動(dòng)啟動(dòng)代理服務(wù)如果需要讓代理服務(wù)隨系統(tǒng)啟動(dòng)而自動(dòng)加載,可以執(zhí)行“ntsysv”命令啟動(dòng)服務(wù)配置程序,找到“squid”服務(wù),在其前面加上星號(hào)(*),然后選擇“確定”即可。11.8透明代理的實(shí)現(xiàn)透明代理的簡(jiǎn)介配置Squid配置iptables透明代理的簡(jiǎn)介
透明代理是NAT和代理的完美結(jié)合,之所以稱為透明,是因?yàn)樵谶@種工作方式下用戶感覺(jué)不到代理服務(wù)器的存在,不需要在瀏覽器或其他客戶端工具(如網(wǎng)絡(luò)快車等)中作任何設(shè)置,客戶機(jī)只需要將默認(rèn)網(wǎng)關(guān)設(shè)置為L(zhǎng)inux服務(wù)器的IP地址即可。當(dāng)客戶機(jī)訪問(wèn)Internet,請(qǐng)求數(shù)據(jù)包經(jīng)過(guò)Linux服務(wù)器轉(zhuǎn)發(fā)時(shí),Linux服務(wù)器上的iptables將客戶機(jī)的HTTP請(qǐng)求重定向到Squid代理服務(wù)器,由代理服務(wù)器代替客戶機(jī)訪問(wèn)外部信息資源,再將獲取的數(shù)據(jù)傳回客戶機(jī)。配置SquidSquid主配置文件/etc/squid/squid.conf
:http_port:8080cache_mem64MBcache_dir
ufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquiddns_nameservers01cache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.logvisible_hostname
cache_mgrlindenstar@163.com#以下是實(shí)現(xiàn)透明代理的4條語(yǔ)句的關(guān)鍵,缺一不可httpd_accel_hostvirtualhttpd_accel_port80httpd_accel_with_proxyonhttpd_accel_uses_host_headeronaclallsrc/http_accessallowall配置iptables
iptables在這里所起的作用是端口重定向,執(zhí)行以下命令將所有由eth0接口進(jìn)入的Web服務(wù)80端口的請(qǐng)求直接轉(zhuǎn)發(fā)到8080端口,由Squid處理。iptables-tnat-APREROUTING-ieth0-ptcp-mtcp--dport80-jREDIRECT--to-ports808011.9用戶身份認(rèn)證配置squid.conf文件建立賬戶文件測(cè)試用戶認(rèn)證配置squid.conf文件Squid主配置文件/etc/squid/squid.conf:http_port:8080cache_mem64MBcache_dir
ufs/var/spool/squid409616256cache_effective_usersquidcache_effective_groupsquiddns_nameservers01cache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logcache_store_log/var/log/squid/store.logvisible_hostname
cache_mgrlindenstar@163.comaclallsrc/#以下是實(shí)現(xiàn)用戶身份認(rèn)證的語(yǔ)句auth_parambasicprogram/usr/lib/squid/ncsa_auth/etc/squid/passwdauth_parambasicchildren5auth_parambasiccredentialsttl2hoursauth_parambasicrealmE'sSquidproxy-cachingacl
auth_user
proxy_authREQUIREDhttp_accessallowauth_user
建立賬戶文件 為了建立供用戶認(rèn)證使用的賬戶文件,可以利用Apache的htpasswd程序生成賬戶文件/etc/squid/passwd,該賬戶文件每行包含一個(gè)用戶的信息,即用戶名和經(jīng)過(guò)加密后的密碼。htpasswd-c/etc/squid/passwdlinden測(cè)試用戶認(rèn)證①在服務(wù)器中使用命令“/etc/init.d/squidrestart”重啟Squid服務(wù)。②在客戶端的Web瀏覽器中配置好代理服務(wù)器的IP地址和端口號(hào)。③訪問(wèn)任意網(wǎng)站,這時(shí)Web瀏覽器會(huì)彈出輸入用戶名和口令的對(duì)話框。④輸入正確的用戶名和口令,就能連上Internet了。⑤如果用戶名和口令不正確,則出現(xiàn)“網(wǎng)絡(luò)緩存服務(wù)器拒絕訪問(wèn)”的錯(cuò)誤信息。11.10使用MySAR實(shí)現(xiàn)Squid流量管理安裝MySAR設(shè)置MySAR編寫管理程序安裝MySAR
①安裝Apache和PHP解釋器,具體安裝和設(shè)置方法見(jiàn)第7章。②安裝MySQL和PHP-MySQL支持包,并設(shè)置MySQL管理員root的密碼為“mysar”,具體安裝設(shè)置方法常見(jiàn)第12章。③訪問(wèn)http://giannis.stoilis.gr/software/mysar,下載最新版的MySAR安裝軟件。安裝MySAR④使用命令“tar
zxvf
mysar-2.1.1.tar.gz-C/usr/local”將其解壓到/usr/local目錄中。⑤編輯/usr/local/mysar/www/install/index.php安裝向?qū)募业秸Z(yǔ)句“hostnamevarchar(255)NOTNULLdefault‘’,”,在該語(yǔ)句后插入語(yǔ)句“usr_iptablestinyint(1)unsignedNOTNULLdefault‘0’,”,用于在hostnames表中創(chuàng)建usr_iptables字段,以便判斷用戶是否已被限制訪問(wèn)服務(wù)器。⑥編輯Apache主配置文件/etc/httpd/conf/httpd.conf,在配置文件的末尾添加語(yǔ)句“Alias/mysar/"/usr/local/mysar/www/"”設(shè)置虛擬目錄,使虛擬目錄指向MySAR目錄中的www子目錄。⑦使用下列命令重新啟動(dòng)Apache和MySQL服務(wù)。/etc/init.d/httpdrestart/etc/init.d/mysqldstart安裝MySAR 使用Web瀏覽器訪問(wèn)“http://服務(wù)器IP地址或域名/mysar/”,打開(kāi)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,并對(duì)日志進(jìn)行分析,然后將相應(yīng)的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)中),找到語(yǔ)句“debug('Recordreceived:',40,__FILE__,__LINE__);”在該語(yǔ)句前插入如下語(yǔ)句。$test_head=preg_split("[//]",$record[6]);if(substr($test_head[1],0,7)=="192.168"){continue1;}②編輯vi/usr/local/mysar/etc/mysar.cron文件,將文件中的“root”刪除,并在文件末尾添加語(yǔ)句“011***squid-krotate”,使Squid的日志每天循環(huán)保存一次(由于MySAR是通過(guò)分析Squid日志的方法來(lái)統(tǒng)計(jì)流量的,因此如果日志文件太大就會(huì)降低MySAR的運(yùn)行效率,同時(shí)也可能使統(tǒng)計(jì)出錯(cuò))。然后再使用命令“crontab/usr/local/mysar/etc/mysar.cron”設(shè)置自動(dòng)作業(yè)。③使用Web瀏覽器訪問(wèn)“http://服務(wù)器IP地址或域名/mysar/”,打開(kāi)MySAR查看用戶使用Squid代理服務(wù)器訪問(wèn)外網(wǎng)的情況。編寫管理程序1.編寫C程序用于執(zhí)行iptables命令#include<stdio.h>#include<getopt.h>#include<unistd.h>int
main(int
argc,char*argv[]){int
optch;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èn)服務(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編譯連接程序。 使用命令chmod
u+s
uip修改程序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("select
traffic.ip,hostnames.hostname,sum(traffic.bytes)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 舞蹈藝術(shù)之魅力
- 人事部在企業(yè)戰(zhàn)略中的角色計(jì)劃
- 感恩父母與愛(ài)同行的演講稿5篇
- 2024年員工三級(jí)安全培訓(xùn)考試題(滿分必刷)
- 2023-2024年項(xiàng)目安全培訓(xùn)考試題帶答案(奪分金卷)
- 社團(tuán)運(yùn)營(yíng)與成員發(fā)展
- 《本科心律失?!氛n件
- 教授能量轉(zhuǎn)換守恒
- 北師大版八年級(jí)下冊(cè)數(shù)學(xué)期末測(cè)試題
- 印刷設(shè)備智能化升級(jí)-第1篇-洞察分析
- 人教版地理八年級(jí)上冊(cè)第三節(jié)《民族》教學(xué)設(shè)計(jì)4
- 12D401-3 爆炸危險(xiǎn)環(huán)境電氣線路和電氣設(shè)備安裝
- 黑龍江省2024年醫(yī)學(xué)專升本考試真題
- DL∕T 796-2012 風(fēng)力發(fā)電場(chǎng)安全規(guī)程
- 《四川省醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則實(shí)施細(xì)則》考核題
- 養(yǎng)老機(jī)構(gòu)備案書(模板)
- 漢語(yǔ)基礎(chǔ)#-形考任務(wù)三-國(guó)開(kāi)(HUB)-參考資料
- 幼兒園游戲案例分析-奇思妙想玩輪胎
- 2023年6月上海高考英語(yǔ)卷試題真題答案解析(含作文范文+聽(tīng)力原文)
- 2024年越南重油(HFO)發(fā)電機(jī)行業(yè)現(xiàn)狀及前景分析2024-2030
- 遼寧省沈陽(yáng)市五校2023-2024學(xué)年高一1月期末考試生物試題(解析版)
評(píng)論
0/150
提交評(píng)論