成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在CentOS或RHEL上搭建Squid透明Web代理系統?

譯文
系統 Linux
使用透明代理有幾個好處。首先,對最終用戶來說,透明代理可以改善上網瀏覽體驗,因為緩存了經常訪問的網站內容,同時給他們帶來的配置開銷最小。對管理員來說,透明代理可用于執行各種管理政策,比如內容/URL/IP過濾和速率限制等。

【51CTO精選譯文】我們在前一篇教程中介紹了使用用戶空間實現的應用程序iptables搭建網關的方法,詳見http://xmodulo.com/2014/06/internet-connection-sharing-iptables-linux.html。本教程將重點介紹將網關變成透明代理服務器。如果客戶端沒有意識到其請求是通過代理處理的,該代理就被稱為“透明”代理。

使用透明代理有幾個好處。首先,對最終用戶來說,透明代理可以改善上網瀏覽體驗,因為緩存了經常訪問的網站內容,同時給他們帶來的配置開銷最小。對管理員來說,透明代理可用于執行各種管理政策,比如內容/URL/IP過濾和速率限制等。

代理服務器充當客戶端和目的地服務器之間的中介。客戶端將請求發送到代理服務器,隨后代理服務器評估請求,并采取必要的動作。在本教程中,我們將使用Squid搭建一個Web代理服務器,而Squid是一種健壯的、可定制的、穩定的代理服務器。就個人而言,大概一年來我管理著一臺拖有400多個客戶端工作站的Squid服務器。雖然平均而言我大概一個月就要重啟一次服務,但處理器和存儲使用率、吞吐量以及客戶端響應時間都表現不錯。

我們將配置Squid以獲得下列拓撲結構。CentOS/RHEL設備有一塊網卡(eth0)連接到專有局域網,另一塊網卡(eth1)則連接到互聯網。

 

Squid的安裝

想使用Squid搭建透明代理系統,我們首先要添加必要的iptables規則。這些規則應該會幫助你開始上手,不過務必要確保它們與任何的現有配置沒有沖突。

  1. # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE  
  2. # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 

***條規則將引起來自eth1(廣域網接口)的所有出站數據包都有eth1的源IP地址(也就是啟用NAT)。第二條規則將把來自eth0(局域網接口)的所有入站HTTP數據包(發往TCP 80)重定向至Squid偵聽端口(TCP 3128),而不是直接將其轉發到廣域網接口。

我們使用yum,開始安裝Squid。

  1. # yum install squid 

現在,我們將改動Squid配置,將其變成透明代理系統。我們將局域網子網(比如10.10.10.0/24)定義為有效的客戶端網絡。不是來自該局域網子網的任何流量將被拒絕訪問。

  1. # vim /etc/squid/squid.conf  
  2. visible_hostname proxy.example.tst  
  3. http_port 3128 transparent  
  4. ## 定義我們的網絡## acl our_network src 10.10.10.0/24  
  5. ## 確保我們的網絡允許訪問## http_access allow our_network  
  6. ## ***拒絕其他的所有流量## http_access deny all 

現在我們開啟Squid服務,確保它已被添加到啟動項。

  1. # service squid start  
  2. # chkconfig squid on 

鑒于Squid已搭建并運行起來,我們可以測試其功能了,為此只需監測Squid日志。從連接至該局域網的計算機訪問任何URL,你應該會在日志中看到類似以下的內容。

  1. # tailf /var/log/squid/access.log  
  2. 1402987348.816 1048 10.10.10.10 TCP_MISS/302 752  
  3. GET http://www.google.com/ - DIRECT/173.194.39.178  
  4. text/html  
  5. 1402987349.416 445 10.10.10.10 TCP_MISS/302 762  
  6. GET http://www.google.com.bd/? - DIRECT/173.194.78.  
  7. 94 text/html 

據日志文件顯示,IP地址為10.10.10.10的機器試圖訪問google.com,Squid處理了這個請求。

一種最基本的Squid代理服務器現已準備就緒。在本教程的余下部分,我們將調整Squid的一些參數,以控制出站流量。請注意:這僅僅為了演示。實際的政策應加以定制,以滿足你的具體要求。

準備工作

在開始配置之前,我們先明確幾個要點。

Squid配置解析

在閱讀配置文件時,Squid以一種自上而下的方式來解析文件。自上而下地解析規則,直到發現匹配為止。一旦發現匹配,該規則就被執行;其下面的其他任何規則將被忽視。所以,添加過濾規則的***實踐就是,按下列順序指定規則。

explicit allow

explicit deny

allow entire LAN

deny all

Squid重啟與Squid重新配置

一旦Squid配置經過改動,Squid服務就需要重啟。重啟服務可能需要一段時間,有時要幾分鐘,長短取決于活動連接的數量。在這個期間,局域網用戶無法訪問互聯網。想避免這種服務中斷,我們可以使用下面這個命令,而不是使用“service squid restart”。

  1. # squid -k reconfigure 

該命令將允許Squid使用更新后的參數來運行,而不需要重啟本身。

按照IP地址過濾局域網主機

在這個演示中,我們想要搭建這樣的Squid:禁止擁有IP地址10.10.10.24的主機和IP地址10.10.10.25的主機訪問互聯網。為此,我們創建了一個文本文件“denied-ip-file”,里面含有所有被拒絕訪問的主機的IP地址,然后將該文件添加到Squid配置中。

  1. # vim /etc/squid/denied-ip-file  
  2. 10.10.10.24  
  3. 10.10.10.25  
  4. # vim /etc/squid/squid.conf  
  5. ## 首先我們創建訪問控制列表(ACL),隔離被拒絕訪問的IP地址##acl denied-ip-list src "/etc/squid/denied-ip-file"  
  6. ##然后,我們應用ACL ## http_access deny denied-ip-list ## 明確拒絕## http_access allow our_network  
  7. ## 允許局域網## http_access deny all ## 拒絕所有deny all ## 

現在我們需要重啟Squid服務。Squid將不再認可來自這些IP地址的請求。如果我們檢查squid日志,就會發現來自這些主機的請求處于“TCP_DENIED”狀態。

過濾黑名單中的網站

這個方法將只適用于HTTP。假設我們想阻止badsite.com和denysite.com,就可以將這兩個網址添加到文件,并且將引用添加到squid.conf。

  1. # vim /etc/squid/badsite-file  
  2. badsite  
  3. denysite  
  4. # vim /etc/squid/squid.conf  
  5. ## ACL定義##acl badsite-list url_regex "/etc/squid/badsite-file"  
  6. ## ACL 應用## http_access deny badsite-list  
  7. http_access deny denied-ip-list ## 之前設置,但這里不起作用## http_access allow our_network  
  8. http_access deny all 

請注意:我們使用了ACL類型“url_regex”,這將與所請求的URL中的“badsite”和“denysite”這兩個詞相匹配。也就是說,凡是在URL中含有“badsite”或“denysite”(比如badsite.org、newdenysite.com或otherbadsite.net)的請求一律被阻止。

合并多個ACL

我們將創建一個訪問列表,阻止IP地址為10.10.10.200的客戶端和IP地址為10.10.10.201的客戶端訪問custom-block-site.com。其他任何客戶端都能夠訪問該網站。為此,我們將首先創建一個訪問列表以隔離這兩個IP地址,然后創建另一個訪問列表以隔離所需的網站。***,我們將同時使用這兩個訪問列表,以滿足要求。

  1. # vim /etc/squid/custom-denied-list-file  
  2. 10.10.10.200  
  3. 10.10.10.201  
  4. # vim /etc/squid/custom-block-website-file  
  5. custom-block-site  
  6. # vim /etc/squid/squid.conf  
  7. acl custom-denied-list src "/etc/squid/custom-denied-list-file"  
  8. acl custom-block-site url_regex "/etc/squid/custom-block-website-file"  
  9. ## ACL應用 ## http_access deny custom-denied-list custom-block-site  
  10. http_access deny badsite-list ## 之前設置,但這里不起作用## http_access deny denied-ip-list ## 之前設置,但這里不起作用## http_access allow our_network  
  11. http_access deny all  
  12. # squid -k reconfigure 

被阻止的主機現在應該無法訪問上述網站了。日志文件/var/log/squid/access.log應該含有相應請求的“TCP_DENIED”。

設定***下載文件大小

Squid可以用來控制***的可下載文件大小。我們想把IP地址為10.10.10.200的主機和IP地址為10.10.10.201的主機的***下載大小限制在50MB。我們之前已經創建了ACL“custom-denied-list”,以隔離來自這些源地址的流量。現在,我們將使用同一個訪問列表來限制下載文件大小。

  1. # vim /etc/squid/squid.conf  
  2. reply_body_max_size 50 MB custom-denied-list  
  3. # squid -k reconfigure 

建立Squid緩存層次體系

Squid支持緩存的方式是,將經常訪問的文件存儲在本地存儲系統中。設想一下:你的局域網上有100個用戶在訪問google.com。要是沒有緩存功能,就要為每一個請求單獨獲取Google標識或涂鴉。Squid可以將標識或涂鴉存儲在緩存中,以便從緩存來提供。這不僅改善了用戶感覺得到的性能,還減少了帶寬使用量。這可以說是一舉兩得。

想啟用緩存功能,我們可以改動配置文件squid.conf。

  1. # vim /etc/squid/squid.conf  
  2. cache_dir ufs /var/spool/squid 100 16 256 

數字100、16和256 有下列含義。

•為Squid緩存分配100 MB存儲空間。如果你愿意,也可以加大所分配的空間。

•16個目錄(每個目錄里面含有256個子目錄)將用于存儲緩存文件。這個參數不應該改動。

我們可以通過日志文件/var/log/squid/access.log來證實Squid緩存是否被啟用。如果緩存成功命中,我們應該會看到標有“TCP_HIT”的項。

總而言之,Squid是一種功能強大的、基于行業標準的Web代理服務器,被全球各地的系統管理員們廣泛使用。Squid提供了簡易的訪問控制功能,可用于管理來自局域網的流量。它既可以部署到大企業網絡中,也可以部署到小公司網絡中。本教程只介紹了Squid所有功能的一小部分。想了解完整的功能,請參閱其官方說明文檔(http://wiki.squid-cache.org/Features)。

但愿本文對各位有所幫助。

英文原文:http://xmodulo.com/2014/06/squid-transparent-web-proxy-centos-rhel.html

責任編輯:林師授 來源: 51CTO
相關推薦

2019-06-05 10:20:09

安全更新命令Linux

2016-12-07 18:12:05

CentOSRHEL安全補丁

2020-03-02 14:06:54

CentOS 8FFmpegLinux

2015-12-21 13:19:23

CentosRHEL 6.XWetty

2019-12-02 11:50:09

CentOS 8VirtualBoxLinux

2017-04-24 18:10:27

DrupalCentOSFedora

2016-01-25 13:03:21

2017-04-11 13:20:06

CentOSRHELFedora

2011-03-16 11:20:26

2014-10-11 11:30:43

CentOSDocker

2019-10-12 10:24:06

CentOSRHELCockpit

2023-03-16 08:55:51

RHEL 8MiniKube開源

2019-11-14 09:20:15

CentOS 8RHEL 8Nagios Core

2014-05-20 09:59:27

Mnitrix輕型監控系統系統管理員

2014-08-05 14:23:33

linuxcentosBugzilla

2015-06-01 12:19:03

FedoraCentOSSamba

2022-11-17 09:52:12

RHEL 9Node.js

2024-01-30 20:06:18

RHELVLAN

2014-09-04 09:18:15

2019-10-14 15:00:12

Centos 8 RHEL 8VNC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线看h| 久久久久久999 | 色视频在线播放 | 国产高清在线精品一区二区三区 | 国产精品性做久久久久久 | 国产我和子的乱视频网站 | 亚洲成人一区二区三区 | 久久精品成人 | 中文字幕国产一区 | 国产成人免费视频网站高清观看视频 | 亚洲精品视频在线观看视频 | 国产精品成人一区二区三区夜夜夜 | 九九久久精品 | 午夜精品一区二区三区免费视频 | 国产精品久久久精品 | 久久精品在线播放 | 久久久成人精品 | 亚洲精品国产综合区久久久久久久 | 国产91视频播放 | 欧美一区二区三区在线观看视频 | 精品99在线 | 天天爱天天操 | 欧美日韩亚洲二区 | 国产日韩精品一区 | 欧美日韩黄色一级片 | 国产激情综合五月久久 | 男人电影天堂 | 亚洲小视频在线播放 | 日韩福利在线 | 在线亚洲一区 | 免费黄色大片 | cao在线| 午夜精品一区二区三区在线观看 | 午夜看片网站 | 久久99精品久久 | 国产精品日韩欧美一区二区三区 | 国产免费一区二区三区免费视频 | 91成人精品视频 | 国产精品乱码一区二区三区 | 天天拍天天操 | 精品久久久一区 |