如何在 Ubuntu 20.04 上安裝和配置 Squid 代理服務器


烏賊 是一個全功能的基於 Linux 的代理應用程序,主要用於流量過濾、安全和 DNS 查找。它還用於緩存資源以提高 Web 服務器性能。簡單的說, 魷魚服務器 充當台式計算機和 Internet 之間的中介的計算機,將傳入的客戶端請求重定向到存儲數據以便於檢索的服務器。 它支持多種協議,例如 HTTP、FTP、TLS、SSL、Internet Gopher 和 HTTPS。
在本指南中 如何在 Ubuntu 20.04 上安裝和配置 Squid 代理。

如何在 CentOS 7 上安裝和配置 Squid 代理

Ubuntu 20.04 服務器上的 Squid 代理服務器

在開始之前,您應該將系統包更新到最新版本。您可以通過以下方式更新它:

請注意,所有命令都以 root 身份運行。

$ sudo apt-get update
$ sudo apt-get upgrade

更新所有軟件包後,重新啟動系統以應用更改。
要安裝 Squid 代理,請運行以下命令:您還可以通過在系統引導時啟動它來檢查狀態。

$ sudo apt-get install -y squid
$ sudo systemctl start squid
$ sudo systemctl enable squid
$ sudo systemctl status squid

如果 squid 已安裝並正確運行,您應該會看到如下輸出:

在 Ubuntu 20.04 上配置 Squid 代理服務器

squid 配置文件位於此處: /etc/squid/squid.conf 什麼時候 /etc/squid/conf.d/ 目錄。讓我們編輯 /etc/squid/squid.conf 使用文本編輯器。備份原始文件,以便在出現問題時可以使用它 cp 命令

$ sudo cp -v /etc/squid/squid.conf{,.bkp}

現在 /etc/squid/squid.conf. 在您喜歡的文件編輯器中打開文件。

$ sudo nano /etc/squid/squid.conf

更改 squid 默認端口

這個 默認 Squid TCP 端口 是 3128。要改變這一點, squid.conf 歸檔並查找 http_port 金屬絲。更改為所需的端口號並保存文件。

#http_port 3128
http_port 8080

確保端口允許通過防火牆

$ sudo ufw allow 8080/tcp
$ sudo ufw enable

設置 Squid 緩存內存大小

使用以下設置來配置所需的緩存:就我而言,我使用的是 512 MB。

cache_mem 512 MB

指定要使用的 DNS 名稱服務器

要定義您自己的 DNS 服務器,請使用如下所示的命令。

dns_nameservers 8.8.8.8 8.8.4.4

為 Squid 代理服務器定義 ACL

ACL (訪問控制列表) 是定義通過代理服務器允許和拒絕什麼的語句。每個語句必須以 acl 開頭,後跟規則名稱。名稱後跟 acltype,最後是參數或文件。如果使用文件,則文件中的每一行都必須包含一項。

acl aclname acltype argument..
acl aclname acltpe “file”…

例子:

允許 LAN 網絡通過 Squid 代理服務器
創建 ACL 規則

acl my_lan src 192.168.100.0/24

使用 http_access 指令根據定義的規則允許或拒絕。在我們的例子中,我們必須允許

http_access allow my_lan

請注意,每次創建 ACL 訪問規則時,最後一條規則必須為拒絕。這應該在允許所有需要的站點時完成。否則,可能會阻止對所需站點的訪問。

如何使用 Squid 代理服務器阻止對特定網站的訪問

阻止 twitter.com 和 facebook.com:

acl deniedsites dstdomain facebook.com twitter.com
http_access deny deniedsites

請注意,每次更改後必須重新啟動 squid 服務器。

$ systemctl restart squid

按關鍵字阻止 URL

假設 URL 包含諸如“foo”或“browse.php?u=”之類的關鍵字,請使用 url_regex acl 阻止它。

acl urlkeywordsblocks url_regex -i "/etc/squid/blocked-urls-keyword.conf"
http_access deny urlkeywordsblocks

創造 /etc/squid/blockd-urls-keyword.conf 如下:

sudo nano /etc/squid/blocked-urls-keyword.conf

其他網址/關鍵字:

foo
browse.php?u=

配置基於 IP 的身份驗證

您可以通過多種方式限制客戶端對 Internet 的訪問。在本節中,我們將配置 Squid 以基於客戶端的 IP 地址進行身份驗證。
為此,請編輯 Squid 的默認配置文件。

$ nano /etc/squid/squid.conf

將以下行添加到文件頂部:

acl client1 src 192.168.100.8
acl client2 src 192.168.100.17
http_access allow client1 client2

這是保存關閉後的文件。然後重新啟動 Squid 服務以應用更改。

$ systemctl restart squid

客戶 1 什麼時候 客戶 2 標識客戶端計算機的名稱。 192.168.100.8 什麼時候 192.168.100.17 客戶端計算機的 IP 地址。

目前,只有配置了 IP 192.168.100.8 和 192.168.100.17 的計算機可以訪問 Internet。

配置基於用戶的身份驗證

您還可以將 Squid 配置為基於用戶和密碼進行身份驗證。為此,您需要在系統上安裝 Apache utils 包。
通過運行以下命令安裝 Apache 實用程序包:

$ sudo apt install apache2-utils -y

安裝後,使用以下命令創建第一個用戶:

htpasswd /etc/squid/passwd client1

系統將提示您設置密碼,如下所示:

New password: 
Re-type new password:

為用戶 client1 添加密碼
然後使用以下命令創建第二個用戶:

$ htpasswd /etc/squid/passwd client2

如下設置密碼。

New password: 
Re-type new password:
Adding password for user client2

接下來,打開 Squid 的默認配置文件。

$ nano /etc/squid/squid.conf

刪除上一節中添加的前三行,並將以下行添加到文件頂部。

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

保存並關閉文件。然後重新啟動 Squid 代理服務以應用更改。

$ sudo systemctl restart squid

現在您必須提供用戶名和密碼才能訪問互聯網。

Squid 代理認證

接下來,您需要在 Mozilla Web 瀏覽器中定義代理服務器。
轉到您的客戶端系統,打開 Mozilla Web 瀏覽器並鍵入:[編集]=>[設定]點擊。

配置代理 Firefox

[ネットワーク設定]點擊部分[設定]點擊。顯示以下頁面。

[ネットワーク設定]點擊部分[設定]點擊。顯示以下頁面。

[手動プロキシ設定]選擇單選按鈕並[HTTP ホスト]在字段中輸入 Squid 服務器的 IP 地址,然後單擊[ポート]在字段中輸入 8080,然後[すべてのプロトコルにこのプロキシ サーバーを使用する]選中復選框並[OK]單擊按鈕以保存您的設置。
確保 Squid 代理設置有效。 打開您的 Firefox 瀏覽器並蒐索 youtube.com 等受限制的網站,以了解發生在我身上的事情。 您將看到一個頁面顯示“代理服務器拒絕連接”。

打開另一個無限站點。您將被要求進行身份驗證。輸入您的用戶名和密碼後,您將能夠訪問該網站。

結論是

這是一步一步的指南 如何在 Ubuntu 20.04 上安裝和配置 Squid 代理服務器.我希望你喜歡它。請在評論部分分享您的反饋。