Jak nainstalovat a nakonfigurovat Squid Proxy na CentOS 7
Squid je plně vybavený proxy pro ukládání do mezipaměti podporující populární síťové protokoly, jako jsou HTTP, HTTPS, FTP a další. Umístění chobotnice před webový server může výrazně zlepšit výkon 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 tutoriál vysvětluje, jak nastavit Squid na CentOS 7 a nakonfigurovat webové prohlížeče Firefox a Google Chrome pro použití proxy.
instalace Squid na CentOS #
Squid balíček je součástí výchozího CentOS 7 repozitářů. Chcete-li jej nainstalovat, spusťte následující příkaz jako sudo user:
sudo yum install squid
po dokončení instalace spusťte a povolte službu Squid:
sudo systemctl start squid
sudo systemctl enable squid
Chcete-li ověřit, že instalace byla úspěšná, zadejte následující příkaz, který vytiskne stav služby:
sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...
konfigurace Squid #
Squid lze nakonfigurovat úpravou souboru /etc/squid/squid.conf
. Další soubory s možnostmi konfigurace lze zahrnout pomocí směrnice“ zahrnout“.
před provedením jakýchkoli změn zálohujte původní konfigurační soubor příkazem cp
:
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 poslouchal na portu 3128
na všech síťových rozhraních na serveru.
pokud chcete změnit port a nastavit poslechové rozhraní, vyhledejte řádek začínající http_port
a zadejte adresu IP rozhraní a nový port. Není-li uvedeno žádné rozhraní Squid bude poslouchat na všech rozhraních.
# Squid normally listens to port 3128http_port IP_ADDR:PORT
spuštění Squid 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.
přístup k serveru Squid můžete ovládat pomocí seznamů řízení přístupu (ACL).
ve výchozím nastavení umožňuje Squid přístup pouze z localhost a localnet.
pokud mají všichni klienti, kteří budou používat proxy, statickou IP adresu, můžete vytvořit ACL, která bude obsahovat povolené IP adresy.
namísto přidání IP adres do hlavního konfiguračního souboru vytvoříme nový vyhrazený soubor, který bude obsahovat IP adresy:
192.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 povolte přístup k tomuto ACL pomocí směrnice http_access
(druhý zvýrazněný řádek):
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all
pořadí pravidel http_access
je důležité. Nezapomeňte přidat řádek před http_access deny all
.
směrnice http_access
funguje podobně jako pravidla brány firewall. Squid čte pravidla shora dolů, a když se pravidlo shoduje s níže uvedenými pravidly, nejsou zpracována.
kdykoli provedete změny v konfiguračním souboru, musíte restartovat službu Squid, aby se změny projevily:
sudo systemctl restart squid
Squid Authentication #
Squid může používat různé zadní konce, včetně Samba, LDAP a HTTP basic auth pro ověřené uživatele.
v tomto příkladu nakonfigurujeme Squid tak, aby používal základní auth. Jedná se o jednoduchou metodu ověřování zabudovanou do protokolu HTTP.
pomocí openssl
vygenerujeme hesla a připojíme pár username:password
k souboru /etc/squid/htpasswd
příkazem tee
, jak je uvedeno níže:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
například pro vytvoření uživatele s názvem“ mike „s heslem“ Pz$lPk76
“ byste spustit:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
dalším krokem je nakonfigurovat Squid tak, aby povolil základní autentizaci HTTP a použil soubor.
otevřete hlavní konfiguraci a přidejte následující:
# ...auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all
s prvními třemi zvýrazněnými řádky vytváříme nový ACL s názvem authenticated
. 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 #
pokud používáte firewallbudete muset otevřít port 3128
. Chcete-li tak učinit, spusťte následující příkazy:
sudo firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
konfigurace prohlížeče pro použití Proxy #
Nyní, když máte Squid nastaven, posledním krokem je nakonfigurovat preferovaný prohlížeč tak, 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
☰
a otevřete nabídku Firefoxu: -
klikněte na odkaz
⚙ Preferences
. -
Přejděte dolů do sekce
Network Settings
a klikněte na tlačítkoSettings...
. -
otevře se nové okno.
- vyberte přepínač
Manual proxy configuration
. - zadejte IP adresu serveru Squid do pole
HTTP Host
a3128
do polePort
. - zaškrtněte políčko
Use this proxy server for all protocols
. - klikněte na tlačítko
OK
pro uložení nastavení.
- vyberte přepínač
v tomto okamžiku je Váš Firefox nakonfigurován a můžete procházet Internet prostřednictvím serveru Squid proxy. Chcete-li to ověřit, otevřete google.com
, zadejte „co je moje ip“ a měli byste vidět IP adresu serveru Squid.
Chcete-li se vrátit zpět na výchozí nastavení, přejděte na Network Settings
, vyberte přepínač Use system proxy settings
a uložte nastavení.
existuje také několik pluginů, které vám mohou pomoci nakonfigurovat nastavení proxy serveru Firefoxu, jako je FoxyProxy.
Google Chrome #
Google Chrome používá výchozí nastavení systému proxy. Namísto změny nastavení proxy operačního systému můžete buď použít doplněk, jako je Switchyomeganebo spusťte 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"
okna :
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"
profil bude vytvořen automaticky, pokud neexistuje. Tímto způsobem můžete spustit více instancí prohlížeče Chrome současně.
Chcete-li potvrdit, že proxy server funguje správně, otevřete google.com
a zadejte „co je moje ip“. IP zobrazená ve Vašem prohlížeči by měla být IP adresa vašeho serveru.
závěr #
naučili jste se, jak nainstalovat squid na CentOS 7 a nakonfigurovat prohlížeč tak, aby jej používal.
Squid je jedním z nejpopulárnějších serverů pro ukládání do mezipaměti proxy. Zlepšuje rychlost webového serveru a může vám pomoci omezit přístup uživatelů k internetu.