日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

搭建Linux安全的Squid代理服务器

發布時間:2024/1/17 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建Linux安全的Squid代理服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹Linux下非常著名、常用的Squid代理服務器的使用,并著重講述如何使用其提供的訪問控制策略,來保證代理服務器的合法使用。?

代理服務器的功能是代理網絡用戶取得網絡信息,它???

是網絡信息的中轉站。隨著代理服務器的廣泛使用,隨之而來的是一系列的安全問題。由于沒有對代理服務器的訪問控制策略作全面細致的配置,導致用戶可以隨意地通過代理服務器訪問許多×××、反動的非法站點,而這些行為往往又很難追蹤,給管理工作帶來極大的不便。?

?

Squid是Linux下一個緩存Internet數據的代理服務器軟件,其接收用戶的下載申請,并自動處理所下載的數據。也就是說,當一個用戶想要下載一個主頁時,可以向Squid發出一個申請,要Squid代替其進行下載,然后Squid連接所申請網站并請求該主頁,接著把該主頁傳給用戶同時保留一個備份。當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS協議,暫不能代理POP3、NNTP等協議。Squid可以工作在很多中,如AIX、Digital、Unix、FreeBSDHP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。?操作系統

安裝和配置Squid?Server?

通常說來,安裝Squid有兩種方法:一是從Red?Hat?Linux?9中獲取該軟件的RPM包進行;二是安裝從Squid的官方站點http://www.squid-cache.org/?下載該軟件的源碼進行編譯后安裝。目前網上最新的穩定版本為squid-2.5.STABLE10,下面以此版本為例對兩種安裝方法進行介紹。?


Squid服務器工作原理示意圖

1.?RPM包的安裝?

首先,查看是否已經安裝了squid:?

#rpm?-qa?|?grep?squid?

Red?Hat?Linux9自帶了Squid安裝軟件包,將第一張安裝光盤放入光驅后掛裝光盤分區:?

#mount?/mnt/cdrom?

然后,進入/mnt/cdrom/Red?Hat/RPMS目錄:?

#cd?/mnt/cdrom/Red?Hat/RPMS?

最后,執行安裝:?

#rpm?-ivh?squid-2.5.STABLE1-2.i386.rpm?

當然,我們也可以在開始安裝系統的過程中安裝該軟件。?

2.?源代碼包的安裝?

從http://www.squid-cache.org/下載squid軟件的最新源代碼包squid-2.5.STABLE10.tar.gz,然后,按照如下步驟進行安裝。?

首先,將該文件拷貝到/tmp目錄:?

#cp?squid-2.5.STABLE10.tar.gz?/tmp?

然后,解開該文件:?

#tar?xzvf?squid-2.5.STABLE10.tar.gz?

解開后,在/tmp生成一個新的目錄squid-2.5.STABLE10,為了方便使用mv命令,將該目錄重命名為squid:?

#mv?squid-2.5.STABLE10?squid?

切換進入squid目錄:?

#cd?squid?

接著,執行/configure,可以用./configure?--prefix=/directory/you/want指定安裝目錄,系統默認安裝目錄為/tmp/squid:?

#./configure?

最后,分別執行make?all、make?install:?

#make?all?

#make?install?

安裝結束后,Squid的可執行文件在安裝目錄的bin子目錄下,配置文件在etc子目錄下。?

Squid軟件向用戶提供了許多與配置、應用程序和庫、日志等相關的文檔進行配置和管理,Squid有一個主要的配置文件squid.conf。同時,在Red?Hat環境下所有Squid的配置文件都位于/etc/squid子目錄下。在該目錄當中,系統同時提供了一個默認的配置文件,其名稱為squid.conf.default,然而,在實際的應用當中,該默認的配置文件存在某些問題,所以在使用Squid之前,必須首先對該配置文件的有關內容進行修改。?

下面介紹squid.conf文件的結構以及一些常用的選項。squid.conf配置文件可以分為13個部分。雖然Squid的配置文件很龐大,該配置文件的規模達到了3000多行。然而,如果只是為一個中小型網絡提供代理服務,并且只準備使用一臺服務器,那么,配置問題將會變得相對簡單,只需要修改配置文件中的幾個選項即可滿足應用需求。這些幾個常用選項分別是:?

1.?http_port?

該選項定義Squid監聽HTTPD客戶連接請求的端口。默認是3128,如果使用HTTPD加速模式,則為80。可以指定多個端口,但是所有指定的端口都必須在一條命令行上出現,程序才能正確地識別。?

2.?cache_mem(bytes)?

該選項用于指定Squid可以使用的內存的理想值。這部分內存被用來存儲以下對象:In-Transit?objects(傳入的對象)、Hot?Objects(熱對象,即用戶常訪問的對象)、Negative-Cached?objects(消極存儲的對象)。?

3.?cache_dir?Directory-Name?Mbytes?Level1?Level2?

該選項指定Squid用來存儲對象的交換空間的大小及其目錄結構。可以用多個cache_dir命令來定義多個交換空間,并且這些交換空間可以分布在不同的磁盤分區。“directory”指明了該交換空間的頂級目錄。如果想用整個磁盤作為交換空間,那么可以將該目錄作為裝載點將整個磁盤掛裝上去。默認值為/var/spool/squid。Mbytes定義了可用的空間總量。?

配置訪問控制?

使用訪問控制特性,可以控制在訪問時根據特定的時間間隔進行緩存、訪問特定站點或一組站點等。Squid訪問控制有兩個要素:ACL元素和訪問列表。通過使用這些方法,系統管理員可以嚴格、清晰地定義代理服務器的訪問控制策略。?

1.?ACL元素?

該元素定義的語法如下:?

acl?aclname?acltype?string1…?

acl?aclname?acltype?“file”…?

當使用文件時,該文件的格式為每行包含一個條目。其中,acltype可以是任一個在ACL中定義的名稱;任何兩個ACL元素不能用相同的名字;每個ACL由列表值組成,當進行匹配檢測的時候,多個值由邏輯或運算連接,換句話說,任一ACL元素的值被匹配,則這個ACL元素即被匹配;?并不是所有的ACL元素都能使用訪問列表中的全部類型;不同的ACL元素寫在不同行中,Squid將這些元素組合在一個列表中。?

2.?http_access訪問控制列表?

根據訪問控制列表允許或禁止某一類用戶訪問。如果某個訪問沒有相符合的項目,則默認為應用最后一條項目的“非”。比如最后一條為允許,則默認就是禁止。通常應該把最后的條目設為“deny?all”或“allow?all”來避免安全性隱患。使用該訪問控制列表需要注意如下問題:?

●?這些規則按照它們的排列順序進行匹配檢測,一旦檢測到匹配的規則,匹配檢測就立即結束;?

●?訪問列表可以由多條規則組成;?

●?如果沒有任何規則與訪問請求匹配,默認動作將與列表中最后一條規則對應;?

●?一個訪問條目中的所有元素將用邏輯與運算連接,如下所示:?

http_access?Action?聲明1?AND?聲明2?AND?聲明?OR?

http_access?Action?聲明3?

●?多個http_access聲明間用或運算連接,但每個訪問條目的元素間用與運算連接;?

●?列表中的規則總是遵循由上而下的順序。?

3.?使用訪問控制?

上面詳細講述了ACL元素以及http_access訪問控制列表的語法以及使用過程中需要注意的問題,下面給出使用這些訪問控制方法的實例。?

如果,允許網段10.0.0.124/24以及192.168.10.15/24內的所有客戶機訪問代理服務器,并且允許在文件/etc/squid/guest列出的客戶機訪問代理服務器,除此之外的客戶機將拒絕訪問本地代理服務器。那么具體操作如下:?

acl?clients?src?10.0.0.124/24?192.168.10.15/24?

acl?guests?src?“/etc/squid/guest”?

acl?all?src?0.0.0.0/0.0.0.0?

http_access?allow?clients?

http_access?allow?guests?

http_access?deny?all?

其中,文件“/etc/squid/guest”中的內容為:?

172.168.10.3/24?

210.113.24.8/16?

10.0.1.24/25?

……?

如果,允許域名為job.net、gdfq.edu.cn的兩個域訪問本地代理服務器,其他的域都將拒絕訪問本地代理服務器。那么具體操作如下:?

acl?permitted_domain?src?job.net?gdfq.edu.cn?

acl?all?src?0.0.0.0/0.0.0.0?

http_access?allow?permitted_domain?

http_access?deny?all?

如果,使用正則表達式,拒絕客戶機通過代理服務器訪問包含有諸如“sexy”等關鍵字的網站。那么具體操作如下:?

acl?deny_url?url_regex?-?sexy?

http_access?deny?deny_url?

如果,拒絕客戶機通過代理服務器訪問文件中指定IP或者域名的網站,其中文件/etc/squid/deny_ip中存放有拒絕訪問的IP地址,文件/etc/squid/deny_dns中存放有拒絕訪問的域名。那么具體操作如下:?

acl?deny_ip?dst?“etc/squid/deny_ip”?

acl?deny_dns?dst?“etc/squid/deny_dns”?

http_access?deny?deny_ip?

http_access?deny?deny_dns?

如果,允許和拒絕指定的用戶訪問指定的網站,其中,允許客戶1訪問網站http://www.sina.com.cn,而拒絕客戶2訪問網站http://www.163.com。那么具體操作如下:?

acl?client1?src?192.168.0.118?

acl?client1_url?url_regex?^http://www.sina.com.cn?

acl?client2?src?192.168.0.119?

acl?client2_url?url_regex?^http://www.163.com?

http_access?allow?client1?client1_url?

http_access?deny?client2?client2_url?

如果,允許所有的用戶在規定的時間內(周一至周四的8:30到20:30)訪問代理服務器,只允許特定的用戶(系統管理員,其網段為:192.168.10.0/24)在周五下午訪問代理服務器,其他的在周五下午一律拒絕訪問代理服務器。那么具體操作如下:?

acl?allclient?src?0.0.0.0/0.0.0.0?

acl?administrator?192.168.10.0/24?

acl?common_time?time?MTWH?8:30-20:30?

acl?manage_time?time?F?13:00-18:00?

http_access?allow?allclient?common_time?

http_access?allow?administrator?manage_time?

http_access?deny?manage_time?

?

配置2.............

基本squid安裝配置?

squid?配置詳解+認證?
http://www.chinaunix.net?作者:startdd?發表于:2003-07-15?20:38:52?

  在此,我們要配置一個只對內部網絡提供代理服務的Proxy?Server。它將用戶分為高級用戶和普通用戶兩種,對高級用戶采用網卡物理地址識別的方法,普通用戶則需要輸入用戶名和口令才能正常使用。高級用戶沒有訪問時間和文件類型的限制,而普通用戶只在上班時可以訪問以及一些其它的限制。?

  安裝?

  可以從Squid站點www.squid-cache.org獲取該軟件的源代...的發行版,如Red?Hat提供的RPM包。?

  RPM方式安裝很簡單,命令如下:?

  $?rpm?-ivh?Squid-2.x.STALBx.i386.rpm?


  不過筆者認為,即便是系統中已經默認安裝了Squid,也應當先刪掉然后安裝最新的源代碼包。因為開源軟件會不斷修正問題、提供更新的功能,使用最新版本可以保證最高的性能及安全,而且源代碼方式可以完全定制系統。不過STABLE穩定版、DEVEL版通常是提供給開發人員測試程序的,假定下載了最新的穩定版squid-2.5.STABLE2.tar.gz,用以下命令解開壓縮包:?

$?tar?xvfz?squid-2.5.STABLE.tar.gz?


  用bz2方式壓縮的包可能體積更小,相應的命令是:?

$?tar?xvfj?squid-2.5.STABLE.tar.bz2?


  然后,進入相應目錄對源代碼進行配置和編譯,命令如下:?

$?cd?squid-2.5.STABLE2?


  配置命令configure有很多選項,如果不清楚可先用“-help”查看。通常情況下,用到的選項有以下幾個:?

--prefix=/web/squid?
#指定Squid的安裝位置,如果只指定這一選項,那么該目錄下會有bin、sbin、man、conf等目錄,而主要的配置文件此時在conf子目錄中。為便于管理,最好用參數--sysconfdir=/etc把這個文件位置配置為/etc。?
--enable-storeio=ufs,null?
#使用的文件系統通常是默認的ufs,不過如果想要做一個不緩存任何文件的代理服?
務器,就需要加上null文件系統。?
--enable-arp-acl?
#這樣可以在規則設置中直接通過客戶端的MAC地址進行管理,防止客戶使用IP欺騙。?
--enable-err-languages="Simplify_Chinese"?
--enable-default-err-languages="Simplify_Chinese"?
#上面兩個選項告訴Squid編入并使用簡體中文錯誤信息。?
--enable-linux-netfilter?
#允許使用Linux的透明代理功能。?
--enable-underscore?
#允許解析的URL中出現下劃線,因為默認情況下Squid會認為帶下劃線的URL是?
非法的,并拒絕訪問該地址。?


  整個配置編譯過程如下:?

./configure?--prefix=/var/squid?
--sysconfdir=/etc?
--enable-arp-acl?
--enable-linux-netfilter?
--enable-pthreads?
--enable-err-language="Simplify_Chinese"?
--enable-storeio=ufs,null?
--enable-default-err-language="Simplify_Chinese"?
--enable-auth="basic"?
--enable-baisc-auth-helpers="NCSA"?
--enable-underscore?


  其中一些選項有特殊作用,將在下面介紹它們。?

  最后執行make和make?install兩條命令,將源代碼編譯為可執行文件,并拷貝到指定位置。?

  基本配置?

  安裝完成后,接下來要對Squid的運行進行配置(不是前面安裝時的配置)。所有項目都在squid.conf中完成。Squid自帶的squid.conf包括非常詳盡的說明,相當于一篇用戶手冊,對配置有任何疑問都可以參照解決。?

  在這個例子中,代理服務器同時也是網關,內部網絡接口eth0的IP地址為192.168.0.1,外部網絡接口eth1的IP地址為202.103.x.x。下面是一個基本的代理所需要配置選項:?

  http_port?192.168.0.1:3128?


  默認端口是3128,當然也可以是任何其它端口,只要不與其它服務發生沖突即可。為了安全起見,在前面加上IP地址,Squid就不會監聽外部的網絡接口。?

  下面的配置選項是服務器管理者的電子郵件,當錯誤發生時,該地址會顯示在錯誤頁面上,便于用戶聯系:?

cache_mgr?start@soocol.com?


  以下這些參數告訴Squid緩存的文件系統、位置和緩存策略:?

cache_dir?ufs?/var/squid?
cache_mem?32MB?
cache_swap_low?90?
cache_swap_high?95?


  在這里,Squid會將/var/squid目錄作為保存緩存數據的目錄,每次處理的緩存大小是32兆字節,當緩存空間使用達到95%時,新的內容將取代舊的而不直接添加到目錄中,直到空間又下降到90%才停止這一活動。如果不想Squid緩存任何文件,如某些存儲空間有限的專有系統,可以使用null文件系統(這樣不需要那些緩存策略):?

cache_dir?null?/tmp?


  下面的幾個關于緩存的策略配置中,較主要的是第一行,即用戶的訪問記錄,可以通過分析它來了解所有用戶訪問的詳盡地址:?

cache_access_log?/var/squid/access.log?
cache_log?/var/squid/cache.log?
cache_store_log?/var/squid/store.log?


  下面這行配置是在較新版本中出現的參數,告訴Squid在錯誤頁面中顯示的服務器名稱:?

visible_hostname?No1.proxy?


  以下配置告訴Squid如何處理用戶,對每個請求的IP地址作為單獨地址處理:?

client_mask?255.255.255.255?


  如果是普通代理服務器,以上的配置已經足夠。但是很多Squid都被用來做透明代理。所謂透明代理,就是客戶端不知道有代理服務器的存在,當然也不需要進行任何與代理有關的設置,從而大大方便了系統管理員。相關的選項有以下幾個:?

httpd_accel_host?virtual?
httpd_accel_port?80?
httpd_accel_with_proxy?on?
httpd_accel_user_host_header?on?


  在Linux上,可以用iptables/ipchains直接將對Web端口80的請求直接轉發到Squid端口3128,由Squid接手,而用戶瀏覽器仍然認為它訪問的是對方的80端口。例如以下這條命令:?

iptables?-t?nat?-A?PREROUTING?-s?192.168.0.200/32?-p?tcp?--dport?80?-j?REDIRECT?3128?


  就是將192.168.0.200的所有針對80端口的訪問重定向到3128端口。?

  所有設置完成后,關鍵且重要的任務是訪問控制。Squid支持的管理方式很多,使用起來也非常簡單(這也是有人寧愿使用不做任何緩存的Squid,也不愿意單獨使用iptables的原因)。Squid可以通過IP地址、主機名、MAC地址、用戶/密碼認證等識別用戶,也可以通過域名、域后綴、文件類型、IP地址、端口、URL匹配等控制用戶的訪問,還可以使用時間區間對用戶進行管理,所以訪問控制是Squid配置中的重點。Squid用ACL(Access?Control?List,訪問控制列表)對訪問類型進行劃分,用http_access?deny?或allow進行控制。根據需求首先定義兩組用戶advance和normal,還有代表所有未指明的用戶組all及不允許上網的baduser,配置代碼如下:?

acl?advance?192.168.0.2-192.168.0.10/32?
acl?normal?src?192.168.0.11-192.168.0.200/32?
acl?baduser?src?192.168.0.100/32?
acl?baddst?dst?www.soocol.com?
acl?all?src?0.0.0.0/0?

http_access?deny?baduser?
http_access?allow?advance?
http_access?allow?normal?


  可以看出,ACL的基本格式如下:?

  acl?列表名稱?控制方式?控制目標?


  比如acl?all?src?0.0.0.0/0,其名稱是all,控制方式是src源IP地址,控制目標是0.0.0.0/0的IP地址,即所有未定義的用戶。出于安全考慮,總是在最后禁止這個列表。?

  下面這個列表代表高級用戶,包括IP地址從192.168.0.2到192.168.0.10的所有計算機:?

acl?advance?192.168.0.2-192.168.0.20/32?


  下面這個baduser列表只包含一臺計算機,其IP地址是192.168.0.100:?

acl?baduser?192.168.0.100/32?


  ACL寫完后,接下來要對它們分別進行管理,代碼如下:?

http_access?deny?baduser?
http_access?allow?advance?
http_access?allow?normal?


  上面幾行代碼告訴Squid不允許baduser組訪問Internet,但advance、normal組允許(此時還沒有指定詳細的權限)。由于Squid是按照順序讀取規則,會首先禁止baduser,然后允許normal。如果將兩條規則順序顛倒,由于baduser在normal范圍中,Squid先允許了所有的normal,那么再禁止baduser就不會起作用。?

  特別要注意的是,Squid將使用allow-deny-allow-deny……這樣的順序套用規則。例如,當一個用戶訪問代理服務器時,Squid會順序測試Squid中定義的所有規則列表,當所有規則都不匹配時,Squid會使用與最后一條相反的規則。就像上面這個例子,假設有一個用戶的IP地址是192.168.0.201,他試圖通過這臺代理服務器訪問Internet,會發生什么情況呢?我們會發現,他能夠正常訪問,因為Squid找遍所有訪問列表也沒有和192.168.0.201有關的定義,便開始應用規則,而最后一條是deny,那么Squid默認的下一條處理規則是allow,所以192.168.0.201反而能夠訪問Internet了,這顯然不是我們希望的。所以在所有squid.conf中,最后一條規則永遠是http_access?deny?all,而all就是前面定義的“src?0.0.0.0”。?

  高級控制?

  前面說過,Squid的控制功能非常強大,只要理解Squid的行為方式,基本上就能夠滿足所有的控制要求。下面就一步一步來了解Squid是如何進行控制管理的。?

  通過IP地址來識別用戶很不可靠,比IP地址更好的是網卡的MAC物理地址。要在Squid中使用MAC地址識別,必須在編譯時加上“--enable-arp-acl”選項,然后可以通過以下的語句來識別用戶:?

acl?advance?arp?00:01:02:1f:2c:3e?00:01:02:3c:1a:8b?...?


  它直接使用用戶的MAC地址,而MAC地址一般是不易修改的,即使有普通用戶將自己的IP地址改為高級用戶也無法通過,所以這種方式比IP地址可靠得多。?

  假如不想讓用戶訪問某個網站應該怎么做呢?可以分為兩種情況:一種是不允許訪問某個站點的某個主機,比如ok的主機是ok.sina.com.cn,而其它的新浪資源卻是允許訪問的,那么ACL可以這樣寫:?

acl?sinapage?dstdomain?ok.sina.com.cn?
...?...?
http_access?deny?ok?
...?...?


  由此可以看到,除了ok,其它如www.sina.com.cn、news.sina.com.cn都可以正常訪問。?

  另一種情況是整個網站都不許訪問,那么只需要寫出這個網站共有的域名即可,配置如下:?

acl?qq?dstdomain?.tcccent.com.cn?


  注意tcccent前面的“.”,正是它指出以此域名結尾的所有主機都不可訪問,否則就只有tcccent.com.cn這一臺主機不能訪問。?

  如果想禁止對某個IP地址的訪問,如202.118.2.182,可以用dst來控制,代碼如下:?


acl?badaddr?dst?202.118.2.182?


  當然,這個dst也可以是域名,由Squid查詢DNS服務器將其轉換為IP。?

  還有一種比較廣泛的控制是文件類型。如果不希望普通用戶通過代理服務器下載MP3、AVI等文件,完全可以對他們進行限制,代碼如下:?

acl?mmxfile?urlpath_regex?/.mp3$?/.avi$?/.exe$?
http_access?deny?mmxfile?


  看到regex,很多讀者應該心領神會,因為這條語句使用了標準的規則表達式(又叫正則表達式)。它將匹配所有以.mp3、.avi等結尾的URL請求,還可以用-i參數忽略大小寫,例如以下代碼:?

acl?mmxfile?urlpath_regex?-i?/.mp3$?


  這樣,無論是.mp3還是.MP3都會被拒絕。當然,-i參數適用于任何可能需要區分大小寫的地方,如前面的域名控制。?

  如果想讓普通用戶只在上班時間可以上網,而且是每周的工作日,用Squid應當如何處理呢?看看下面的ACL定義:?

acl?worktime?time?MTWHF?8:30-12:00?14:00-18:00?
http_access?deny?!worktime?


  首先定義允許上網的時間是每周工作日(星期一至星期五)的上午和下午的固定時段,然后用http_access?定義所有不在這個時間段內的請求都是不允許的。?

  或者為了保證高級用戶的帶寬,希望每個用戶的并發連接不能太多,以免影響他人,也可以通過Squid控制,代碼如下:?

acl?conncount?maxconn?3?
http_access?deny?conncount?normal?
http_access?allow?normal?


  這樣,普通用戶在某個固定時刻只能同時發起三個連接,從第四個開始,連接將被拒絕。?

  總之,Squid的ACL配置非常靈活、強大,更多的控制方式可以參考squid.conf.default。?

  認證?

  用戶/密碼認證為Squid管理提供了更多便利,最常用的認證方式是NCSA。從Squid?2.5版本開始,NCSA認證包含在了basic中,而非以前單獨的認證模塊。下面來看看實現認證的具體操作。?

  首先在編譯時配置選項應包括以下配置:?

--enable-auth="basic"?--enable-basic-auth-helpers="NCSA"?

  “make?install”以后,需要將“helpers/basic_auth/NCSA/ncsa_auth”拷貝到用戶可執行目錄中,如/usr/bin(如果在該目錄中找不到這個執行文件,在編譯時請使用make?all而不是make,或者直接在該目錄中執行make),然后需要借助Apache的密碼管理程序htpasswd來生成用戶名/密碼對應的文件,就像下面這行代碼:?

htpasswd?-c?/var/squid/etc/password?guest?

  在輸入兩遍guest用戶的密碼后,一個guest用戶就生成了。如果以后需要添加用戶,把上面的命令去掉-c參數再運行即可。?

  Squid?2.5在認證處理上有了較大的改變,這里就只討論2.5版本的處理方法,2.4及以下版本請參考squid.conf.default。在2.5版的squid.conf中,包括以下幾個相關選項:?
#該選項指出了認證方式(basic)、需要的程序(ncsa_auth)和?
對應的密碼文件(password)?
auth_param?basic?program?/usr/bin/ncsa_auth?/var/squid/etc/password?
#?指定認證程序的進程數?
auth_param?basic?children?5?
#?瀏覽器顯示輸入用戶/密碼對話框時的領域內容?
auth_param?basic?realm?My?Proxy?Caching?Domain?
#?基本的認證有效時間?
auth_param?basic?credentialsttl?2?hours?
#?普通用戶需要通過認證才能訪問Internet?
acl?normal?proxy_auth?REQUIRED?
http_access?allow?normal?


  通過以上的配置即可完成認證工作。有的讀者可能要問:認證只針對普通用戶,而高級用戶是直接上網的,該怎么處理呢?其實,這兩種用戶是可以共存的。如前所述,Squid是順序處理http_access的,所以在http_access處理過程中,如果先處理normal用戶,那么當前用戶無論是否屬于高級用戶,都會被要求進行認證;相反如果先處理高級用戶,剩下的就只有需要認證的普通用戶了。例如以下配置代碼:?
...?
http_access?allow?normal?(需要認證)?
http_access?allow?advance?(不需要認證)?
...?


  不管是否為noauth用戶,都要求進行用戶名/密碼驗證。正確的方法是將二者位置交換,代碼如下:?

...?
http_access?allow?advance?
http_access?allow?normal?
...?


  這時,高級用戶不會受到任何影響。?

  總結?

  下面把整個squid.conf總結一下:?

#?服務器配置?
http_port?192.168.0.1:3128?
cache_mgr?start@soocol.com?
cache_dir?null?/tmp?
cache_access_log?/var/squid/access.log?
cache_log?/var/squid/cache.log?
cache_store_log?/var/squid/store.log?
visible_hostname?No1.proxy?
client_mask?255.255.255.255?
httpd_accel_host?virtual?
httpd_accel_port?80?
httpd_accel_with_proxy?on?
httpd_accel_user_host_header?on?

#?用戶分類?
acl?advance?arp?00:01:02:1f:2c:3e?00:01:02:3c:1a:8b?...?
acl?normal?proxy_auth?REQUIED?
acl?all?src?0.0.0.0?

#?行為分類?
acl?mmxfile?urlpath_regex?/.mp3$?/.avi$?/.exe$?
acl?conncount?maxconn?3?
acl?worktime?time?MTWHF?8:30-12:00?14:00-18:00?
acl?sinapage?dstdomain?ok.sina.com.cn?
acl?qq?dstdomain?.tcccent.com.cn?

#?處理?
http_access?allow?advance?
http_access?deny?conncount?normal?
http_access?deny?!worktime?
http_access?deny?mmxfile?
http_access?deny?sinapage?
http_access?deny?qq?
http_access?allow?normal?

  配置后的狀況是,advance組可以不受任何限制地訪問Internet,而normal組則只能在工作時間上網,而且不能下載多媒體文件,不能訪問某些特定的站點,而且發送請求不能超過3個。?

  通過本文的介紹,它可以了解Squid的基本能力。當然,它的能力遠不止此,可以建立強大的代理服務器陣列,可以幫助本地的Web服務器提高性能,可以提高本地網絡的安全性等。要想發揮它的功效,還需要進一步控制。

轉載于:https://blog.51cto.com/fantefei/909084

總結

以上是生活随笔為你收集整理的搭建Linux安全的Squid代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情久久视频 | 91午夜视频在线观看 | 欧美精品一卡二卡 | 精品影视一区二区 | 香蕉91视频| 黄色在线免费看 | 成人免费看类便视频 | 亚洲国产婷婷 | 成人xxxx| 亚洲欲色 | 欧美一级精品 | 伊人久久大香线蕉av色婷婷色 | 少妇激情网 | a级片国产| 一区二区免费av | 姑娘第5集在线观看免费好剧 | 亚洲熟女少妇一区二区 | 91色在线视频 | 久久这里有| 夜夜草| 久久香蕉国产 | 欧美性bbw | 美女黄色一级视频 | 国产av一区二区三区精品 | 欧美亚洲少妇 | 国产精品1024| 亚洲国产视频一区二区 | 天天干天天色综合 | 精品综合久久 | 天天射天天射天天射 | 6090伦理 | 痴女扩张宫交脱垂重口小说 | 亚洲视频在线一区 | 手机av免费观看 | 欧美视频区 | 日韩av高清在线观看 | 办公室摸腿吻胸激情视频 | 天天干天天爱天天操 | 日本视频网 | 欧美一级免费在线 | 欧美激情精品久久久久久变态 | 国产日产亚洲系列最新 | 成人免费毛片网 | 国产一级片免费播放 | 男人扒女人添高潮视频 | 91成人免费在线观看 | 在线亚洲精品 | 女同av网站 | 天天舔天天插 | 成人深夜网站 | 美女av影院 | 三级无遮挡 | 欧洲mv日韩mv国产 | 亚洲AV永久无码国产精品国产 | 高清一区二区三区四区 | 高清精品xnxxcom | 在线成人日韩 | 亚洲a影院 | 日本爱爱免费视频 | 男人看片网站 | 最好看的2019中文大全在线观看 | 成年网站免费观看 | 波多野结衣久久久久 | 依依成人在线视频 | 泽村玲子在线 | 黑巨茎大战欧美白妞 | 亚洲一区在线不卡 | 久久er99热精品一区二区介绍 | 国产不卡av在线播放 | 天堂亚洲精品 | 神马午夜久久 | 欧美aaa级片 | 欧美一卡二卡三卡四卡 | 18成人免费观看网站 | 国产一级片精品 | 99riav国产 | 成年人黄色小视频 | 91麻豆映画传媒 | 中文字幕无码精品亚洲35 | 中文字幕一区二区人妻电影丶 | 91视频最新 | 日本xx片| 美女黄站 | 免费在线观看av网址 | 脱美女衣服亲摸揉视频 | 粗大黑人巨茎大战欧美成人 | 以女性视角写的高h爽文 | 红桃av| 色婷婷国产精品综合在线观看 | 超碰人人艹 | 女人免费视频 | 日日干狠狠干 | 久久久久亚洲av成人人电影 | 中文字幕在线观看精品 | 杂技xxx裸体xxxx欧美 | 久久99热这里只频精品6学生 | 超碰在线进入 | 欧美日韩精品国产 | 色婷婷www |