Všechna nastavení Squid proxy serveru jsou zapsána v souboru
/etc/squid/squid.conf. Pro první spuštění Squida
není třeba v tomto souboru provádět žádné změny, ale externím klientům
bude zamítnut přístup. Proxy bude dostupná pouze pro
localhost.
Výchozí port je 3128. Předinstalovaný soubor
/etc/squid/squid.conf obsahuje podrobné komentáře
s popisy voleb a mnoho příkladů. Téměř všechny položky začínají znakem
# (komentář) a obsahují podrobné informace. Zadané
hodnoty jsou téměř vždy shodné s výchozími, takže odstranění komentáře bez
změny hodnoty má pětšinou minimální vliv. Lepší je ale příklady nechat
beze změny a zadat volby se změněnými parametry na nový řádek pod příklad.
Tak budete mít přehled o výchozích hodnotách a vámi provedených změnách.
![]() | Přizpůsobení konfiguračního souboru po aktualizaci |
|---|---|
Pokud jste aktualizovali Squid ze starší verze, doporučuje se upravit nový
| |
Toto je port, na kterém poslouchá Squid požadavky klientů.
Přednastaven je na 3128, ale běžný
je také port 8080. Další porty
můžete přidat (oddělujte je mezerou).
hostname
type
proxy-port
icp-port
Zde uveďte nadřazenou proxy, např. když chcete využívat proxy
poskytovatele. Jako hostname uveďte
jméno a IP adresu používané proxy.
Jako type zadejte
parent.
Jako číslo portu poskytovatele (proxy-port)
se nejčastěji používá 8080.
icp-port můžete nastavit na
7 nebo 0, pokud
neznáte ICP port nadřazené proxy a její používání není dohodnuto
s poskytovatelem. Navíc byste za čísla portů měli zapsat volby
default a no-query, čímž zamezíte
používání ICP protokolu. Squid se pak vůči proxy poskytovatele chová
jako obyčejný webový prohlížeč.
Tato položka stanoví, kolik operační paměti bude Squid pro cache
používat. Přednastaveno je 8 MB.
Položka cache_dir určuje adresář, do kterého
budou na disku ukládány jednotlivé objekty. Čísla za cestou k adresáři
znamenají: maximální velikost cache v MB; počet podadresářů; a počet
podadresářů podadresářů. Parametr ufs by měl zůstat
beze změny. Přednastavenými hodnotami pro velikost cache jsou
100 MB diskového prostoru v adresáři
/var/cache/squid, kde bude vytvořeno 16 adresářů,
každý z nich se 256 podadresáři. Při vyčleňování místa na disku byste
si měli nechat dostatek rezerv, rozumné je vytvářet cache o velikosti
50 až 80 procent volného místa. Kromě toho byste měli poslední dvě čísla
(počty adresářů) zvětšovat velice opatrně, protože režie adresářových
struktur může snížit výkon systému. Pokud máte pro cache více disků,
můžete vytvořit odpovídající množství řádků s definicí
cache_dir.
Cesta k protokolovému souboru.
Cesta k protokolovému souboru.
Cesta k protokolovému souboru.
Tyto tři volby definují cesty k protokolovým souborům a není třeba je měnit. Pouze v případě, že je cache velice často dotazována, se může hodit přesunout protokolové soubory na jiný disk.
Změnou na on získáte čitelné protokolové soubory, se kterými si ale neporadí některé programy, které mají na starosti vyhodnocování.
Touto položkou můžete maskovat IP adresy zapisované do logů
a skrýt tak identitu klientů. Pokud zde napíšete např.
255.255.255.0, tak
bude poslední pozice IP adresy vynulována.
Zde nastavte heslo, které bude Squid používat pro anonymní FTP login. Může mít smysl uvést zde platnou e-mailovou adresu, protože některé FTP servery její platnost kontrolují.
Tato volba slouží pro uvedení e-mailové adresy, na kterou se pošle
zpráva v případě neočekávaného pádu. Přednastaveno je
webmaster.
Squid umí také rotovat uložené protokolové soubory, pokud ho spustíte
s volbou squid -k rotate.
Soubory jsou číslovány, jakmile se dojde k nastavené hodnotě,
přepíše se nejstarší soubor. Výchozí nastavení je 0,
protože pro archivaci a mazání protokolových souborů používá SUSE Linux
cron úlohu nastavenou v /etc/logrotate/squid.
domainVolbou append_domain můžete určit, která doména bude automaticky připojena v případě, že není žádná uvedena. Nejčastěji se zde uvádí vlastní doména, takže stačí v prohlížeči uvést www a dostanete se na vlastní webserver.
Když nastavíte na off, odstraní Squid
IP adresu a jméno počítače klienta z HTTP dotazu.
Ve standardním případě není třeba toto nastavení upravovat. Pokud ale
máte vytáčenou linku, pak se může stát, že Internet nebude po nějakou
dobu přístupný. To je tím, že si Squid poznamenává neúspěšné dotazy a
brání se znovu dotazovat, i když je již spojení s Internetem obnoveno.
V tom případě změňte minutes na
seconds a
nechte znovu načíst stránku v prohlížeči.
acl_name
Pokud chcete zabránit tomu, aby Squid vyřizoval požadavky přímo z
Internetu, pak použijte tuto volbu. V tom případě je ale potřeba,
aby existovala ještě další proxy, které bude Squid své požadavky
zasílat. Tu je třeba nastavit ve volbě cache_peer.
Pokud zadáte jako acl_name
all, pak zajistíte, že všechny požadavky
budou předávány nadřazené proxy. To je třeba např.
tehdy, když poskytovatel striktně trvá na využívání jeho proxy, nebo
když je firewall nastaven tak, že nepovoluje přímý přístup
k Internetu.
Squid obsahuje velice sofistikovaný systém pro řízení přístupu k proxy. Pomocí ACL je velice dobře a jednoduše konfigurovatelný. V zásadě se jedná o seznam pravidel, která jsou jedno po druhém zpracovávány. ACL je třeba definovat předtím, než budou použita. Některá jsou již definována, jako je all a localhost. Ale pouhým vytvořením ACL ještě nic neprovedete. Teprve, když ho použijete např. spolu s http_access, tak se změny projeví.
acl_name
type
data
ACL potřebuje pro svou definici minimálně tři parametry.
Název acl_name může být libovolný.
U type můžete zvolit z celé řady různých možností,
které jsou uvedeny v části ACCESS CONTROLS souboru
/etc/squid/squid.conf. Jaká
data uvést, záleží na typu ACL.
Lze je také načíst ze souboru, například, přes jméno počítače,
IP adresu nebo URL. Následují krátké příklady:
acl mujnet srcdomain .ma-domena.cz acl ucitele src 192.168.1.0/255.255.255.0 acl studenti src 192.168.7.0-192.168.9.0/255.255.255.0 acl obed time MTWHF 12:00-15:00
acl_nameVolbou http_access určíte, kdo může proxy používat a k čemu může na Internetu přistupovat. Zde využijete výše definovaná ACL nebo použijete ta přednastavená, tj. localhost a all. Přístup může být povolen nebo zakázán pomocí hodnot deny či allow. Můžete vytvořit celý seznam položek http_access, které budou zpracovávány odshora dolů a podle toho, co se načte jako první bude přístup povolen nebo zakázán. Jako poslední položka by měl být vždy http_access deny all. V následujícím příkladu povolíme přístup všem lokálním uživatelům, zatímco všem ostatním ho zakážeme.
http_access allow localhost http_access deny all
V dalším příkladu (s využitím vlastních ACL) mají učitelé povolen stálý přístup k Internetu, zatímco studenti k němu mají přístup pouze od pondělí do pátku v čase oběda.
http_access deny localhost http_access allow ucitele http_access allow studenti obed time http_access deny all
Volby http_access byste, kvůli přehlednosti,
měli psát pouze na jedno, předem určené, místo v souboru
/etc/squid/squid.conf. A to mezi řádky:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS
a uzavírající text:
http_access deny all
Tato volba slouží pro tzv. přesměrování, kdy jsou dotazy předávány externímu programu, v našem případě squidGuard, který dokáže zakázat přístup k určeným URL. Spolu s proxy autentizací a vhodnými ACL tak můžete velice precizně řídit přístup k Internetu pro různé skupiny. squidGuard je v separátním balíku a musí se tedy nainstalovat zvlášť.
Pokud je třeba autentizovat uživatele při přístupu k proxy, můžete použít program pam_auth. Při prvním přihlášení uživatele se spustí přihlašovací dialog, kde musí uživatel vložit uživatelské jméno a heslo. Navíc se stále vyžaduje ACL, připojit se mohou pouze klienti s platným loginem:
acl password proxy_auth REQUIRED http_access allow password http_access deny all
Klíčové slovo REQUIRED za proxy_auth můžete nahradit seznamem povolených jmen uživatelů nebo cestou k takovému seznamu.
acl_name
Tato volba zajistí, že za všechny klienty definované v ACL je proveden
identifikační dotaz, který prověří identitu uživatele. Když nastavíte
acl_name na all, bude
se provádět dotazování pro všechny klienty. Na klientech však musí běžet
identifikační démon. V Linuxu můžete nainstalovat program pidentd, pro
Windows existuje volně dostupný software, který si můžete stáhnout
z Internetu. Aby byli připuštěni pouze klienti s úspěšným identifikačním
dotazem ident lookup, je potřeba opět definovat
vhodný ACL.
acl identhosts ident REQUIRED http_access allow identhosts http_access deny all
Také zde je možné nahradit REQUIRED seznamem povolených jmen uživatelů. Používání ident může přístup výrazně zpomalit, protože kontrola se provádí při každém dotazu.