Linux -- 代理服务器(Squid Server)的配置与应用2
代理客戶端的配置
本節(jié)分別以Linux和Windows系統(tǒng)環(huán)境下典型的Web瀏覽器Firefox和IE為例,為大家講述代理客戶端的配置工作過程。
16.5.1? Firefox代理設(shè)置
在Linux環(huán)境下通常都使用Firefox作為Web瀏覽器。下面我們就以在Red Hat Enterprise Linux 5 操作系統(tǒng)中的Firefox V1.5.0.9為例,講解如何進行代理客戶端的配置工作。
在Firefox瀏覽器中,選擇"編輯"菜單中的"首選項"子菜單,如圖16-24所示。
在彈出的"Firfox首選項"對話框中,在"常規(guī)"屬性頁中單擊"連接設(shè)置"按鈕,如圖16-25所示。
在彈出的"連接設(shè)置"對話框中,我們選中"手動代理配置"選項,然后在"HTTP代理"文本框中輸入正確的代理服務(wù)器的IP地址和端口號。如果還想通過代理服務(wù)器使用SSL、FTP、Gopher和SOCKS協(xié)議,則可以選中"為所有協(xié)議使用相同代理"復(fù)選框,最后單擊"確定"按鈕完成代理客戶端的配置工作,如圖16-26所示。
?
?
IE代理設(shè)置
在Windows環(huán)境下通常都使用IE作為默認的Web瀏覽器。下面就以配置Windows XP系統(tǒng)的IE 7.0為例,講解如何進行代理客戶端的配置工作。
打開IE瀏覽器,選擇"工具"菜單中的"Internet選項"子菜單,如圖16-27所示。
在彈出的"Internet選項"對話框中,選擇"連接"屬性頁,單擊"局域網(wǎng)設(shè)置"按鈕,如圖16-28所示。
?
在彈出的"局域網(wǎng)(LAN)設(shè)置"對話框中,首先勾選"為LAN使用代理服務(wù)器(這些設(shè)置不會應(yīng)用于撥號或×××連接)"復(fù)選框,然后在"地址"文本框中輸入正確的代理服務(wù)器的IP地址,在"端口"文本框中輸入正確的代理服務(wù)器的端口號。如果還想通過代理服務(wù)器使用SSL、FTP、Gopher和SOCKS等協(xié)議,則可以單擊"高級"按鈕,如圖16-29所示。
在彈出的"代理服務(wù)器設(shè)置"對話框中,我們首先去掉已經(jīng)勾選的"對所有協(xié)議均使用相同的代理服務(wù)器"復(fù)選框,然后根據(jù)各個協(xié)議代理服務(wù)器的配置情況,正確地填寫相應(yīng)的代理服務(wù)器地址和訪問端口,最后單擊"確定"按鈕完成代理客戶端的配置工作。
?
訪問控制應(yīng)用實例
通過前幾節(jié)的學(xué)習(xí),我們應(yīng)該對Squid代理服務(wù)從理論上有了一定的認識,接下來通過應(yīng)用實例的學(xué)習(xí),希望能夠使大家對Squid代理服務(wù)有一個更為深入的理解。在學(xué)習(xí)實例之前有必要強調(diào)一下,Squid訪問控制列表是順序讀取的,應(yīng)將配置文件squid.conf中的以下兩個規(guī)則始終放置在acl語句的最后,否則這兩條規(guī)則會覆蓋其他的acl語句。
acl?all?src?0.0.0.0/0.0.0.0http_access?deny?all
同樣的道理,當(dāng)配置文件中配置多條訪問控制規(guī)則時,必須注意其順序,避免規(guī)則相互覆蓋或屏蔽。另外,每次修改完配置文件后,若想使修改后的規(guī)則生效就必須重新載入配置文件,即運行命令"/etc/rc.d/init.d/squidreload"。
【實例一】禁止IP地址為192.168.1.102的客戶機上網(wǎng)。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?badclientip?src?192.168.1.102http_access?deny?badclientip
該規(guī)則定義了一條名為badclientip的acl,acl類型為src源IP地址方式,列表值為192.168.1.102,然后使用http_access參數(shù)禁止badclientip規(guī)則。也就是在IP地址為192.168.1.102的客戶機通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,該終端客戶訪問Internet資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息,如圖16-31所示。
?
【實例二】禁止IP地址屬于192.168.1.0這個子網(wǎng)的所有客戶機上網(wǎng)。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?badclientsubnet?src?192.168.1.0/24http_access?deny?badclientsubnet
該規(guī)則定義了一條名為badclientsubnet的acl,acl類型為src源IP地址方式,列表值為192.168.1.0/24,然后使用http_access參數(shù)禁止badclientsubnet規(guī)則。也就是在IP地址為192.168.1.0子網(wǎng)的客戶機通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,當(dāng)前定義子網(wǎng)的終端客戶訪問Internet資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。
【實例三】禁止所有終端用戶訪問IP地址為64.233.189.99(www.google.com)的網(wǎng)站。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?badserverip?dst?64.233.189.99http_access?deny?badserverip
該規(guī)則定義了一條名為badserverip的acl,acl類型為dst目標(biāo)IP地址方式,列表值為64.233.189.99,然后使用http_access參數(shù)禁止badserverip規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,當(dāng)前所有終端客戶訪問IP地址為64.233.189.99的服務(wù)器資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。
【實例四】禁止所有終端用戶訪問域名為www.google.com的網(wǎng)站。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?baddomain?dstdomain?-i?http_access?deny?dstdomain
該規(guī)則定義了一條名為baddomain的acl,acl類型為dstdomain目標(biāo)域名方式,列表值為www.google.com,然后使用http_access參數(shù)禁止baddomain規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,當(dāng)前所有終端客戶訪問域名為www.google.com的服務(wù)器的Web資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。但需要大家注意的是,這個限制規(guī)則僅對google.com域的WWW服務(wù)進行了限制,而對于Mail服務(wù)等并未限制。
【實例五】禁止所有終端用戶訪問域名包含為google.com的網(wǎng)站。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?badurl?url_regex?-i?google.comhttp_access?deny?badurl
該規(guī)則定義了一條名為badurl的acl,acl類型為url_regex URL規(guī)則表達式匹配方式,列表值為google.com,然后使用http_access參數(shù)禁止badurl規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,當(dāng)前所有終端客戶訪問服務(wù)器的URL中含有google.com的所有資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。例如,www.abc.com/google/test.index、www.google.com、mail.google.com等URL均被攔截。
【實例六】限制IP地址為192.168.1.102的客戶機并發(fā)連接的最大連接數(shù)為5。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?clientip?src?192.168.1.102acl?clientmaxconn?maxconn?5
http_access?deny?clientip?clientmaxconn
上述規(guī)則定義了一條名為clientip的acl,該acl類型為src源地址方式,列表值為192.168.1.102;還定義了一條名為clientmaxconn的acl,該acl類型為maxconn單一IP的最大連接數(shù)方式,列表值為5,然后使用http_access參數(shù)禁止clientip、clientmaxconn規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,終端用戶通過IP地址為192.168.1.102的客戶機同時訪問Internet資源的線程數(shù)不能超過5。這樣可以防止特定客戶開太多線程而占用服務(wù)器資源和帶寬。
【實例七】禁止客戶機IP地址在192.168.2.0子網(wǎng)的所有終端客戶在星期一到星期五的9:00到18:00訪問Internet資源。
我們可以定義如下幾條規(guī)則實現(xiàn)上述要求:
acl?clientnet?src?192.168.2.0/24acl?worktime?time?MTWHF?9:00-18:00
http_access?deny?clientnet?worktime
上述規(guī)則定義了一條名為clientnet的acl,該acl類型為src源地址方式,列表值為192.168.2.0/24;還定義了一條名為worktime的acl,該acl類型為time時間段方式,列表值為MTWHF 9:00-18:00,然后使用http_access參數(shù)禁止clientnet、worktime規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,終端用戶通過IP地址屬于192.168.2.0網(wǎng)段的所有客戶機不能在星期一到星期五的9:00到18:00期間訪問Internet資源。
【實例八】禁止終端用戶在任何客戶機上下載文件擴展名為mp3、exe、zip和rar類型的文件。
我們可以定義如下規(guī)則實現(xiàn)上述要求:
acl?badfile?urlpath_regex?-i?\\.mp3$?\\.exe$?\\.zip$?\\.rar$http_access?deny?badfile
該規(guī)則定義了一條名為badfile的acl,該acl類型為urlpath_regex略去協(xié)議和主機名的URL規(guī)則表達式匹配方式,列表值為\\.mp3$ \\.exe$ \\.zip$ \\.rar$;同時使用-i參數(shù)是為了忽略列表值大小寫的檢查,然后使用http_access參數(shù)禁止badfile規(guī)則。也就是在終端用戶通過Squid代理服務(wù)上網(wǎng)的模式下,由于Squid服務(wù)器增加了如上規(guī)則,所有終端客戶訪問服務(wù)器的URL中以mp3、exe、zip和rar結(jié)尾的所有資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。例如,http://www.abc.com/google/test.mp3、http://www.cqit.edu.cn/cs/123.zip、http://www.cqit.edu.cn/cs/siyanzhidao.?rar等URL均被攔截。
?Squid日志管理
網(wǎng)絡(luò)流量日志分析對于網(wǎng)絡(luò)管理員來說非常重要。通過系統(tǒng)記載的流量日志,管理員可以清楚地看到用戶對網(wǎng)絡(luò)服務(wù)器的使用情況,能夠從中挖掘及發(fā)現(xiàn)網(wǎng)絡(luò)中可能存在的安全問題。
在Linux下有許多日志及流量分析軟件。Webalizer是一個高效、免費的Web服務(wù)器日志分析程序,其官方站點為http://www.webalizer.org/,如圖16-32所示。Webalizer分析結(jié)果以HTML文件格式保存,從而可以很方便地通過Web服務(wù)器進行瀏覽。Internet上的很多站點都使用Webalizer進行Web服務(wù)器日志分析。本節(jié)將以對Red Hat Enterprise Linux 5下的代理服務(wù)器Squid的流量日志分析為例,詳細地介紹如何使用該軟件進行流量分析。
?
Webalizer具有以下一些特性:
用C語言編寫的程序,所以該系統(tǒng)具有很高的運行效率。在主頻為1.6GHz的機器上,Webalizer每秒鐘可以分析70000條記錄,也就是說,分析一個200MB大小的日志文件只需要30秒。
Webalizer支持標(biāo)準(zhǔn)的一般日志文件格式(Common LogfileFormat);除此之外,也支持幾種NCSA的組合日志格式(CombinedLogfile Format)的變種,從而可以統(tǒng)計客戶情況及操作系統(tǒng)類型?,F(xiàn)在Webalizer已經(jīng)可以支持wu-ftpd/proftpd xferlog日志格式及Squid代理服務(wù)器日志文件格式了。
支持命令行配置及配置文件。
支持多種語言,也可以自己進行本地化工作。
支持多種平臺,比如UNIX、Linux、NT、OS/2和Mac OS等。
安裝Webalizer
1.源代碼安裝方式
Webalizer的安裝過程如下:
訪問Webalizer的下載地址http://www.webalizer.org/download.html,如圖16-33所示,單擊"The Completesource distribution"欄目中的"Tar/Gziparchive"超鏈接下載"webalizer-2.20-01-src.tgz"安裝文件,當(dāng)前最新的穩(wěn)定版本為2.20-01,文件大小為525KB。
RPM包安裝方式
以RPM包方式安裝Webalizer的過程如下:
可以使用下面的命令檢查系統(tǒng)是否已經(jīng)安裝了Webalizer,如圖16-34所示。
?
[root@localhost?~]#rpm?-qa|grep?webalizer
如果當(dāng)前系統(tǒng)還未安裝Webalizer,則需要在Red HatEnterprise Linux 5的安裝盤中找到并安裝以下RPM包文件:
?
webalizer-2.01_10-11.i386.rpm??(位于第2張安裝盤中)
要安裝上述RPM包文件,可以將Red HatEnterprise Linux 5的安裝盤放入光驅(qū),加載光驅(qū)后在光盤的Server目錄下找到相應(yīng)的RPM安裝包文件,然后使用rpm -ivh命令安裝。
?
[root@localhost?~]#?rpm?-ivh?webalizer-2.01_10-11.i386.rpm
配置Webalizer
我們可以通過命令行配置Webalizer,也可以通過配置文件進行配置。下面將重點介紹使用配置文件進行配置,該方法使用形式比較直觀,使用比較普遍。
Webalizer的配置文件的路徑是"/etc/webalizer.conf",它有一個對應(yīng)的模板文件/etc/webalizer.conf.sample。在一般情況下,該配置文件的默認參數(shù)配置都能滿足一定的應(yīng)用需要,可以直接使用。接下來以實例的方式給大家介紹如何配置該文件。
使用vi編輯Webalizer配置文件。
Squid日志管理知識
Squid是Linux下一個緩存Internet數(shù)據(jù)的代理服務(wù)器軟件,其接收用戶的下載申請,并自動處理所下載的數(shù)據(jù)。在網(wǎng)絡(luò)環(huán)境下,本地網(wǎng)絡(luò)管理員經(jīng)常可以通過Squid來代理訪問互聯(lián)網(wǎng)上的很多資源,因而對其進行日志審核和管理具有重大意義。
Squid日志管理的功能比較強大。通過查看相關(guān)日志文件,用戶可以實時、準(zhǔn)確地了解代理服務(wù)器的訪問記錄、Cache的存儲狀況、Cache的訪問記錄等許多有用的信息,從而高效地對代理服務(wù)器進行管理。
Squid最重要的日志文件就是訪問日志,其訪問路徑為"/var/log/squid/access.log"。該日志文件記錄了客戶使用代理服務(wù)器的許多有用信息,包括使用時間、請求的內(nèi)容、客戶端信息等。該文件的格式如下:
time?eclapsed?remotehost?code/status?bytes?
method?URL?rfc931?peerstatus?/peerhost?type
下面給出了實際應(yīng)用中的一段真實的訪問日志,只取出了其中的一部分。
?
#cd?/var/log/squid
#cat?access.log
1119263842.955?195?192.168.10.3?TCP_MISS/200
1286?GET?.?cn/sina/ae/ad_src/
popup/pops1.html??-?DIRECT/218.30.108.19?text/html
1119263843.241?286?192.168.10.3?TCP_MISS/200?
44689?GET?.?cn/200506/15/
21135_300x250.GIF?-?DIRECT/218.30.108.18?p_w_picpath/gif
以第一條日志記錄為例,其各個字段的含義如下:
?
客戶訪問代理服務(wù)器的時間為1119263842.955毫秒;處理緩存所花費的時間為195毫秒;客戶端的IP地址為192.168.10.3,為內(nèi)網(wǎng)地址;結(jié)果信息編碼/狀態(tài)信息編碼為TCP_MISS/200;緩存字節(jié)數(shù)為1286;HTTP請求方法為GET;訪問的目的地址的URL為:http://ad4.sina.com.cn/sina/ae/ad_src/popup/pops1.html;緩存級別/目的IP地址為:DIRECT/218.30.108.19;緩存對象類型為text/html;rfc913暫未使用,用"-"表示。
?
在上述的10個字段當(dāng)中,結(jié)果信息編碼及狀態(tài)信息編碼比較重要,其表明了代理服務(wù)器對于客戶請求的信息的返回結(jié)果,與代理服務(wù)器的Cache命中率及Cache處理過程有直接關(guān)系。該信息能夠真實地反映代理服務(wù)器的Cache的整體性能,具有較大的參考價值。
應(yīng)用Webalizer查看Squid網(wǎng)絡(luò)流量日志
Webalizer可以將大量的Squid日志信息綜合起來進行統(tǒng)計,得出可視化的顯示結(jié)果供網(wǎng)絡(luò)管理員或者網(wǎng)絡(luò)用戶進行參考和評價Squid服務(wù)器的使用情況,對于做出相應(yīng)的決策有相當(dāng)?shù)膮⒖純r值。
在使用過程中需要注意:由于該軟件的使用結(jié)果都是通過Web頁面來顯示的,所以與Web服務(wù)器的聯(lián)系比較緊密。下面給出該軟件結(jié)合Squid服務(wù)器的使用示例。在通常情況下,配置好該軟件之后,啟動Web服務(wù)器(只有啟動該服務(wù)器才能通過Web頁面來查看日志統(tǒng)計的詳細情況)和該軟件即可。
?
[root@localhost?~]#?service?httpd?start
[root@localhost?~]#?/usr/sbin/webalizer?-c?/etc/webalizer.conf
啟動Apache服務(wù)及該軟件后,就可以通過瀏覽器來查看Squid代理服務(wù)器的流量分析結(jié)果了。在IE瀏覽器的地址欄中輸入Apache服務(wù)器的地址:http://192.168.1.101/usage,則得到如圖16-35所示的結(jié)果。
?
圖16-35中給出了流量分析的示意圖及一些數(shù)據(jù)說明,可以通過單擊圖中"Summary by Month"表格的"Jul 2005"超鏈接,來顯示更詳細的統(tǒng)計分析數(shù)據(jù)。通過分析和查看這些統(tǒng)計圖表的結(jié)果,用戶可以清楚地知道Squid代理服務(wù)器使用的細節(jié)情況,并可以根據(jù)顯示情況來對服務(wù)器做出適當(dāng)?shù)恼{(diào)整和優(yōu)化。
使用Webalizer還有一個需要注意的問題是:通常并不需要每個用戶都有權(quán)限來查看代理服務(wù)器的流量情況,否則對于系統(tǒng)來說是不安全的。非法用戶為了掩蓋自己非法使用代理服務(wù)器的目的,可以對流量統(tǒng)計情況的結(jié)果進行修改、刪除等操作。所以,我們需要使用訪問控制策略來對上述分析圖表的查看權(quán)限進行控制,可以在Apache的主配置文件/etc/htpd/conf/httpd.conf中進行認證和授權(quán)配置,如下所示:
<?Directory?"/var/www/html/usage">?
//使用基本認證方式?
AuthType?Basic?
//指定認證域名稱?
AuthName?"admin"?
//指定認證口令文件存放的位置?
AuthUserFile?/var/www/passwd/admin?
//授權(quán)給認證口令文件中的所有用戶?
require?valid-user?
<?/Directory>
認證和授權(quán)配置成功后,需要創(chuàng)建認證口令文件及添加用戶。
?
[root@localhost?~]#?mkdir?/var/www/passwd
[root@localhost?~]#?cd?/var/www/passwd
[root@localhost?passwd]#?htpasswd?-C?admin?jackiee
New?password:?
Re-type?new?password:?
Adding?passwor?for?user?jackiee
然后,將口令文件的屬主改為apache,并重新啟動Apache。
[root@localhost?~]#?chown?apache.apache?admin?
[root@localhost?~]#?service?httpd?restart
經(jīng)過上面的配置后,用戶在IE地址欄內(nèi)輸入路徑http://192.168.1.101/usage后,具有認證和授權(quán)的用戶才能通過用戶認證界面,查看Squid代理服務(wù)器的流量分析報表信息。
?
參考:http://book.51cto.com/art/200904/119292.htm?
轉(zhuǎn)載于:https://blog.51cto.com/57388/1554346
總結(jié)
以上是生活随笔為你收集整理的Linux -- 代理服务器(Squid Server)的配置与应用2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 众昂矿业:萤石需求异军突起
- 下一篇: python tornado实战_pyt