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