Squid代理伺服器

来源:https://www.cnblogs.com/L2366/archive/2018/08/05/9424996.html
-Advertisement-
Play Games

1、squid代理: 緩存網頁,減少重覆請求,加快訪問速度,隱藏真實ip 代理的分類: 傳統代理:使用Internet和內網,客戶端需明確指定代理伺服器。 透明代理:使用於內網訪問外網,指定代理伺服器,但必須指定網關,網管配置iptables策略,將埠重定向到代理伺服器埠。 2、squid和na ...


1、squid代理:

緩存網頁,減少重覆請求,加快訪問速度,隱藏真實ip

代理的分類:

傳統代理:使用Internet和內網,客戶端需明確指定代理伺服器。

透明代理:使用於內網訪問外網,指定代理伺服器,但必須指定網關,網管配置iptables策略,將埠重定向到代理伺服器埠。

2、squid和nat的區別:

NAT:工作在網路層,通過轉換地址轉發數據包,實現內外網之間通信。

應用代理:工作在應用層,通過緩存提供服務,不進行數據包轉發,主要實現web緩存服務。

3、squid的安裝

./configure  --prefix=/usr/local/squid(安裝目錄)  --sysconfdir=/etc(配置文件位置)  --enable-linux-netfilter(支持內核過濾)  --enable-linux-tproxy(支持透明模式)  --enable-async-io=100    --enable-err-language=”Simplify_Chinese”(錯誤信息顯示語言)  --enable-underscore(允許URL中有下劃線) --enable-poll(使用Poll()模式,提升性能)  --enable-gnuregex(使用GNU正則表達式)

4、主配置文件/etc/squid.con的配置項:

http_port  3128                              預設埠號:3128

cache_effective_user  squid         指定squid的程式用戶

cache_effective_group  squid       指定賬號的基本組

repy_body_max_size  10  MB       允許下載最大文件大小

maximum_object_size  4096 KB   允許緩存的最大對象

visible_hostname  a.benet.com     指定主機名(名稱隨意)

5、squid的管理命令:

squid  -k  parse               檢測語法

squd  -z                           初始化緩存目錄

squid                               啟動squid

squid  -k  reconfigure       重新載入配置

關閉squid: kill  進程號(查看進程號命令:netstat  -anpt  | grep “squid”)

6、透明代理配置:

1)在/etc/squid.conf配置文件添加支持透明代理

http_port  192.168.1.1:3128  transparent

(192.168.1.1是內網網關)

2)添加iptables策略,將80號埠(HTTP)和443埠(HTTPS)重定向到3128

Iptables  -t nat  -A  PREROUTING -p  tcp  --dport 80  -j  REDIRECT --to  3128

Iptables  -t nat  -A  PREROUTING -p  tcp  --dport 443  -j  REDIRECT --to  3128

7、squid的控制

由ACL和http_access兩條命令實施,ACL定義規則,http_access應用規則。

格式:  acl  名稱  控制類型  控制內容

http_access  allow|deny 名稱1  名稱2

控制類型:src  源地址           dst  目標地址

                  port  埠號          time 訪問時間

dstdomain  目標域            maxconn 連接數url_grgex 目標URL地址      urlpath_regex  URL路徑(文件類型)

 

可以設置黑白明單以控制允許或拒絕訪問的主機

例:建立針對目標地址的黑名單文件

mkdir  /etc/squid

cd  /etc/squid

vim  ipblock.list --寫入地址(61.135.167.36  125.39.127.25   60.28.14.0/24)

調用指定文件中的列表內容:

acl  IPBLOCK dst  “etc/squid/ipblock.list”

8、sarg是一款squid日誌分析工具,採用html格式,詳細列出站點信息時間、排名、連接次數、訪問量,主配置文件為sarg.conf可設置字體大小、背景、顏色等。

 

Squid代理伺服器應用示例

實驗拓撲圖:

實驗要求:

(1)如上圖要求配置網路,內部主機需要配置預設網關,外部linux不需要配置預設網關。

(2)在squid伺服器上安裝squid,並做相關的配置,啟動squid服務,查看埠。

(3)搭建傳統代理伺服器,要求在內部linux伺服器能夠使用傳統代理訪問外部的web伺服器。內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB。內部客戶端驗證文件下載。

(4)修改squid的主配置文件,搭建一臺透明代理伺服器,結合iptables的重定向策略,開啟路由轉發。驗證內部客戶端能否使用透明代理訪問外部的web伺服器。

(5)修改squid的主配置文件,設置ACL訪問控制,要求內部客戶端192.168.1.0網段在周一至周五的9:00—17:00才能使用代理伺服器上網,其他時間不允許上網,並且禁止下載.mp3,.avi,.rmvb的視頻文件。針對某些目標地址建立黑名單,如61.135.167.36,125.39.127.25

修改squid伺服器的時間,客戶端驗證是否能上網。

客戶端驗證mp3視頻文件能否下載。

(6)在squid伺服器上安裝Squid日誌分析軟體sarg,進行相關的配置,併在客戶端訪問日誌分析的網站。

步驟:

1、按要求配置網路,內部主機需要配置預設網關,外部linux不需要配置預設網關。(如下圖)

2、在squid伺服器上安裝squid,並做相關的配置,啟動squid服務,查看埠。

(1)解包並編譯安裝squid

(2)安裝完成後創建鏈接文件,創建用戶和組。

(3)修改squid的主配置文件(/etc/squid.conf)

(4)啟動服務並查看埠號(依次輸入以下命令)

squid  -k  parse         檢查配置文件語法是否正確

squid  -z                初始化緩存目錄

squid                    啟動squid服務

然後查看埠號,服務是否啟動

3、搭建傳統代理伺服器,要求在內部linux伺服器能夠使用傳統代理訪問外部的web伺服器。內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB。內部客戶端驗證文件下載。

(1)修改主配置文件/etc/squid.conf ,添加配置項(內部客戶端最大允許下載的文件不能超過10MB,squid最大緩存的文件為4MB)

(2)重新載入服務

squid  -k  reconfigure

(3)開啟網站伺服器的httpd服務

(4)修改內部主機瀏覽器的設置,能夠使用傳統代理訪問外部的web伺服器。(註:本實驗關閉了squid伺服器的防火牆,如開啟了防火牆請添加規則 iptables  -I  INPUT  -p  tcp  --dport  3128  -j  ACCEPT

(5)在網站伺服器上的httpd服務網頁目錄上新建一個文件(大於10 MB)

在內部主機測試

4、修改squid的主配置文件,搭建一臺透明代理伺服器,結合iptables的重定向策略,開啟路由轉發。驗證內部客戶端能否使用透明代理訪問外部的web伺服器。

(1)修改squid的主配置文件/etc/squid.conf ,使其能支持透明代理。

(2)重新載入服務

squid  -k  reconfigure

(3)設置iptables的重定向策略

(4)開啟路由轉發功能,(/etc/sysctl.conf)

(5)關閉內部主機IE瀏覽器的區域網設置,並測試。

5、修改squid的主配置文件,設置ACL訪問控制,要求內部客戶端192.168.1.0網段在周一至周五的9:00—17:00才能使用代理伺服器上網,其他時間不允許上網,並且禁止下 載.mp3,.avi,.rmvb的視頻文件。針對某些目標地址建立黑名單,如 61.135.167.36 125.39.127.25

 修改squid伺服器的時間,客戶端驗證是否能上網。

(1)修改squid主配置文件/etc/squid.conf 

(2)建立相應的ip地址名單

mkdir /etc/squid

cd /etc/squid

vim ipblock.list

(3)重新載入服務

squid -k  reconfigure

(4)在內部主機上驗證(因為squid伺服器的時間滿足要求,所以能訪問)

可以修改squid伺服器的時間,再次測試(註:如果刪除了瀏覽器的數據還是能訪問,就殺死squid進程再打開。)

6、在squid伺服器上安裝Squid日誌分析軟體sarg,進行相關的配置,併在客戶端訪問日誌分析的網站。

(1)在squid伺服器上建立yum倉庫,使用yum方式安裝

執行命令yum  -y install  gd  進行安裝

(2)安裝sarg,解包後編譯安裝

(3)配置

cd  /etc/sarg/

vim sarg.conf

(4)運行

並啟用httpd服務

(5)在內部主機驗證,在IE瀏覽器上輸入http://192.168.1.1/sarg/

文章參考微信公眾號:L寶寶聊IT


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 眾所周知在預設參數情況下Linux對高併發支持並不好,主要受限於單進程最大打開文件數限制、內核TCP參數方面和IO事件分配機制等。下麵就從幾方面來調整使Linux系統能夠支持高併發環境。 iptables相關 如非必須,關掉或卸載iptables防火牆,並阻止kernel載入iptables模塊。這 ...
  • 開發的時候遇到一個問題,伺服器一旦重啟,項目生成的文件就丟失了,感覺很莫名其妙..一開始猜測是文件流沒有關閉,檢查了代碼,感覺沒毛病.於是先看看是關機丟失了文件還是開機被刪除了.下麵的腳本每秒執行一次,把指定目錄下的文件數量寫入到file.txt 中.最後把它加入開機自啟就好了. while tru ...
  • 看了幾篇privoxy的文章,感覺講的都不詳細,在此整理一遍。 註:本文下麵的內容僅討論思路,作為技術交流之用,請勿用作非法途徑. Privoxy是一款帶過濾功能的代理伺服器,針對HTTP、HTTPS協議。通過Privoxy的過濾功能,用戶可以保護隱私、對網頁內容進行過濾、管理cookies,以及攔 ...
  • //簡易ftp客戶端#include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #includ ...
  • Anaconda集合了python,Spyder,Jupyter notebook及conda 包管理器與環境管理器(含常用的panda,numpy等),省去單獨下載的繁瑣步驟,方便使用。 註:如過已經下載過python,可點擊python安裝包,再次setup,選擇uninstall. 如Gean ...
  • 要求:原操作系統代碼里只是支持了日語顯示,需要做的是實現對這個系統的漢字全形支持。 hzk16的介紹以及簡單的使用方法 HZK16字型檔是符合GB2312標準的16×16點陣字型檔,HZK16的GB2312-80支持的漢字有6763個,符號682個。其中一級漢字有3755個,按聲序排列,二級漢字有300 ...
  • 前言通常我們都是使用xtrabackup工具來備份資料庫,它是一個專業的備份工具,先來簡單介紹下它。Xtrabackuppercona提供的mysql資料庫備份工具,惟一開源的能夠對innodb和xtradb資料庫,它的增量備份不是基於二進位日誌文件來還原數據的,是基於mysql數據塊。特點:備份還... ...
  • 入門參考https://docs.microsoft.com/zh-cn/windows-server/get-started/nano-server-quick-start 1、創建VHD Import-module .\NanoServerImageGenerator.psm1 -Verbose... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...