squid代理服務器詳細配置及介紹

轉載 http://kangshuo.blog.51cto.comlinux

簡介:web

squid 是 Linux系統中最經常使用的一款開源代理服務軟件正則表達式

(官方網站:http//www.squid-cache.org瀏覽器

能夠很好地實現HTTPFTP,以及DNS查詢SSL等應用的緩存代理,功能十分強大。緩存

做爲應用層的代理服務軟件,squid主要提供緩存加速、應用層過濾控制的功能。安全



代理的工做機制服務器

  當客戶機經過代理來請求web頁面時,指定的代理服務器會先檢查本身的緩存,若是緩存中已有客戶機須要的頁面,則直接將緩存中頁面內容反饋給客戶機;若是緩存中沒有客戶機要訪問的頁面,則由代理服務器向Internet發送訪問請求,當得到返回的web頁面之後,將網頁數據保存到緩存中併發送給客戶機網絡


wKiom1klrf6TVvXwAAAwfICu4Ok577.jpg-wh_50

   HTTP代理的緩存加速對象主要是文字、圖像等靜態web元素。當客戶機在不一樣的狀態下訪問同一網站應用時,或者不一樣的客戶機訪問同一網站應用時,能夠直接從代理服務器的緩存中獲取相應的結果。這樣就大大減小了向Internet提交重複的網站web頁面請求的過程,提升了客戶機的訪問響應速度
併發

因爲客戶機的web訪問請求其實是由代理服務器來代替完成的,從而能夠隱藏用戶的真實IP地址,起到必定安全保護做用。dom

  代理的基本類型:


    1.統代理

必須在客戶機經過瀏覽器、QQ聊天工具、下載應用軟件程序中,手動設置代理服務器的IP地址和端口。

纔可使用代理來訪問網絡應用。

傳統代理適用於Internet互聯網環境中。

   2.透明代理:

 和傳統代理同樣,主要區別在於客戶機不須要指定代理服務器的地址和端口號,而是經過默認路由、防火牆策略將訪問web請求的80端口重定向到代理服務器的3128端口作映射,重定向的過程對客戶機來講是透明的

透明代理使用於局域網環境中。


安裝squid服務的相關配置及命令

  •     squid的版本:3.4.6

  •     squid的版本:3.4.11 特性:輔助協議擴展、騰訊雲SSL證書、Store-ID、交易註釋、組播DNS


1、搭建傳統代理服務

wKiom1km72_BEMv-AABMkQv3rOw811.jpg-wh_50


  1.編譯安裝squid

  wKiom1km9QSgw6TJAAGzreQFx8s425.jpg-wh_50


wKiom1km9YKAjZLVAAGksEIKyWo680.jpg-wh_50

上述編譯模塊參數含義以下:

 --prefix=/usr/local/squid  //安裝目錄

 --sysconfdir=/etc       //單獨將配置文件修改到其餘目錄

 --enable-arp-acl  //能夠在規則中直接經過客戶端MAC進行管理,防止客戶端使用IP欺騙

 --enable-linux-netfilter //使用內核過濾

 --enable-linux-tproxy   //支持透明模式

 --enable-async-io=值   //異步I/O提高存儲性能

 --enable-err-language="Simplify_Chinese"  //錯誤信息的顯示語言

 --enable-underscore    //容許URL中有下劃線

 --enable-poll        //使用poll()模式,提高性能

 --enable-gnuregex     //使用GNU正則表達式


安裝完後,建立連接文件,建立用戶和組

wKiom1koQXjxZXa_AAFV0aLZyec407.jpg-wh_50

2.Squid的配置文件

 Squid的配置文件位於/etc/squid.conf,更詳細的配置項請參考/etc/squid.conf.documented文件。

wKiom1koQ7SB649oAALuR0GbM6s356.jpg-wh_50

3.Squid的運行控制

  (1)檢查配置文件語法是否正確

   wKiom1koRdKBmR3aAAD1IFNJwak234.jpg-wh_50

(2.)啓動、中止Squid

第一次啓動squid服務時,會自動初始化緩存目錄。在沒有可用的Squid服務腳本的狀況下,也能夠直接調用Squid程序來啓動服務,這時須要先進行初始化。

wKioL1koSQzQ8gXkAAIAKEU_UXY878.jpg-wh_50

wKioL1koSdmDCdKsAAFg6SsywGE667.jpg-wh_50

(3.)使用squid服務腳本

 爲了使squid服務的啓動、中止、重載等操做更加方便,並使用chkconfig和service工具來進行管理。

wKiom1koTFCxbYc3AAH223zOI7U594.jpg-wh_50

wKioL1koTkKwQW-IAAHBlAJzaGY401.jpg-wh_50

將編寫好的腳本受予執行權限,而後再將squid的程序添加爲系統服務

wKioL1koUBqQt3ikAAFG15Haja0486.jpg-wh_50


在squid服務器上添加一條防火牆規則,容許客戶端經過squid代理去訪問web網站

wKioL1koUmnj2hG2AAFo4JExgI8914.jpg-wh_50

客戶機的代理配置


wKiom1koXU2BHqwwAAIHaDeNxBg961.jpg-wh_50


wKioL1koXczStUPxAANtbNfSxXA310.jpg-wh_50

注意:若是客戶機是一臺Linux的話,要想使用代理服務器(如elinks網頁瀏覽器、wget下載工具),必須經過環境變量來指定代理服務器的地址、端口等信息。

 

傳統代理服務的驗證方法

       wKioL1koXKvwTEKEAAQ7660qMR4090.jpg-wh_50

 (1.)查看squid訪問日誌的新增記錄

     tail /usr/local/squid/var/logs/access.log

  wKioL1koXxvCEdyWAAOhXvaEKI0668.jpg-wh_50

經過查看squid的服務器的訪問日誌,能夠發現客戶機172.16.16.110去訪問web網站服務器172.16.16.172的記錄消息。

(2.)查看web訪問日誌的新增記錄

     tail /var/log/httpd/access_log

   wKioL1koYRfz3-_VAAMoeZ45IPs525.jpg-wh_50     

在被訪問的web服務器中,經過訪問日誌發現來自代理服務器172.16.16.22的訪問記錄,說明當使用代理服務器時,web服務器並不知道客戶機的真實IP地址,由於實際是由代理服務器替它在訪問。

172.16.16.22的IP地址是代理服務器的地址。


2、搭建透明代理服務

  1.    在Linux網關上,構建squid代理服務爲局域網客戶機去訪問Internet提供服務

  2.     在全部的局域網客戶機上,只需正確配置IP地址、默認網關便可。

wKiom1koZOuAShIDAABrImUfJ2k546.jpg-wh_50

1.配置squid支持透明代理

  squid服務的默認配置是不支持透明代理的,所以須要修改配置文件。squid2.6以上版本的只需在http_port配置行後面加上一個transparent選項便可。

wKioL1koZpmDjxaNAAIqH-ahSkQ253.jpg-wh_50


2.設置iptables的重定向策略

注意:透明代理服務中的squid服務器是構建在Linux網關主機上的,因此要設置防火牆策略將客戶機訪問外網的數據包交給squid服務器去處理,在防火牆上設置一條REDIRECT(重定向策略),其做用就是將客戶機訪問互聯網的端口映射給squid服務器的3128端口。

注意:REDIRECT也是一種數據包控制類型,只能在nat表的PREROUTING或OUTPUT鏈以及被調用的鏈中使用。

wKioL1kpllHxj9yHAAEorxuuzs8550.jpg-wh_50

注意:此時還要開啓路由轉發功能,不然數據是過不去的!!!

wKiom1kpm1yza8PaAACB-kvJ5Uc032.jpg-wh_50

3.驗證透明代理的使用

  注意:清除手動代理相關的配置

wKiom1kpm-vxSRw9AAFzjoxrgA8147.jpg-wh_50

驗證結果:

在squid代理服務器日誌發現,客戶機192.168.4.110訪問過目標網站172.16.16.172的記錄信息

wKioL1kppwiwzTZ3AADlDwaiObo975.jpg-wh_50

在被訪問的web網站服務器上發現,來自代理服務器的IP地址爲172.16.16.1的訪問記錄,從而隱藏了真實IP。

wKiom1kpp9HB3Z16AAFDWuZa2BE118.jpg-wh_50

3、ACL訪問控制

能夠針對源地址、目標地址、訪問的URL路徑、訪問的時間等各類條件進行過濾

ACL訪問控制經過如下兩個步驟來實現:其一,使用acl配置項定義須要控制的條件 其二,經過http_access配置項對已定義的列表作容許 或 拒絕 訪問的控制。


1.定義訪問控制列表

  acl 列表名稱 列表類型 列表內容

  

經常使用的訪問控制列表類型:

   src  :  源IP地址、網段、IP地址範圍

   dst  : 目標IP地址、網段、主機名

  port : 目標端口

  dstdomain :目標域,匹配域內全部站點

  time :  使用代理服務的時間段

  maxcom : 每一個客戶機的併發鏈接數

 url_regex : 目標資源的URL地址,-i表示忽略大小寫

 urlpath_regex :目標資源的整個URL路徑。


2.設置訪問權限

    http_access  allow或deny  列表名  取反時,加!符號

wKioL1kprkPh4o6wAAJuZaQM9jI959.jpg-wh_50

wKiom1kpr7Sy3cYAAADVDZMED1s184.jpg-wh_50

驗證訪問控制結果

wKioL1kpsCTQFU_qAAK1lRzzGps206.jpg-wh_50

相關文章
相關標籤/搜索