Od Turris OS 4.0 není Squid oficiálně podporován a byla odebrána možnost ho jednoduše instalovat přes rozhraní Foris.
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.
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.
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.
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
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
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
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
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
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.
Zde je popsáno jen základní nastavení proxy. Zde jsou další důležitá témata týkající se pokročilé funkcionality.