GNU/Linux >> Znalost Linux >  >> Panels >> Webmin

Proxy server Squid

Tento článek vysvětluje, co je HTTP nebo FTP proxy server, a poté vysvětluje, jak lze Webmin použít ke konfiguraci oblíbeného proxy serveru Squid.

Obsah

Úvod do proxy a Squid

HTTP proxy server je v podstatě program, který přijímá požadavky od klientů na URL, načítá je jménem klienta a vrací výsledky klientovi. Proxy se používají v sítích, kde klienti nemají přímý přístup k internetu, ale přesto potřebují mít možnost prohlížet webové stránky. Proxy se také používá pro ukládání běžně požadovaných stránek do mezipaměti, takže pokud chce více než jeden klient zobrazit stejnou stránku, stačí ji stáhnout pouze jednou.

Mnoho společností a organizací má své brány firewall nastaveny tak, aby blokovaly veškerý příchozí a odchozí provoz systémy v interních sítích LAN. To může být provedeno z bezpečnostních důvodů nebo z důvodu omezení toho, k čemu mají zaměstnanci přístup na internetu. Vzhledem k tomu, že možnost prohlížet webové stránky je nesmírně užitečná, je často nastaven proxy server, který umožňuje přístup k webovým stránkám.

Velké organizace a poskytovatelé internetových služeb s mnoha klientskými počítači přistupujícími na web mohou také chtít provozovat proxy server, aby se snížilo zatížení jejich sítí. Protože jedním z hlavních úkolů serveru proxy je ukládání stránek požadovaných klienty do mezipaměti, každá stránka, která je požadována více než jednou, bude vrácena z mezipaměti namísto načtení z původního serveru. Z tohoto důvodu jsou klientské systémy často nakonfigurovány nebo nuceny používat pro přístup na web proxy pro ukládání do mezipaměti.

Proxy je užitečný pouze v případě, že klientské prohlížeče jsou nakonfigurovány tak, aby jej používaly namísto přímého připojení k webovým stránkám. Naštěstí každý existující webový prohlížeč a téměř všechny programy, které stahují soubory přes HTTP pro různé účely, lze nakonfigurovat tak, aby používal proxy. To jim říká, aby místo toho vytvořili speciální proxy HTTP připojení k proxy serveru a uvedli úplnou adresu URL ke stažení.

Proxy nejsou jen pro HTTP – mohou také podporovat FTP a požadavky protokolů Gopher od klientů, které obsluhují vytvořením FTP nebo Gopher spojení se skutečným požadovaným serverem. Proxy dokáže zpracovat i šifrovaná připojení SSL, i když nedokáže požadavek dešifrovat. Místo toho proxy jednoduše předá všechna data z klienta na cílový server a zpět.

Squid je nejoblíbenější proxy server pro systémy Unix/Linux. Je to open source a je volně dostupný ke stažení z www.squid-cache.org a je součástí standardního balíčku se všemi distribucemi Linuxu a mnoha dalšími operačními systémy. Squid podporuje proxy, caching a HTTP akceleraci a má velké množství konfiguračních možností pro řízení chování těchto funkcí.

Squid čte svou konfiguraci z textového souboru squid.conf, který se obvykle nachází v adresáři /etc nebo pod ním. Tento soubor se skládá ze série direktiv, jedna na řádek, z nichž každá má název a hodnotu. Každá direktiva nastavuje nějakou možnost, jako je TCP port pro naslouchání nebo adresář pro ukládání souborů uložených v mezipaměti. Modul Webmin's Squid upravuje tento soubor přímo a ignoruje jakékoli komentáře nebo direktivy, kterým nerozumí.

V průběhu let bylo vydáno mnoho verzí Squidu, z nichž každá podporovala různé konfigurační direktivy nebo přiřazovala různý význam stejným direktivám. To znamená, že soubor squid.conf z verze 2.0 nemusí být kompatibilní s Squid 2.5 - a soubor z Squid 2.5 určitě nebude fungovat s verzí 2.0. Naštěstí Webmin ví, které direktivy každé vydání podporuje, a umožňuje editaci pouze těch, které jsou známé běžící verzi Squid.

Webové stránky uložené v mezipaměti jsou uloženy v souborech ve víceúrovňové adresářové struktuře pro zvýšení výkonu souborového systému. Squid lze nakonfigurovat tak, aby používal více samostatných adresářů mezipaměti, takže můžete soubory rozložit na různé disky a zlepšit tak výkon. Pokaždé, když je požadována stránka, která lze uložit do mezipaměti, je uložena do souboru, takže když dorazí následný požadavek na stejnou stránku, soubor lze číst a data z něj obsluhovat. Protože se některé webové stránky v průběhu času mění (nebo jsou dokonce dynamicky generovány), Squid sleduje poslední změny a data vypršení platnosti webových stránek, aby mohl vymazat data z mezipaměti, když jsou zastaralá.

Skutečným programem, který zpracovává požadavky klientů, je trvale běžící serverový proces zvaný squid. Může také spustit několik dalších dílčích procesů pro úlohy, jako je vyhledávání DNS nebo autentizace klienta, ale veškeré skutečné zpracování protokolu HTTP se provádí v jediném hlavním procesu. Na rozdíl od jiných podobných serverů, jako je Apache nebo Sendmail, Squid nespouští ani nepoužívá dílčí procesy ke zpracování požadavků klientů.

Squid lze zkompilovat na všech variantách Unixu, které Webmin podporuje, a na všech funguje téměř identicky. To znamená, že uživatelské rozhraní modulu Webmin je stejné i napříč operačními systémy, s výjimkou výchozích cest, které používá pro programy Squid a konfigurační soubory.

Modul Squid Proxy Server

Pokud chcete nastavit nebo nakonfigurovat Squid z Webminu, budete muset použít modul Squid Proxy Server, který najdete v kategorii Servery. Po kliknutí na jeho ikonu se zobrazí stránka zobrazená na obrázku níže, za předpokladu, že je Squid správně nainstalován a nakonfigurován. Jak vidíte, hlavní stránka se skládá pouze z tabulky ikon, na každou z nich lze kliknout a vyvolat formulář pro úpravu nastavení v dané kategorii.


Hlavní stránka modulu Squid

Pokud jste dříve nenakonfigurovali nebo nespustili Squid na vašem systému, adresář mezipaměti pravděpodobně ještě nebyl nastaven. Modul to zjistí a nad tabulkou ikon zobrazí zprávu jako *Adresář mezipaměti Squid /var/spool/squid nebyl inicializován*. Chcete-li inicializovat mezipaměť, postupujte takto  :

  1. Pokud nejste spokojeni se zobrazeným adresářem mezipaměti, nyní je čas jej změnit. Než budete pokračovat, postupujte podle pokynů v části *Přidání adresářů mezipaměti* a definujte své vlastní adresáře.
  2. V jako uživatel Unix zadejte jméno uživatele, který bude vlastnit soubory mezipaměti a pod kterým bude proces démona běžet. Obvykle to bude speciální uživatel chobotnice vytvořený pro tento účel (a pole bude implicitně nastaveno na chobotnici, pokud takový uživatel existuje), ale ve skutečnosti to udělá každý uživatel. Doporučuji použít modul Uživatelé a skupiny (popsaný v kapitole 4) k vytvoření uživatele s názvem squid, jehož domovským adresářem je v případě potřeby adresář cache.
  3. Klikněte na tlačítko Inicializovat mezipaměť knoflík. Konfigurace Squid bude aktualizována tak, aby používala vámi zvolené uživatelské jméno a příkaz squid -z spustí se za účelem nastavení adresářů mezipaměti. Zobrazí se veškerý výstup, který vytvoří, takže můžete vidět, jak inicializace probíhá.
  4. Po dokončení procesu se vraťte na hlavní stránku modulu a chybová zpráva by měla zmizet.

Pokud Squid není na vašem systému vůbec nainstalován (nebo je nainstalován v jiném umístění, než které Webmin očekává), zobrazí se chybová zpráva jako Konfigurační soubor Squid /etc/squid.conf neexistuje se objeví na hlavní stránce místo tabulky ikon. Pokud jej opravdu máte nainstalovaný, přečtěte si část *Konfigurace modulu Squid Proxy Server*, kde najdete pokyny, jak změnit cesty, které modul používá. Na druhou stranu, pokud opravdu není nainstalován, měli byste použít modul Software Packages (pokrytý SoftwarePackages) k instalaci balíčku squid z vašeho linuxového distribučního CD nebo webové stránky.

Pokud pro váš operační systém žádný takový balíček neexistuje, budete si muset stáhnout, zkompilovat a nainstalovat nejnovější verzi Squid z www.squid-cache.org. Pokud máte na svém systému nainstalovaný kompilátor, jedná se o relativně jednoduchý proces bez závislostí.

Jakmile je server nainstalován, chcete-li jej využívat dlouhodobě, měli byste zařídit, aby byl spuštěn při bootování pomocí modulu Bootup and Shutdown (který popisuje kapitola 9, jak jej používat). Všechny linuxové balíčky obsahují skript spouštěcí akce pro Squid, i když může být ve výchozím nastavení zakázán, což vyžaduje, abyste jej povolili v daném modulu. Jinak budete muset vytvořit akci, která spustí příkaz jako
/usr/local/squid/bin/squid  -sY
, za předpokladu, že máte Squid nainstalovaný v /usr/local/squid.

Jakmile je Squid nainstalován a inicializován, můžete tento modul začít používat. Když Squid běží, má každá stránka nahoře dva odkazy - Použít změny což vynutí opětovné načtení aktuální konfigurace a Zastavit chobotnici který vypne proxy server. Pokud server neběží, jsou tyto odkazy nahrazeny textem *Start Squid*, který se, jak název napovídá, pokouší spustit. Pokud ještě neběží, pravděpodobně jej budete chtít spustit nyní.

Protože každá verze Squid zavedla nové konfigurační direktivy, uživatelské rozhraní tohoto modulu se bude zobrazovat odlišně v závislosti na verzi Squid, kterou detekuje ve vašem systému. Všechny pokyny v této kapitole jsou napsány pro Squid 2.4, protože jde v současnosti o nejrozšířenější verzi. Pokud používáte starší nebo novější verzi, mohou se na formulářích objevit různá pole nebo mít více či méně možností. Například každá nová verze zavedla různé typy ACL a autentizace byla v historii programu řešena třemi různými způsoby. Základní pojmy však byly vždy stejné.

Když používáte tento modul, ujistěte se, že váš prohlížeč je nakonfigurován tak, aby nepoužíval Squid proxy pro přístup k vašemu Webmin serveru. Jinak riskujete odříznutí vlastního přístupu k modulu, pokud uděláte chybu v konfiguraci nebo vypnete proces serveru. Všechny prohlížeče, které mohou používat proxy, mají pole pro výpis hostitelů, ke kterým se lze přímo připojit, do kterého můžete zadat název hostitele vašeho serveru Webmin.

Změna portů a adres proxy

Ve výchozím nastavení Squid naslouchá požadavkům proxy na TCP portu 3128 na všech IP adresách vašeho systému. Protože se nejedná o obvyklý port, na kterém běží proxy (nejčastěji se zdají být 8000 a 8080), možná jej budete chtít změnit. Můžete také upravit naslouchací adresu, aby se mohli připojit pouze klienti ve vaší interní síti, pokud má váš systém více než jedno síťové rozhraní.

Chcete-li určit porty, které Squid používá, postupujte takto :

  1. Na hlavní stránce modulu klikněte na Porty a sítě ikonou zobrazíte formulář zobrazený na obrázku 44-2.
  2. V Adresy proxy a porty tabulky, vyberte možnost *Uvedeno níže*. V tabulce níže každý řádek definuje naslouchací port a volitelně adresu, na kterou se má navázat. Budou uvedeny všechny existující porty a adresy a poté jeden prázdný řádek pro přidání nového. V prvním prázdném poli v Port zadejte číslo portu jako 8000 nebo 8080 . Ve sloupci *Název hostitele/IP adresa* vyberte možnost Vše pro akceptování připojení na libovolném systémovém rozhraní, nebo druhá možnost zadat IP adresu do sousedního textového pole. Pomocí této tabulky lze Squid nakonfigurovat tak, aby naslouchal na tolika portech, kolik chcete. Protože se však současně zobrazuje pouze jeden prázdný řádek, budete muset formulář uložit a znovu otevřít, abyste mohli přidat více než jeden nový port.
  3. ICP je protokol, který Squid používá ke komunikaci s jinými proxy servery v clusteru. Chcete-li poslouchat na jiném portu, než je výchozí 3130 pro ICP, vyplňte Port ICP pole. To však není obecně nutné, protože tento protokol používají pouze ostatní proxy.
  4. Squid normálně přijímá připojení ICP na jakékoli adrese IP. Chcete-li to změnit, vyberte druhý přepínač v poli *Příchozí UDP adresa* a do textového pole zadejte jednu z IP rozhraní vašeho systému. To může být užitečné, pokud jsou všechny ostatní proxy, se kterými může chtít váš server komunikovat, na jediné interní síti LAN.
  5. Klikněte na tlačítko Uložit tlačítko ve spodní části stránky pro aktualizaci konfiguračního souboru s vašimi novými nastaveními, poté klikněte na odkaz *Použít změny* zpět na hlavní stránce a aktivujte je.


Porty a síťový formulář

Přidání adresářů mezipaměti

Ve své obvyklé výchozí konfiguraci používá Squid jeden adresář pro ukládání stránek uložených v mezipaměti. V tomto adresáři bude uloženo maximálně 100 MB dat, což pravděpodobně nebude stačit, pokud bude obsluhovat velký počet aktivních klientů. Pokud má váš systém více než jeden pevný disk, má smysl rozložit mezipaměť na více disků, aby se zlepšil výkon. To lze provést zadáním více adresářů, z nichž každý má svou vlastní maximální velikost.

V systému, který je vyhrazen pro provozování serveru proxy, by maximální množství do mezipaměti v každém adresáři mělo být přibližně 90 % dostupného prostoru. Není moudré konfigurovat nebo povolit Squidu využít veškerý volný prostor na disku, protože mnoho souborových systémů trpí sníženým výkonem, když je téměř plný. Kromě toho mohou být místo na disku využívány také soubory protokolu a uživatelskými daty. Pokud Squid zaplní celý váš pevný disk, mohou nastat problémy, protože jiné programy nejsou schopny vytvářet dočasné soubory nebo zapisovat do protokolů.

Chcete-li přidat nový adresář mezipaměti a určit maximální velikost pro stávající, postupujte takto :

  1. Klikněte na Možnosti mezipaměti ikonou na hlavní stránce modulu zobrazíte formulář zobrazený na snímku obrazovky níže.
  2. V Adresářích mezipaměti vyberte pole Uvedené volba. Pokud je Výchozí byl vybrán dříve, Squid bude používat jeden zkompilovaný výchozí adresář mezipaměti zobrazený v závorkách. Chcete-li tento adresář nadále používat, musíte jej výslovně zadat do tabulky. Výchozí velikost je 100 MB a používá 16 adresářů 1. úrovně a 256 adresářů 2. úrovně. Každý řádek v tabulce určuje jeden adresář mezipaměti. Všechny existující adresáře (kromě výchozích) budou uvedeny, abyste je mohli upravovat, a za nimi bude následovat jeden prázdný řádek. Každý řádek obsahuje pole v následujících sloupcích :
    • Adresář Úplná cesta k adresáři mezipaměti nejvyšší úrovně, jako je /var/spool/squid nebo /disk2/cache . Tento adresář již musí existovat a být vlastněn uživatelem, pod kterým Squid běží (obvykle se nazývá squid) – modul jej za vás nevytvoří.
    • Typ Typ úložiště použitý v adresáři. Vždy byste měli vybrat UFS tady.
    • Velikost (MB) Maximální množství dat, které bude obsahovat, v megabajtech. Po dosažení tohoto limitu budou nejstarší nevyžádané soubory nahrazeny novými.
    • adresáře 1. úrovně Počet podadresářů, které budou vytvořeny v adresáři mezipaměti. Výchozí hodnota 16 je obvykle v pořádku, ale u velmi velkých mezipamětí ji možná budete chtít zvýšit.
    • adresáře 2. úrovně Počet podadresářů, které budou vytvořeny v každém adresáři první úrovně. Měli byste zadat 256, pokud vaše mezipaměť nebude příliš velká.
    • Možnosti Ponechte toto pole prázdné – používá se pouze pro jiné typy adresářů. Pokud vás zajímá, proč Squid potřebuje vytvořit dvě úrovně podadresářů pod každým adresářem cache, důvodem je špatný výkon mnoha souborových systémů, když adresář obsahuje velké množství souborů. Protože každá jednotlivá stránka nebo obrázek HTML uložená v mezipaměti je uložena v samostatném souboru, může být počet souborů na zaneprázdněném proxy systému obrovský. Tento problém řeší jejich rozložení do více adresářů.
  1. Po přidání adresáře klikněte na tlačítko Uložit tlačítko v dolní části stránky. Pokud chcete přidat více než jeden, budete muset kliknout na Možnosti mezipaměti znovu zobrazíte tabulku s novým prázdným řádkem.
  2. Po dokončení definování adresářů se vraťte na hlavní stránku modulu. Pokud byl přidán nový, zobrazí se chybová zpráva jako Vaše adresáře mezipaměti Squid nebyly inicializovány se zobrazí. Klikněte na Inicializovat mezipaměť Chcete-li, aby Squid vytvořil všechny podadresáře ve všech nových adresářích mezipaměti. Server bude během procesu vypnut a

po dokončení se znovu spustí.

  1. Po dokončení inicializace klikněte na Použít změny na jakékoli stránce, abyste mohli začít používat své nové adresáře.


Formulář možností mezipaměti

Úprava možností ukládání do mezipaměti a proxy

Squid má četná nastavení, která omezují velikost objektů uložených v mezipaměti, velikost požadavků klientů a typy stránek, které se mají uložit do mezipaměti. Lze je použít k zastavení ukládání obrovských souborů na serveru (jako jsou stažené obrazy ISO), k omezení velikosti souborů, které mohou klienti nahrávat nebo stahovat, a k zabránění ukládání do mezipaměti stránek, které se často mění (například stránky generované skripty CGI). ). Výchozí nastavení však bude obecně fungovat dobře, s možnou výjimkou maximální velikosti nahrávání, která je pouze 1 MB.

Chcete-li upravit možnosti ukládání do mezipaměti, postupujte takto :

  1. Klikněte na Možnosti mezipaměti ikonu na hlavní stránce zobrazíte znovu pro formulář výše.
  2. Chcete-li nastavit maximální velikost # nahraných souborů, vyberte druhou možnost v části Maximální velikost těla požadavku zadejte číslo do textového pole a vyberte některé jednotky z nabídky. 10 nebo 100 MB by mělo být více než dost pro každého.
  3. Chcete-li klientům zabránit ve stahování velkých souborů, vyplňte stejným způsobem pole *Maximální velikost těla odpovědi*. Toho lze využít k zabránění zneužití vaší sítě klienty, kteří stahují velké filmy nebo soubory ISO, ale často to lze zvrátit stahováním velkého souboru po částech.
  4. Pokud chcete nastavit horní limit pro soubor, po který může být stránka uložena do mezipaměti, vyplňte Maximální doba mezipaměti místo ponechání nastaveného na Výchozí . V opačném případě budou data ukládána do mezipaměti po dobu až jednoho roku nebo do data vypršení platnosti nastaveného původním serverem.
  5. Kromě ukládání stažených souborů do mezipaměti si Squid pamatuje chybové zprávy ze serverů a vrací je klientům, kteří požadují stejnou stránku. Dobu, po kterou se chyby ukládají do mezipaměti, můžete změnit zadáním čísla a výběrem jednotek v poli Čas mezipaměti neúspěšných požadavků pole. Pokud je Výchozí je vybrána, chyby budou ukládány do mezipaměti po dobu 5 minut. I to může být nepříjemně dlouhé, pokud jste právě opravili chybu na webové stránce.
  6. Squid ukládá odpovědi na vyhledávání názvů hostitelů do mezipaměti, aby snížil množství aktivity DNS, bez ohledu na TTL, které servery DNS dodávají. Pokud je Výchozí je vybráno v poli *Doba vyrovnávací paměti DNS vyhledávání*, odpovědi se budou pamatovat po dobu 6 hodin. Pokud se vám to zdá dlouhé, vyberte druhý přepínač a zadejte svůj vlastní čas mezipaměti.
  7. Neukládat do mezipaměti adresy URL pro seznamy ACL pole lze použít k úplnému zabránění ukládání do mezipaměti pro určité adresy URL, webové servery nebo klienty. Jakýkoli požadavek, který odpovídá jednomu z ACL zaškrtnutých v tomto poli, nebude nikdy uložen do mezipaměti, a proto bude vždy načten přímo. Tuto funkci můžete použít k blokování ukládání dynamicky generovaných stránek do mezipaměti vytvořením Regulačního výrazu adresy URL ACL pro .cgi nebo cgi-bin a vybrat to zde. Další podrobnosti o tom, jak ACL fungují a jak je lze definovat, najdete v části *Používání seznamů řízení přístupu*.
  8. Klikněte na tlačítko Uložit tlačítko v dolní části stránky pro návrat do hlavní nabídky. Protože některé další možnosti ukládání do mezipaměti jsou ve formuláři využití paměti a disku, klikněte na Využití paměti ikonu pro její zobrazení.
  9. Chcete-li omezit množství paměti, kterou bude Squid používat, vyplňte Limit využití paměti pole. Všimněte si, že tento limit má vliv pouze na maximální paměť použitou pro ukládání přenášených a často používaných souborů a negativních odpovědí. Vzhledem k tomu, že Squid používá paměť pro jiné účely, jistě spotřebuje více než cokoli, co zde zadáte. Pokud je Výchozí Pokud je vybrána, bude vynucován limit 8 MB, což je pravděpodobně příliš málo pro vytížený server.
  10. Chcete-li zabránit ukládání velkých souborů do mezipaměti, vyplňte pole *Maximální velikost objektu uloženého v mezipaměti*. Výchozí hodnota je pouze 4 MB, takže pokud máte dostatek místa na disku, určitě by se mělo zvýšit.
  11. Klikněte na tlačítko Uložit tlačítko v dolní části formuláře a poté Použít změny odkaz na hlavní stránce pro aktivaci všech vašich nových nastavení.

Úvod do seznamů řízení přístupu

ACL (přístupové seznamy) jsou možná nejvýkonnější funkcí Squid. ACL je jednoduše test, který se aplikuje na požadavek klienta, aby se zjistilo, zda se shoduje nebo ne. Poté na základě seznamů ACL, kterým každý požadavek odpovídá, se můžete rozhodnout jej zablokovat, zabránit ukládání do mezipaměti, vnutit jej zařazení do fondu zpoždění nebo jej předat jinému proxy serveru. Existuje mnoho různých typů ACL – například jeden typ kontroluje IP adresu klienta, jiný odpovídá požadované URL, zatímco další kontroluje cílový port, název hostitele webového serveru, ověřeného uživatele a tak dále.

Nejběžnějším použitím ACL je blokování připojení od klientů mimo vaši síť. Pokud provozujete proxy server, který je připojen a přístupný z Internetu, hostitelé mimo vaši místní síť by neměli mít povoleno jej používat. Zlomyslní lidé často používají jiné proxy k praní spojení používaných k hackování, rozesílání spamu nebo přístupu na webové stránky, které by jim nemělo být povoleno.

Protože speciální požadavek na proxy CONNECT lze použít k připojení k libovolnému portu, ACL se často používá k zablokování jeho použití pro jiné porty než 443 (výchozí nastavení SSL). To zabrání uživatelům používat váš proxy pro připojení k jiným serverům než webovým serverům, jako jsou AIM, ICQ nebo MSN. Podobně lze ACL nastavit tak, aby blokoval běžné HTTP požadavky na porty jako 22, 23 a 25, které se běžně používají pro SSH, telnet a SMTP.

Pouhé definování ACL v konfiguraci Squid vlastně nic nedělá – musí být nějakým způsobem aplikováno, aby to mělo nějaký efekt. Tato část vysvětluje, jak je používat ke kontrole, které požadavky na váš server jsou povoleny nebo zamítnuty. Další části vysvětlují, jak souvisí s ukládáním do mezipaměti a přístupem k jiným serverům.

Když Squid obdrží požadavek, nejprve určí, které ACL odpovídá. Poté porovná tento seznam shod se seznamem omezení proxy, z nichž každé obsahuje jeden nebo více ACL a akci, kterou je třeba provést (buď Povolit nebo Zakázat). Jakmile je nalezeno omezení, které odpovídá ACL pro požadavek, jeho akce určí, zda je požadavek povolen nebo zamítnut. Pokud neodpovídají žádné omezení, použije se opak poslední akce v seznamu. Z tohoto důvodu je poslední akcí ve většině konfigurací Squid Povolit vše nebo Odmítnout vše .

Požadavky ICP od jiných proxy serverů se také kontrolují, aby se zjistilo, které seznamy ACL se shodují, a porovnávají se s podobným, ale odlišným seznamem omezení ICP, aby se zjistilo, zda budou povoleny nebo ne. Viz Připojování k jiným serverům proxy v části později, kde najdete komplexnější vysvětlení toho, co je ICP a kdy se používá.

Typická výchozí konfigurace Squid zahrnuje několik ACL a omezení proxy. Z bezpečnostních důvodů jsou všechny požadavky odkudkoli ve výchozím nastavení zamítnuty. To znamená, že budete muset změnit seznam omezení, než bude moci kdokoli používat váš proxy. Přečtěte si, jak na to.

Chcete-li zobrazit seznam definovaných ACL, omezení proxy a omezení ICP, klikněte na Řízení přístupu ikonu na hlavní stránce modulu. Jak ukazuje obrázek níže, vlevo je zobrazena tabulka ACL zobrazující jejich názvy, typy a shody. Vpravo jsou tabulky proxy a omezení ICP ukazující jejich akce a seznamy ACL, kterým odpovídají. Tabulky omezení mají vedle každé položky šipky nahoru a dolů pro jejich přesunutí v seznamu, protože na jejich pořadí záleží.


Stránka seznamů řízení přístupu

Než budou moci klienti používat váš proxy, budete jej muset nakonfigurovat tak, aby umožňoval přístup z některých adres. Postup:

  1. Na stránce řízení přístupu vyberte Adresa klienta z nabídky pod seznamem existujících ACL. Když kliknete na Vytvořit nový ACL zobrazí se formulář pro zadání odpovídajících adres.
  2. V jménu ACL zadejte krátký název, například vaše síť .
  3. Do prázdného pole pod Z IP zadejte počáteční IP adresu v rozsahu, který chcete povolit, například 192.168.1.1.
  4. Pokud je pole pod Do IP zadejte koncovou adresu v rozsahu, například 192.168.1.100 . Pouze klienti, kteří spadají do tohoto rozsahu, budou odpovídat seznamu ACL. NEZADÁVEJTE nic do masky sítě pole.
  5. Případně můžete zadat síť IP zadáním síťové adresy do pole Od IP pole a masku sítě (např. 255.255.255.0 ) do Masky sítě pole. Chcete-li zadat více než jeden, budete muset tento ACL uložit a znovu upravit, aby se objevila nová prázdná pole.
  6. Klikněte na tlačítko Uložit tlačítko pro přidání ACL a návrat na stránku řízení přístupu, na které bude váš nový ACL uveden.
  7. Klikněte na Přidat omezení proxy pod Omezení serveru proxy stůl.
  8. V zobrazeném formuláři vyberte možnost Povolit z Akce pole.
  9. V Match ACL seznamu, vyberte svou novou síť ACL.
  10. Klikněte na tlačítko Uložit na tomto formuláři se znovu vrátíte na stránku řízení přístupu. Nové omezení se zobrazí ve spodní části tabulky, pravděpodobně pod Odmítnout vše vstup.
  11. Kliknutím na šipku nahoru vedle nového omezení je přesunete nad možnost Odmítnout vše . To řekne Squid, aby povolil připojení z vaší sítě a zakázal všem ostatním.
  12. Nakonec klikněte na tlačítko Použít změny odkaz v horní části stránky. Proxy nyní budou moci používat klienti ve vaší interní síti, ale nikdo jiný!

Tyto pokyny předpokládají, že začínáte s výchozí konfigurací Squid. Pokud již byl server proxy nakonfigurován tak, aby umožňoval přístup odkudkoli (změnou možnosti Zakázat vše omezení na Povolit vše ), měli byste jej změnit zpět a blokovat klienty mimo vaši síť. Chcete-li se dozvědět více o typech dostupných ACL a jak je používat, přečtěte si následující dvě části.

Vytváření a úprava seznamů ACL

Než budete moci zablokovat nebo povolit požadavky z nějaké adresy, na nějaký server nebo na nějakou stránku, budete muset vytvořit odpovídající ACL. Základní kroky k tomu jsou:

  1. Z rozevírací nabídky pod tabulkou *Seznamy řízení přístupu* vyberte typ ACL, který chcete vytvořit, a klikněte na tlačítko* Vytvořit nový ACL*.
  2. Ve formuláři, který se zobrazí, zadejte název nového seznamu ACL do pole Název ACL pole. Pokud má více než jeden stejný název, bude se s ním zacházet jako se shodným, pokud se shoduje kterýkoli ACL s tímto názvem. Název by se měl skládat pouze z písmen a číslic, bez mezer nebo speciálních znaků.
  3. Vyplňte zbytek formuláře, jak je vysvětleno v tabulce níže.
  4. V Adresa URL selhání zadejte úplnou adresu URL, na kterou budou přesměrováni klienti, kteří jsou tímto ACL odepřeni. To vám umožňuje definovat vlastní chybové stránky, které se mají zobrazovat namísto výchozích odpovědí Squid.
  5. Klikněte na tlačítko Uložit tlačítko ve spodní části formuláře.

Jakmile bude ACL vytvořen, můžete jej upravit kliknutím na jeho název v seznamu, změnou polí a kliknutím na Uložit . Nebo jej můžete smazat (pokud jej nepoužívá nějaký proxy server nebo omezení ICP) pomocí Odstranit knoflík. Jako obvykle Použít změny odkaz musí být použit k aktivaci jakýchkoli změn, které provedete.

Squid má úžasný počet typů ACL, i když ne všechny jsou dostupné ve všech verzích serveru. Níže uvedená tabulka uvádí ty, které můžete vytvořit pro Squid 2.4, a vysvětluje, co dělají a co znamenají pole ve formuláři pro vytvoření pro ACL každého typu :

Mnoho typů ACL je pro určité situace nevhodných. Pokud například klient odešle požadavek CONNECT, cesta URL není k dispozici, a tedy Regulační výraz cesty URL ACL nebude fungovat. V případech, jako je tento, se automaticky předpokládá, že se ACL neshoduje.

Vytvoření a úprava omezení proxy

Jakmile vytvoříte některé seznamy ACL, lze je použít vytvářením, úpravou a pohybem kolem omezení proxy. Squid porovná každý požadavek se všemi definovanými omezeními v pořadí a zastaví se, když najde odpovídající. Akce nastavená pro toto omezení pak určí, zda je požadavek povolen nebo zamítnut. Tento systém zpracování v kombinaci s výkonem ACL vám umožňuje nastavit neuvěřitelně složitá pravidla řízení přístupu – například můžete odepřít veškerý přístup na stránky s třesením v adrese URL mezi 9:00 a 17:00 pondělí až pátek, s výjimkou některých adres klientů.

Chcete-li vytvořit omezení serveru proxy, postupujte takto :

  1. Klikněte na Řízení přístupu ikona na hlavní stránce modulu, aby se zobrazila stránka zobrazená na snímku obrazovky výše.
  2. Klikněte na Přidat omezení proxy pod seznamem existujících omezení přejděte na formulář pro vytvoření.
  3. Z Akce v poli vyberte buď Povolit nebo Odmítnout v závislosti na tom, zda chcete, aby byly zpracovány odpovídající požadavky.
  4. Match ACL seznam lze použít k výběru několika ACL, které, pokud se všechny shodují, spustí akci. Podobně Neodpovídají seznamům ACL pole lze použít k výběru ACL, které se nesmějí shodovat, aby byla akce spuštěna. Je naprosto správné provést výběr z obou seznamů, aby bylo indikováno, že akce by měla být spuštěna pouze v případě, že se shodují všechny ACL na levé straně a pokud ty napravo ne. Ve výchozí konfiguraci má Squid ACL s názvem all který odpovídá všem požadavkům. Může být užitečné pro vytváření omezení, která povolují nebo zakazují všechny, z nichž jedno obvykle existuje ve výchozím nastavení.
  5. Klikněte na tlačítko Uložit tlačítko pro vytvoření nového omezení a návrat na stránku řízení přístupu.
  6. Použijte šipky vedle v Omezení proxy stůl, abyste jej přesunuli na správné místo. Pokud váš seznam končí Odmítnout vše vstup, budete jej muset přesunout ze spodní části, aby to mělo nějaký účinek. Pokud seznam obsahuje položku, která povoluje všechny klienty z vaší sítě, a vy jste právě přidali omezení pro odepření přístupu na některé stránky, budete ji muset přesunout nad položku Povolit také pro jeho použití.
  7. Až budete s vytvářením a umisťováním omezení hotovi, klepněte na Použít změny odkaz v horní části

stránku, aby byly aktivní.

Po vytvoření omezení proxy jej můžete upravit kliknutím na odkaz v Akci sloupec pro svůj řádek v tabulce. Tím se zobrazí editační formulář identický s tím, který byl použit pro vytvoření omezení, ale s Uložit a Smazat tlačítka ve spodní části. První z nich uloží všechny změny, které provedete v akci nebo odpovídajících ACL, zatímco druhý odstraní omezení úplně. Opět Použít změny odkaz musí být použit po aktualizaci nebo odstranění omezení, aby byla změna aktivní. Pokud z nějakého důvodu odstraníte všechna omezení proxy, Squid povolí všechny požadavky od všech klientů, což pravděpodobně není dobrý nápad.

Na stránce řízení přístupu je také tabulka pro úpravy a vytváření omezení, která se vztahují na požadavky ICP. As the *Connecting to other proxies* section explains, ICP is a protocol used by Squid proxies in a cluster or hierarchy to determine what URLs other servers have cached. You can add to and edit entries in the ICP restrictions table in exactly the same way as you would for proxy restrictions. If you really are running a cluster of proxies, it may make sense to block ICP requests from sources other than your own network. If not, the default setup that allows all ICP packets is fine.

Setting up proxy authentication

Even though it is possible to configure Squid to allow access only from certain IP addresses, you may want to force clients to authenticate themselves to the proxy as well. This might make sense if you want to give only certain people access to the web, and cannot use IP address validation due to the use of dynamically assigned addresses on your network. It is also handy for keeping track of who has requested what through the proxy, as usernames are recorded in the Squid logs.

All browsers and programs that can make use of a proxy also support proxy authentication. Browsers will pop up a login window for entering a username and password to be sent to the proxy the first time it requests them, and automatically send the same information for all subsequent requests. Other programs (such as wget or rpm) require the username and password to be specified on the command line.

Each login and password received by Squid is passed to an external authentication program which either approves or denies it. Typically this program checks against a separate users file, but it is possible to write your own programs that use all sorts of methods of validating users - for example, they might be looked up in a database, or an LDAP server, or the Unix user list. Webmin comes with a simple program that reads users from a text file in the same format as is used by Apache, and this module allows you to edit users in such a file.

The steps to turn on authentication for your Squid proxy are :

  1. On the module's main page, click on the Access Control icon to bring up the form shown in Figure 44-4.
  2. Select External Auth from the menu below the ACL table and hit the Create new ACL knoflík.
  3. In the form that appears, enter auth for the ACL name and select All users in the External auth users pole. Then, hit the Save button.
  4. Click on Add proxy restriction below proxy restrictions table.
  5. Select Deny in the Action field and choose your new auth ACL from the Don’t match ACLs seznam. This will block any proxy requests that are not authenticated, thus forcing clients to log in.
    Selecting Allow and then choosing auth from the Match ACLs field can be used for a slightly different purpose. This creates a proxy restriction that allows access to all authenticated clients, which can be positioned to force clients outside your network to log in while not requiring it for those inside the network.
  6. Klikněte na tlačítko Uložit button to return to the access control page again.
  7. Use the up arrow next to the new restriction to move it above any entry in the table that allows all access from your own network. If it is below this entry, clients from the network will be able to use the proxy without needing to log in at all. Of course, this may be what you want in some cases.
  8. Click on the Authentication Programs icon back on the main page.
  9. From the Authentication program field, select Webmin default . This tells the module to use the simple text-file authenticator that comes with the module so that you don’t have to write your own. Of course, you can specify your own custom program by selecting the last radio button and entering the full path to a script with some parameters in the adjacent text box. This program must continually read lines containing a username and password (separated by a space) as input, and for each output either the line OK or ERR for success or failure, respectively. Squid will run several instances of the program as permanent daemon processes when it is started.
  10. The login window that appears in browsers includes a description of the proxy server that the user is logging into. By default, this is Squid proxy-caching web server, but you can enter your own (such as Example Corporation Proxy) by filling in the Proxy authentication realm field.
  11. Normally, Squid will cache valid logins for one hour to avoid calling on the authentication program for every single request. This means that password changes may take up to an hour to take effect, which can be confusing. To lower this limit, at the cost of increased system load and slightly slower request processing, edit the Time to cache passwords for field.
  12. Hit the Save button and then click on Apply Changes on the main page.

Now that authentication is enabled, any attempts to use your proxy from a web browser will cause a login window to appear. Because no valid users have been defined yet, no logins will be accepted, which is not particularly useful! To create some users for authentication, follow these steps:

  1. Click on the Proxy Authentication icon on the module’s main page to bring up a table listing proxy users. At first, this will be empty.
  2. Click on the Add a new proxy user link above or below the table to display the user creation form. Configuring Logging 595
  3. Enter a login name into the Username field and a password for the user in the Password field.
  4. To temporarily disable this user without deleting him, change the Enabled? field to No.
  5. Hit the Create button to add the user and then click the Apply Changes link. This last step is necessary after creating a user for the changes to take effect, as Webmin’s Squid authentication program only reads the user file when first started.

A user can be edited by clicking on its name in the proxy users list, changing the username, password, or enabled status, and hitting the Save knoflík. You can also completely remove a user with the Delete button on its editing form. Again, Apply Changes must be clicked to make anymodifications or deletions active. Squid will also cache valid passwords (as explained above) to reduce the load on theauthentication program, so a password change may take some time to take effect.

The module’s user management feature will only work if you choose Webmin default in the Authentication program field or if your own custom program takes the full path to an Apache-style users file as a parameter. If your program validates users against some other database or server, or if the module cannot figure out which file contains users from the command, the Proxy Authentication icon will not appear. Sometimes you may want to allow normal UNIX users to log in to your program with the same passwords that they use for telnet and FTP. Even though it is possible to write a program that does proxy authentication against the UNIX user database, there is another solution—configuring the module to add, delete, and update proxy users whenever a UNIX user is created, removed, or renamed. This is most useful for keeping usernames and passwords in sync without needing to grant access to every single UNIX user. Once you have normal authentication set up as explained above, synchronization can be turned on by following these steps:

  1. On the module’s main page, click on the Module Config link in the top-left corner.
  2. As their names suggest, the Create proxy users when creating system users, Update proxy users when updating system users, and Delete proxy users when deleting system users fields control the automatic creation, modification, and deletion of proxy users when the same thing happens to a UNIX user. For each one, you can either select Yes or No. You should probably turn on synchronization for updates and deletions, but leave it off for creations so that you can explicitly control who gets access to the proxy.
  3. Hit the Save button at the bottom of the form to activate the new settings. From now on, actions performed in Webmin’s Users and Groups module will also affect the Squid user list in the ways you have chosen. Adding a user at the command line with useradd or changing a password with the passwd command, however, will not.

Webmin
  1. Jak nainstalovat a nakonfigurovat Squid Proxy na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Squid Proxy na Debian 11

  3. Nainstalujte proxy server Squid na Ubuntu 14.04

  1. Jak nainstalovat a nakonfigurovat Squid Proxy na Rocky Linux/Alma Linux 8

  2. Jak nainstalovat Squid Proxy na AlmaLinux 8

  3. Jak nainstalovat Squid Proxy Server na Ubuntu 18.04 LTS

  1. Jak nainstalovat Squid Proxy Server na CentOS 7

  2. Jak nastavit proxy server squid na CentOS/RHEL 7

  3. Squid Proxy - Skrytí proxy