Squid je plnohodnotný cachovací proxy podporující oblíbené síťové protokoly jako HTTP, HTTPS, FTP a další. Squid se většinou používá ke zlepšení výkonu webového serveru ukládáním opakovaných požadavků do mezipaměti, filtrováním webového provozu a přístupem k geograficky omezenému obsahu.
Tento výukový program vás provede procesem nastavení Squid Proxy na Ubuntu 18.04 a konfigurací webových prohlížečů Firefox a Google Chrome pro jeho používání.
Instalace Squid na Ubuntu #
Balíček Squid je součástí výchozích úložišť Ubuntu 18.04. Chcete-li jej nainstalovat, zadejte jako uživatel sudo následující příkazy:
sudo apt update
sudo apt install squid
Po dokončení instalace se služba Squid automaticky spustí.
Chcete-li ověřit, že instalace proběhla úspěšně a služba Squid je spuštěna, zadejte následující příkaz, který vytiskne stav služby:
sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: active (running) since Thu 2019-06-27 11:45:17 UTC
...
Konfigurace Squid #
Squid lze nakonfigurovat úpravou /etc/squid/squid.conf
soubor. Můžete také použít samostatné soubory s konfiguračními možnostmi, které lze zahrnout pomocí direktivy „include“.
Konfigurační soubor obsahuje komentáře, které popisují, co jednotlivé možnosti konfigurace dělají.
Před provedením jakýchkoli změn je dobré zálohovat původní konfigurační soubor:
sudo cp /etc/squid/squid.conf{,.orginal}
Chcete-li soubor upravit, otevřete jej v textovém editoru:
sudo nano /etc/squid/squid.conf
Ve výchozím nastavení je Squid nakonfigurován tak, aby naslouchal na portu 3128
na všech síťových rozhraních na serveru.
Pokud chcete změnit port a nastavit naslouchací rozhraní, vyhledejte řádek začínající http_port
a zadejte IP adresu rozhraní a nový port. Pokud není specifikováno žádné rozhraní Squid bude naslouchat na všech rozhraních.
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Spuštění Squidu na všech rozhraních a na výchozím portu by mělo být pro většinu uživatelů v pořádku.
V Squidu můžete ovládat, jak mohou klienti přistupovat k webovým zdrojům pomocí seznamů řízení přístupu (ACL).
Ve výchozím nastavení Squid umožňuje přístup pouze z localhost.
Pokud mají všichni klienti, kteří budou používat proxy, statickou IP adresu, můžete vytvořit ACL, který bude obsahovat povolené IP adresy.
Místo přidávání IP adres do hlavního konfiguračního souboru vytvoříme nový vyhrazený soubor, který bude obsahovat IP adresy:
/etc/squid/allowed_ips.txt192.168.33.1
# All other allowed IPs
Po dokončení otevřete hlavní konfigurační soubor a vytvořte nový ACL s názvem allowed_ips
(první zvýrazněný řádek) a povolit přístup k tomuto ACL pomocí http_access
směrnice (druhý zvýrazněný řádek):
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
Pořadí http_access
pravidla jsou důležitá. Ujistěte se, že jste přidali řádek před http_access deny all
.
http_access
direktiva funguje podobným způsobem jako pravidla firewallu. Squid čte pravidla shora dolů, a když pravidlo odpovídá pravidlům níže, nejsou zpracovány.
Kdykoli provedete změny v konfiguračním souboru, musíte restartovat službu Squid, aby se změny projevily:
sudo systemctl restart squid
Ověření olihně #
Squid může používat různé backendy, včetně Samba, LDAP a základního ověřování HTTP pro ověřené uživatele.
V tomto tutoriálu nakonfigurujeme Squid tak, aby používal základní ověřování. Jedná se o jednoduchou autentizační metodu zabudovanou do protokolu HTTP.
Použijeme openssl
vygenerovat hesla a připojit username:password
spárujte s /etc/squid/htpasswd
soubor pomocí tee
příkaz, jak je znázorněno níže:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Vytvořme uživatele jménem „josh“ s heslem „Sz$Zdg69
“:
printf "josh:$(openssl passwd -crypt 'Sz$Zdg69')\n" | sudo tee -a /etc/squid/htpasswd
josh:RrvgO7NxY86VM
Nyní, když je uživatel vytvořen, dalším krokem je povolit základní ověřování HTTP a zahrnout htpasswd
soubor.
Otevřete hlavní konfiguraci a přidejte následující:
/etc/squid/squid.conf# ...
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
První tři zvýrazněné řádky vytvářejí nový ACL s názvem authenticated
a poslední zvýrazněný řádek umožňuje přístup ověřeným uživatelům.
Restartujte službu Squid:
sudo systemctl restart squid
Konfigurace brány firewall #
Za předpokladu, že používáte UFW
pro správu firewallu budete muset otevřít port Squid. K tomu povolte profil „Squid“, který obsahuje pravidla pro výchozí porty Squid.
sudo ufw allow 'Squid'
Chcete-li ověřit typ stavu:
sudo ufw status
Výstup bude vypadat nějak takto:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Squid ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Squid (v6) ALLOW Anywhere (v6)
Pokud Squid běží na jiném, nevýchozím portu, například 8888
můžete povolit provoz na tomto portu pomocí:sudo ufw allow 8888/tcp
. Konfigurace vašeho prohlížeče pro použití proxy #
Nyní, když máte Squid nastaven, je posledním krokem konfigurace vašeho preferovaného prohlížeče, aby jej používal.
Firefox #
Níže uvedené kroky jsou stejné pro Windows, macOS a Linux.
-
V pravém horním rohu klikněte na ikonu hamburgeru
☰
otevřete nabídku Firefoxu: -
Klikněte na
⚙ Preferences
odkaz. -
Přejděte dolů na
Network Settings
a klikněte naSettings...
tlačítko. -
Otevře se nové okno.
- Vyberte
Manual proxy configuration
přepínač. - Zadejte IP adresu svého serveru Squid do
HTTP Host
pole a3128
vPort
pole. - Vyberte
Use this proxy server for all protocols
zaškrtávací políčko. - Klikněte na
OK
tlačítko pro uložení nastavení.
- Vyberte
V tomto okamžiku je váš Firefox nakonfigurován a můžete procházet internet přes Squid proxy. Chcete-li to ověřit, otevřete google.com
, zadejte „jaká je moje ip“ a měli byste vidět IP adresu vašeho serveru Squid.
Chcete-li se vrátit zpět k výchozímu nastavení, přejděte do Network Settings
, vyberte Use system proxy settings
přepínač a uložte nastavení.
Existuje několik pluginů, které vám také mohou pomoci nakonfigurovat nastavení proxy prohlížeče Firefox, jako je FoxyProxy.
Google Chrome #
Google Chrome používá výchozí systémové nastavení proxy serveru. Místo změny nastavení proxy operačního systému můžete buď použít doplněk, jako je SwitchyOmega, nebo spustit webový prohlížeč Chrome z příkazového řádku.
Chcete-li spustit Chrome pomocí nového profilu a připojit se k serveru Squid, použijte následující příkaz:
Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
Windows:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="http://SQUID_IP:3128"
Pokud profil neexistuje, bude vytvořen automaticky. Tímto způsobem můžete spustit více instancí Chrome současně.
Chcete-li ověřit, zda proxy server funguje správně, otevřete google.com
a zadejte „jaká je moje ip“. IP zobrazená ve vašem prohlížeči by měla být IP adresa vašeho serveru.