搭建安全的LinuxSquid代理服務(wù)器 |
發(fā)布時(shí)間: 2012/8/13 10:28:07 |
代理服務(wù)器的功能是代理網(wǎng)絡(luò)用戶取得網(wǎng)絡(luò)信息,它 是網(wǎng)絡(luò)信息的中轉(zhuǎn)站。隨著代理服務(wù)器的廣泛使用,隨之而來的是一系列的安全問題。由于沒有對(duì)代理服務(wù)器的訪問控制策略作全面細(xì)致的配置,導(dǎo)致用戶可以隨意地通過代理服務(wù)器訪問許多色情、反動(dòng)的非法站點(diǎn),而這些行為往往又很難追蹤,給管理工作帶來極大的不便。
Squid是Linux下一個(gè)緩存Internet數(shù)據(jù)的代理服務(wù)器軟件,其接收用戶的下載申請(qǐng),并自動(dòng)處理所下載的數(shù)據(jù)。也就是說,當(dāng)一個(gè)用戶想要下載一個(gè)主頁時(shí),可以向Squid發(fā)出一個(gè)申請(qǐng),要Squid代替其進(jìn)行下載,然后Squid連接所申請(qǐng)網(wǎng)站并請(qǐng)求該主頁,接著把該主頁傳給用戶同時(shí)保留一個(gè)備份。當(dāng)別的用戶申請(qǐng)同樣的頁面時(shí),Squid把保存的備份立即傳給用戶,使用戶覺得速度相當(dāng)快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS協(xié)議,暫不能代理POP3、NNTP等協(xié)議。Squid可以工作在很多中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。操作系統(tǒng) 安裝和配置SquidServer 通常說來,安裝Squid有兩種方法:一是從RedHatLinux9中獲取該軟件的RPM包進(jìn)行;二是安裝從Squid的官方站點(diǎn)http://www.squid-cache.org/下載該軟件的源碼進(jìn)行編譯后安裝。目前網(wǎng)上最新的穩(wěn)定版本為squid-2.5.STABLE10,下面以此版本為例對(duì)兩種安裝方法進(jìn)行介紹。
1.RPM包的安裝 首先,查看是否已經(jīng)安裝了squid: #rpm-qa|grepsquid RedHatLinux9自帶了Squid安裝軟件包,將第一張安裝光盤放入光驅(qū)后掛裝光盤分區(qū): 然后,進(jìn)入/mnt/cdrom/RedHat/RPMS目錄: #cd/mnt/cdrom/RedHat/RPMS 最后,執(zhí)行安裝: #rpm-ivhsquid-2.5.STABLE1-2.i386.rpm 當(dāng)然,我們也可以在開始安裝系統(tǒng)的過程中安裝該軟件。 2.源代碼包的安裝 從http://www.squid-cache.org/下載squid軟件的最新源代碼包squid-2.5.STABLE10.tar.gz,然后,按照如下步驟進(jìn)行安裝。 首先,將該文件拷貝到/tmp目錄: #cpsquid-2.5.STABLE10.tar.gz/tmp 然后,解開該文件: #tarxzvfsquid-2.5.STABLE10.tar.gz 解開后,在/tmp生成一個(gè)新的目錄squid-2.5.STABLE10,為了方便使用mv命令,將該目錄重命名為squid: #mvsquid-2.5.STABLE10squid 切換進(jìn)入squid目錄: #cdsquid 接著,執(zhí)行/configure,可以用./configure--prefix=/directory/you/want指定安裝目錄,系統(tǒng)默認(rèn)安裝目錄為/tmp/squid: #./configure 最后,分別執(zhí)行makeall、makeinstall: #makeall #makeinstall 安裝結(jié)束后,Squid的可執(zhí)行文件在安裝目錄的bin子目錄下,配置文件在etc子目錄下。 Squid軟件向用戶提供了許多與配置、應(yīng)用程序和庫、日志等相關(guān)的文檔進(jìn)行配置和管理,Squid有一個(gè)主要的配置文件squid.conf。同時(shí),在RedHat環(huán)境下所有Squid的配置文件都位于/etc/squid子目錄下。在該目錄當(dāng)中,系統(tǒng)同時(shí)提供了一個(gè)默認(rèn)的配置文件,其名稱為squid.conf.default,然而,在實(shí)際的應(yīng)用當(dāng)中,該默認(rèn)的配置文件存在某些問題,所以在使用Squid之前,必須首先對(duì)該配置文件的有關(guān)內(nèi)容進(jìn)行修改。 下面介紹squid.conf文件的結(jié)構(gòu)以及一些常用的選項(xiàng)。squid.conf配置文件可以分為13個(gè)部分。雖然Squid的配置文件很龐大,該配置文件的規(guī)模達(dá)到了3000多行。然而,如果只是為一個(gè)中小型網(wǎng)絡(luò)提供代理服務(wù),并且只準(zhǔn)備使用一臺(tái)服務(wù)器,那么,配置問題將會(huì)變得相對(duì)簡(jiǎn)單,只需要修改配置文件中的幾個(gè)選項(xiàng)即可滿足應(yīng)用需求。這些幾個(gè)常用選項(xiàng)分別是: 該選項(xiàng)定義Squid監(jiān)聽HTTPD客戶連接請(qǐng)求的端口。默認(rèn)是3128,如果使用HTTPD加速模式,則為80?梢灾付ǘ鄠(gè)端口,但是所有指定的端口都必須在一條命令行上出現(xiàn),程序才能正確地識(shí)別。 2.cache_mem(bytes) 該選項(xiàng)用于指定Squid可以使用的內(nèi)存的理想值。這部分內(nèi)存被用來存儲(chǔ)以下對(duì)象:In-Transitobjects(傳入的對(duì)象)、HotObjects(熱對(duì)象,即用戶常訪問的對(duì)象)、Negative-Cachedobjects(消極存儲(chǔ)的對(duì)象)。 3.cache_dirDirectory-NameMbytesLevel1Level2 該選項(xiàng)指定Squid用來存儲(chǔ)對(duì)象的交換空間的大小及其目錄結(jié)構(gòu)?梢杂枚鄠(gè)cache_dir命令來定義多個(gè)交換空間,并且這些交換空間可以分布在不同的磁盤分區(qū)。“directory”指明了該交換空間的頂級(jí)目錄。如果想用整個(gè)磁盤作為交換空間,那么可以將該目錄作為裝載點(diǎn)將整個(gè)磁盤掛裝上去。默認(rèn)值為/var/spool/squid。Mbytes定義了可用的空間總量。 配置訪問控制 使用訪問控制特性,可以控制在訪問時(shí)根據(jù)特定的時(shí)間間隔進(jìn)行緩存、訪問特定站點(diǎn)或一組站點(diǎn)等。Squid訪問控制有兩個(gè)要素:ACL元素和訪問列表。通過使用這些方法,系統(tǒng)管理員可以嚴(yán)格、清晰地定義代理服務(wù)器的訪問控制策略。 1.ACL元素 該元素定義的語法如下: aclaclnameacltypestring1… aclaclnameacltype“file”… 當(dāng)使用文件時(shí),該文件的格式為每行包含一個(gè)條目。其中,acltype可以是任一個(gè)在ACL中定義的名稱;任何兩個(gè)ACL元素不能用相同的名字;每個(gè)ACL由列表值組成,當(dāng)進(jìn)行匹配檢測(cè)的時(shí)候,多個(gè)值由邏輯或運(yùn)算連接,換句話說,任一ACL元素的值被匹配,則這個(gè)ACL元素即被匹配;并不是所有的ACL元素都能使用訪問列表中的全部類型;不同的ACL元素寫在不同行中,Squid將這些元素組合在一個(gè)列表中。 根據(jù)訪問控制列表允許或禁止某一類用戶訪問。如果某個(gè)訪問沒有相符合的項(xiàng)目,則默認(rèn)為應(yīng)用最后一條項(xiàng)目的“非”。比如最后一條為允許,則默認(rèn)就是禁止。通常應(yīng)該把最后的條目設(shè)為“denyall”或“allowall”來避免安全性隱患。使用該訪問控制列表需要注意如下問題: ●這些規(guī)則按照它們的排列順序進(jìn)行匹配檢測(cè),一旦檢測(cè)到匹配的規(guī)則,匹配檢測(cè)就立即結(jié)束; ●訪問列表可以由多條規(guī)則組成; ●如果沒有任何規(guī)則與訪問請(qǐng)求匹配,默認(rèn)動(dòng)作將與列表中最后一條規(guī)則對(duì)應(yīng); 本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |