Vyhledávání na webu

Jak nastavit server "Squid Proxy" na Ubuntu a Debianu


Squid je nejoblíbenější webový proxy server HTTP pro ukládání do mezipaměti a předávání, který moje široká škála společností používala k ukládání webových stránek z webového serveru do mezipaměti, aby se zvýšila rychlost webového serveru, zkrátila se doba odezvy a snížila se využití šířky pásma sítě.

Přečtěte si také: Jak vytvořit HTTP proxy pomocí Squid na CentOS 7

V tomto článku vysvětlíme, jak nainstalovat squid proxy server v distribucích Ubuntu a Debian a používat jej jako HTTP proxy server.

Jak nainstalovat Squid na Ubuntu

Než začneme, měli byste vědět, že server Squid nemá žádné požadavky, ale množství využití RAM se může lišit v závislosti na klientech, kteří prohlížejí internet přes proxy server.

Balíček Squid je k dispozici k instalaci ze základního úložiště Ubuntu, ale předtím se ujistěte, že své balíčky aktualizujete spuštěním.

sudo apt update

Jakmile jsou vaše balíčky aktuální, můžete pokračovat v instalaci squid a spustit a povolit jej při startu systému pomocí následujících příkazů.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

V tomto okamžiku by váš webový proxy Squid měl být spuštěn a můžete ověřit stav služby pomocí.

sudo systemctl status squid
Ukázkový výstup
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Níže jsou uvedena některá důležitá umístění souborů squid, o kterých byste měli vědět:

  • Konfigurační soubor Squid: /etc/squid/squid.conf
  • Squid Access log: /var/log/squid/access.log
  • Protokol Squid Cache: /var/log/squid/cache.log

Výchozí konfigurační soubor obsahuje některé konfigurační direktivy, které je třeba nakonfigurovat, aby ovlivnily chování Squid.

Nyní otevřete tento soubor pro úpravy pomocí editoru Vi a proveďte změny, jak je uvedeno níže.

sudo vim /etc/squid/squid.conf

Nyní můžete vyhledávat v následujících řádcích a měnit je podle potřeby, v editoru Vi můžete tyto řádky hledat stisknutím 'ESC' a zadáním „/ ” klíč k psaní konkrétních řádků, které chcete hledat.

  • http_port : Toto je výchozí port pro HTTP proxy server, ve výchozím nastavení je 3128, můžete jej změnit na libovolný jiný port, můžete také přidat „transparent“ tag na konec řádku jako http_port 8888 transparentní, aby se Squid proxy choval jako transparentní proxy, chcete-li.
  • http_access zakázat vše : Tento řádek nikomu neumožní přístup k HTTP proxy serveru, proto jej musíte změnit na http_access povolit všem, abyste mohli začít používat váš proxy server Squid .
  • visible_hostname : Tato direktiva se používá k nastavení konkrétního názvu hostitele na server squid. Chobotnici můžete dát libovolný název hostitele.

Po provedení výše uvedených změn můžete restartovat proxy server Squid pomocí příkazu.

sudo systemctl restart squid

Konfigurace Squid jako HTTP proxy na Ubuntu

V této části konfigurace squid vám vysvětlíme, jak nakonfigurovat squid jako HTTP proxy pomocí pouze klientské IP adresy pro autentizaci.

Přidat Squid ACL

Pokud chcete povolit pouze jedné IP adrese přístup k internetu přes váš nový proxy server, budete muset definovat nový acl (seznam řízení přístupu) v konfiguračním souboru.

sudo vim /etc/squid/squid.conf

Pravidlo acl, které byste měli přidat, je:

acl localnet src XX.XX.XX.XX

Kde XX.XX.XX.XX je adresa IP klientského počítače. Tento acl by měl být přidán na začátek sekce ACL, jak je znázorněno na následujícím snímku obrazovky.

Vždy je dobrým zvykem definovat komentář vedle ACL, který bude například popisovat, kdo používá tuto IP adresu.

acl localnet src 192.168.0.102  # Boss IP address

Aby se nové změny projevily, budete muset restartovat službu Squid.

sudo systemctl restart squid

Otevřete porty v Squid Proxy

Ve výchozím nastavení jsou v konfiguraci squid povoleny pouze určité porty, pokud chcete přidat další, definujte je v konfiguračním souboru, jak je znázorněno.

acl Safe_ports port XXX

Kde XXX je číslo portu, který chcete povolit. Opět je dobré definovat u acl komentář, který bude popisovat, k čemu bude port použit.

Aby se změny projevily, budete muset squid ještě jednou restartovat.

sudo systemctl restart squid

Ověření proxy klienta Squid

Chcete-li uživatelům umožnit autentizaci před použitím proxy, musíte v konfiguračním souboru povolit základní http ověřování, ale předtím musíte nainstalovat balíček apache2-utils pomocí následujícího příkazu.

sudo apt install apache2-utils

Nyní vytvořte soubor s názvem “passwd”, do kterého bude později uloženo uživatelské jméno pro ověření. Squid běží s uživatelem “proxy “, takže soubor by měl být ve vlastnictví tohoto uživatele.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Nyní vytvoříme nového uživatele s názvem „tecmint“ a nastavíme jeho heslo.

sudo htpasswd /etc/squid/passwd tecmint

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

Nyní, abyste povolili základní http ověřování, otevřete konfigurační soubor.

sudo vim /etc/squid/squid.conf

Po portech ACL přidejte následující řádky:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Uložte soubor a restartujte chobotnici, aby se nové změny projevily:

sudo systemctl restart squid

Blokovat webové stránky na Squid Proxy

Chcete-li zablokovat přístup k nechtěným webovým stránkám, nejprve vytvořte soubor s názvem „blacklisted_sites.acl“, který do něj uloží weby na černé listině.

sudo touch /etc/squid/blacklisted_sites.acl

Nyní přidejte webové stránky, ke kterým chcete například zablokovat přístup.

.badsite1.com
.badsite2.com

Následující tečka informuje chobotnici, aby zablokovala všechny odkazy na tyto stránky včetně www.badsite1, subsite.badsite1.com atd.

Nyní otevřete konfigurační soubor Squid.

sudo vim /etc/squid/squid.conf

Hned za výše uvedené seznamy ACL přidejte následující dva řádky:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Nyní uložte soubor a restartujte chobotnici:

sudo systemctl restart squid

Blokujte konkrétní klíčové slovo pomocí Squid

Chcete-li zablokovat seznam klíčových slov, nejprve vytvořte soubor s názvem „blockkeywords.lst“, který do něj uloží klíčová slova z černé listiny.

sudo touch /etc/squid/blockkeywords.lst

Nyní přidejte klíčová slova, ke kterým chcete například zablokovat přístup.

facebook
instagram
gmail

Nyní otevřete konfigurační soubor Squid a přidejte následující pravidlo.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Nyní uložte soubor a restartujte chobotnici:

sudo systemctl restart squid

Jakmile je vše správně nakonfigurováno, můžete nyní nakonfigurovat webový prohlížeč místního klienta nebo síťová nastavení operačního systému tak, aby používal váš nově nakonfigurovaný squid HTTP proxy.

Nakonfigurujte klienta tak, aby používal Squid Proxy

Chcete-li nyní otestovat, zda váš proxy server funguje nebo ne, můžete otevřít Firefox a přejít na Upravit –> Předvolby –> Upřesnit –> Síť –> Nastavení a vybrat „Ruční konfigurace proxy “ a zadejte IP adresu proxy serveru a port, který se má použít pro všechna připojení, jak je uvedeno dále.

Jakmile vyplníte všechny požadované údaje o proxy, budete moci surfovat po webu pomocí proxy serveru Squid, totéž můžete udělat v jakémkoli jiném prohlížeči nebo programu, který chcete.

Abyste se ujistili, že surfujete na webu pomocí svého proxy serveru, můžete navštívit http://www.ipaddresslocation.org/, v pravém horním rohu musíte vidět stejnou IP adresu jako váš server IP adresa.

Další další konfigurační nastavení najdete v oficiální dokumentaci olihně. Pokud máte nějaké dotazy nebo připomínky, přidejte je prosím do sekce komentářů níže.