Uživatelské nástroje

Nástroje pro tento web


Squid

Squid je http cachující proxy. Pokud je v síti mnoho počítačů a prohlížečů, mnohé věci se z internetu stahují vícekrát. Například obrázek na hlavní stránce google si stáhne každý počítač. Použití proxy umožní, aby byl stažen jen jednou a tím jednak šetřit přenesená data a jednak zrychlit odpovědi. Turris, který jednak běží stále a jednak je na přípojce k internetu, je dobrým místem, kam proxy umístit.

Je třeba upozornit, že tento návod není pro úplné začátečníky. Squid nelze ovládat ani z Forisu ani z LuCI. Jeho nastavení dokáže vyjádřit jen velmi komplexní konfigurace a nešlo by rozumě převést do grafické prezentace. Navíc, tento návod ukazuje jen několik základních použití, celá dokumentace se nachází na stránkách http://squid-cache.org.

Instalace

Instalaci provedeme v rozhraní Foris. Na záložce „Updater“ zaškrtneme Squid a potvrdíme. To ale jen nainstaluje balíčky. Nyní je třeba použít příkazovou řádku, např. přes SSH.

Napřed zkontrolujeme nastavení v souboru /etc/squid/squid.conf. Výchozí nastavení je celkem minimalistické, bere v úvahu to, že je na routeru s flash pamětí a mělo by většině lidí fungovat. Přesto však je zde několik voleb, které stojí zato zkontrolovat.

Povolení klienti

Ve výchozím nastavení proxy smějí používat klienti s IP adresami vyjmenovanými v ACL localnet. Toto ACL obsahuje obvyklé rozsahy soukromých sítí. Ale v případě, že používáte neobvyklý rozsah, je třeba ho do seznamu přidat. Naopak, nepoužívané rozsahy je možné, pro zvýšení bezpečnosti, odebrat. Přístup z internetu každopádně chrání i firewall.

Povolené porty

Squid je nastaven tak, že nedovolí připojení na libovolný port vzdáleného serveru. V ACL Safe_ports jsou ty, na které se lze připojit nešifrovaně. V sekci SSL_ports ty, na které squid povolí udělat tunel a nechá je šifrované. Pokud navštěvujete některou službu na neobvyklém portu, je třeba takový port přidat do jednoho z těchto ACL.

Pokud si přejete mít možnost připojovat se kamkoliv, pak lze celá ACL SSL_ports, Safe_ports a CONNECT smazat, společně s řádky:

http_accesss deny !Safe_ports
http_access deny CONNECT !SSL_ports

Naslouchající porty

Squid obvykle poslouchá na portu 3128. Je možné tento port změnit, případně poslouchat na více portech zároveň, zapsáním více řádků s direktivou http_port. Taktéž je možné poslouchat jen na některém síťovém rozhraní, což lze zapsat za pomoci IP adresy následujícím způsobem.

http_port 192.168.1.1:3128

Spuštění

Proxy lze spustit pomocí init skriptu:

/etc/init.d/squid start

Je možné, že vypíše několik varování (například o neexistenci adresáře pro ukládání stránek či o neznámém doménovém jméně routeru). Pokud jsou to jen varování a ne chyby, tak by vše mělo fungovat.

Pokud se nevyskytne žádný problém, je třeba proxy zařadit do automatického spouštění:

/etc/init.d/squid enable

Nastavení klientů

Nyní je třeba nastavit klienty, aby proxy používali. Především je třeba nastavit webové prohlížeče. Některé vyžadují adresu a port, poté zadejte adresu Turrise a port nastavený výše. Pokud berou URL, pak vypadá nějak takto (samozřejmě se správnou IP adresou a portem):

http://192.168.1.1:3128

Vyzkoušejte, že načítání stránek funguje.

Existují i jiní klienti, kteří stahují webové stránky. Mnoho z nich, alespoň v Linuxu, lze nakonfigurovat pomocí proměnné prostředí.

export http_proxy=http://192.168.1.1:3128

Nastavení úložiště

Ve výchozím nastavení squid ukládá stránky jen do paměti. Pomocí direktivy cache_mem lze nastavit, kolik paměti k tomu může použít. Toto není limit na celý proces squid, jen na množství stránek držených v paměti.

cache_mem 512 MB

Stránky je možné ukládat i na trvalé úložiště. Neukládejte je však do interní flash paměti routeru. Jednak by se tím paměť brzy opotřebovala, ale především, je jí méně, než RAM paměti.

Připojte tedy nějaké externí úložiště ‒ například SD kartu či externí disk. Za předpokladu, že je úložiště připojené v /mnt/extern, tímto příkazem se vytvoří úložiště s maximální velikostí 1GB:

cache_dir	aufs	/mnt/extern/squid	1024	16	256

Podadresář squid je třeba vytvořit ručně a nastavit mu vlastníka na uživatele nobody. První z čísel udává počet MB, kolik squid smí zabrat, další dva jsou počty adresářů a podadresářů v struktuře souborů. Většinou stačí nastavit jen velikost.

Pomocí max_object_size lze nastavit maximální velikost souboru, který ještě bude uložen. Větší jsou považovány za stahované soubory, ne často zobrazované stránky a neukládají se.

maximum_object_size	32 MB

Interakce s nastavením sítě

Při použití proxy je třeba mít na paměti to, že počítač nekomunikuje přímo s internetem. Počítač komunikuje s routerem po lokální síti a router komunikuje do internetu. Zatímco software na sledování sítě pro potřeby projektu to neovlivní (ten sleduje spojení mezi internetem a routerem), majordomo tato data neuvidí. Majordomo nesleduje lokální komunikaci ‒ tedy komunikaci mezi počítačem a routerem. Stejně tak nesleduje komunikaci routeru s internetem.

Stejně tak, pokud na firewallu blokujete komunikaci mezi určitým počítačem a internetem, nezabrání to komunikaci skrz proxy. To však lze ošetřit pomocí ACL v konfiguraci proxy.

Další nastavení

Zde je popsáno jen základní nastavení proxy. Zde jsou další důležitá témata týkající se pokročilé funkcionality.