• Srovnání bezplatných programů pro účtování provozu SQUID. Konfigurace a základní parametry SQUID Spárované parametry modelu squid

    Nedávno naše společnost potřebovala převést proxy servery z MS ISA Serveru na bezplatný software. Výběr proxy serveru (chobotnice) netrval dlouho. Pomocí několika praktických doporučení jsem nakonfiguroval proxy pro naše potřeby. Při výběru programu pro účetní provoz se objevily určité potíže.

    Požadavky byly:

    1) svobodný software
    2) schopnost zpracovávat protokoly z různých proxy na stejném serveru
    3) schopnost vytvářet standardní zprávy zasílané poštou nebo odkazem na webový server
    4) sestavování reportů pro jednotlivá oddělení a zasílání těchto reportů vedoucím oddělení nebo poskytování přístupu přes odkaz na web serveru

    U programů pro účtování provozu poskytují vývojáři velmi vzácné informace: stručný popis účelu programu plus několik snímků obrazovky jako volitelný bonus. Ano, je jasné, že každý program spočítá objem provozu za den/týden/měsíc, ale další zajímavé funkce, které odlišují jeden program od ostatních, nejsou popsány.

    Rozhodl jsem se napsat tento příspěvek, ve kterém se pokusím popsat výhody a nevýhody takových programů a také některé jejich klíčové „čipy“, abych trochu pomohl při výběru těm, kteří na to mají.

    Naši kandidáti:

    SARG
    zdarma-sa
    lightquid
    analyzátor olihní
    ScreenSquid

    Ústraní

    Informace o „stáří“ programu a vydání poslední verze nejsou srovnávacím parametrem a jsou poskytovány pouze pro informaci. Pokusím se porovnat pouze funkčnost programu. Také jsem záměrně nezvažoval příliš staré programy, které nebyly aktualizovány po mnoho let.

    Protokoly jsou předány analyzátoru ke zpracování ve formě, ve které byly vytvořeny chobotnicí a nebudou podrobeny žádnému předběžnému zpracování za účelem provádění změn. Zpracování nesprávných záznamů a všechny možné transformace logových polí by měl provádět analyzátor sám a měly by být uvedeny pouze ve zprávě. Tento článek není průvodcem nastavením. Problémy s konfigurací a používáním mohou být popsány v samostatných článcích.

    Pojďme tedy začít.

    SARG - Squid Analysis Report Generator

    Nejstarší mezi podporovanými programy této třídy (vývoj zahájen v roce 1998, dřívější název - sqmgrlog). Nejnovější verze (verze 2.3.10) je z dubna 2015. Poté bylo několik vylepšení a oprav dostupných v master verzi (lze stáhnout pomocí git ze sourceforge).

    Program se spouští ručně nebo pomocí cronu. Můžete jej spustit bez parametrů (pak budou všechny parametry převzaty z konfiguračního souboru sarg.conf), nebo můžete zadat parametry na příkazovém řádku nebo skriptu, například data, pro která je sestava generována.

    Zprávy jsou generovány jako html stránky a uloženy v adresáři /var/www/html/squid-reports (standardně). Můžete nastavit parametr, který určuje počet sestav, které se mají uložit do adresáře. Například 10 denně a 20 týdně, starší budou automaticky smazány.

    Pro různé možnosti reportů je možné použít několik konfiguračních souborů s různými parametry (například pro denní reporty si můžete vytvořit vlastní konfiguraci, ve které bude deaktivována možnost vytváření grafů a bude určen jiný adresář pro výstup zprávy).

    podrobně

    Při vstupu na hlavní stránku s přehledy si můžeme vybrat období, pro které byl vytvořen (definováno v parametrech tvorby přehledu), datum jeho vytvoření, počet unikátních uživatelů, celkovou návštěvnost za období, průměrné množství návštěvnost na uživatele.

    Při výběru jednoho z období budeme moci získat přehled topuserů za toto období. Dále uvedu popisy a příklady všech typů reportů, které SARG umí.

    1) topusers - celkový provoz podle uživatelů. Uživatel je buď jméno hostitele, kterému je udělen přístup k Internetu, nebo přihlašovací jméno uživatele. Příklad přehledu:


    Zde se zobrazují IP adresy. Když je nakonfigurován tak, aby povolil odpovídající možnost, adresy IP se převedou na názvy domén.

    Používáte ověřování? Účty jsou převedeny na skutečná jména:

    Vzhled lze upravit v souboru css. Zobrazené sloupce jsou také konfigurovatelné, nepotřebné můžete odstranit. Je podporováno řazení podle sloupců (sorttable.js).

    Když kliknete na ikonu grafu vlevo, zobrazí se podobný graf:


    Když kliknete na ikonu vpravo, dostaneme zprávu 5.

    2) topsites - report o nejoblíbenějších stránkách. Ve výchozím nastavení je zobrazen seznam 100 nejoblíbenějších stránek (hodnota je upravena). Pomocí regulárních výrazů nebo nastavení aliasů můžete kombinovat provoz z domén 3. a vyšší úrovně do domény 2. úrovně (jako na snímku obrazovky) nebo nastavit jakékoli jiné pravidlo. Pro každou doménu můžete nastavit pravidlo samostatně, například pro yandex.ru a mail.ru, kombinovat až do 3. úrovně. Význam polí je zcela zřejmý.


    3) sites_users – přehled o tom, kdo navštívil určitou stránku. Zde je vše jednoduché: název domény a kdo k ní přistupoval. Zde se nezobrazuje provoz.


    4) users_sites - přehled navštívených stránek každým uživatelem.


    I zde je vše jasné. Pokud kliknete na ikonu v prvním sloupci, dostanete zprávu viii).

    5) date_time - rozložení návštěvnosti uživatelů podle dnů a hodin.


    6) zamítnuto - požadavky blokovány chobotnicí. Zobrazuje, komu, kdy a kde byl odepřen přístup. Počet záznamů je konfigurovatelný (výchozí je 10).


    7) auth_failures - selhání autentizace. HTTP/407.
    Počet záznamů je konfigurovatelný (výchozí je 10).


    8) site_user_time_date – ukazuje, kdy uživatel navštívil který web az kterého stroje.

    9) downloads - seznam stahování.


    10) useragent - report o používaných programech

    První část sestavy zobrazuje IP adresu a použité uživatelské rozhraní.


    Ve druhém - obecný seznam uživatelských agentů s procentuálním rozdělením s ohledem na verze.


    11) přesměrovač - report ukazuje, komu byl blokován přístup pomocí blokovače. Podporovány jsou Squidguard, dansguardian, rejik, formát logu je konfigurovatelný.


    SARG má více než 120 nastavení, jazykovou podporu (100 % zpráv je přeloženo do ruštiny), podporu regulárních výrazů, práci s LDAP, možnost poskytnout uživatelům přístup pouze k jejich reportům na webovém serveru (přes .htaccess), možnost převodu protokolů do vlastního formátu pro úsporu místa, export sestav do textového souboru pro následné vyplnění databáze, práce se soubory protokolu olihně (rozdělení jednoho nebo více souborů protokolu podle dnů).

    Je možné vytvořit sestavy pro konkrétní sadu zadaných skupin, například pokud chcete vytvořit samostatnou sestavu pro oddělení. Přístup na webovou stránku s reporty oddělení může být v budoucnu poskytnut např. manažerům pomocí webového serveru.

    Hlášení můžete posílat e-mailem, zatím je však podporován pouze hlášení topusers a samotný dopis bude prostou textovou zprávou bez podpory HTML.

    Ze zpracování můžete vyloučit určité uživatele nebo určité hostitele. Uživatelům můžete nastavit aliasy, které spojí provoz několika účtů do jednoho, například všichni outstaffers. Můžete také nastavit aliasy pro stránky, například spojit několik sociálních sítí do určitého aliasu, v takovém případě se sečtou všechny parametry pro zadané domény (počet připojení, objem provozu, doba zpracování). Nebo pomocí regulárního výrazu můžete „vyhodit“ domény nad 3. úrovní.
    Do samostatných souborů je možné nahrát seznam uživatelů, kteří za dané období překročili určité objemy. Výstupem bude několik souborů, například: userlimit_1G.txt - překročeno 1 Gb, userlimit_5G.txt - překročeno 5 Gb a tak dále - celkem 16 limitů.

    SARG má ve svém arzenálu také několik stránek PHP: pro prohlížení aktuálních spojení s chobotnicí a pro přidávání doménových jmen do seznamů bloků chobotnice.

    Obecně se jedná o velmi flexibilní a výkonný nástroj, který se snadno učí. Všechny parametry jsou popsány ve výchozím konfiguračním souboru, projekt sourceforge má v sekci wiki podrobnější popis všech parametrů rozdělených do skupin a příklady jejich použití.

    zdarma-sa

    Domácí rozvoj. Od listopadu 2013 nejsou k dispozici žádné nové verze. Tvrdí se, že generuje zprávy rychleji než konkurenční programy a zabírá méně místa pro hotové zprávy. Pojďme zkontrolovat!

    Podle logiky práce je tento program nejblíže SARGu (a autor sám s tímto programem srovnává (např.)), takže srovnáme s ním.

    Potěší přítomnost několika témat. Téma se skládá ze 3 souborů css a 4 jim odpovídajících ikon png.

    Hlášení se opravdu dělají rychleji. Denní zpráva byla vytvořena ve 4:30, kdy měl SARG 12 minut. Pravda, ukázalo se, že v případě obsazeného svazku tomu tak nebylo: objem obsazený zprávami je 440 MB (free-sa) a 336 MB (SARG).

    Zkusme zadat složitější úkol: zpracovat za 10 dní log soubor o velikosti 3,2 GB, ve kterém je 26,3 milionů řádků.

    Free-sa také zrychlila report, za 46 minut report zabere 3,7 GB místa na disku. SARG strávil 1 hodinu 10 minut, sestava má 2,5 GB.

    Ale obě tyto zprávy se budou číst špatně. Kdo chce například ručně počítat, která doména je oblíbenější – vk.com nebo googlevideo.com a ručně počítat návštěvnost všech svých subdomén? Pokud jsou v nastavení SARG ponechány pouze domény 2. úrovně, pak vytvoření reportu zabere přibližně stejnou dobu, ale nyní samotný report zabírá na disku 1,5 GB (denní se zmenšil z 336 MB na 192 MB ).

    podrobně

    Když vstoupíte na hlavní stránku, uvidíme něco jako následující (je vybráno téma blues):


    Abych byl upřímný, účel výstupu roku a měsíců není jasný, když na ně kliknete, nic se neděje. Můžete něco napsat do vyhledávacího pole, ale opět se nic neděje. Můžete si vybrat období zájmu.

    Seznam blokovaných adres URL:

    Přehled metody CONNECT:


    Zpráva metody PUT/POST:



    Oblíbené stránky:


    Zpráva o účinnosti proxy serveru se zdála zajímavá:


    Zpráva uživatele:


    Když kliknete na ikonu grafu ve druhém sloupci, získáme graf používání internetu konkrétním uživatelem:


    Když kliknete na druhou ikonu, dostaneme tabulku načítání internetového kanálu po hodinách:

    Při výběru IP adresy získáme seznam stránek podle uživatele v sestupném pořadí návštěvnosti:


    Všechny statistiky jsou zobrazeny v bytech. Chcete-li přepnout na megabajty, musíte nastavit parametr

    reporty_bytes_divisor="M"

    Program nepřijímá komprimované soubory protokolu, nepřijímá více než jeden soubor s parametrem -l, nepodporuje výběr souborů podle masky. Autor programu navrhuje tato omezení obejít vytvořením pojmenovaných rour.

    Byla nalezena nepříjemná závada - když je délka řádku protokolu příliš velká, místo adres se zadávají časová razítka:


    Při prohlížení návštěvnosti tohoto „uživatele“ můžete vidět doménu se zdrojem chyby:


    Počet uživatelů se tak několikanásobně zvýšil.

    Pokud porovnáme tyto dva programy, pak free-sa vytvoří sestavu o něco rychleji. 20násobné zvýšení rychlosti, jak uvádí autor, se mi nepodařilo najít. Možná to lze za určitých podmínek vidět. Myslím, že nezáleží na tom, jak dlouho trvá vytvoření týdenního reportu v noci – 30 minut nebo 50. Pokud jde o množství místa, které reporty zabírají, free-sa nemá žádnou výhodu.

    lightquid

    Snad nejoblíbenější počítadlo provozu. Pracuje rychle, sestavy nezabírají mnoho místa na disku. Přestože tento program nebyl dlouhou dobu aktualizován, přesto jsem se rozhodl v tomto článku zvážit jeho možnosti.

    Logika programu je jiná: program načte protokol a vytvoří sadu datových souborů, které pak použije k vytvoření webových stránek. To znamená, že neexistují žádné předem vytvořené sestavy s daty, stránky s daty se generují za běhu. Výhody takového řešení jsou zřejmé: pro získání reportu není nutné analyzovat všechny logy za dané období, stačí nashromážděný log jednou denně „nakrmit“ lightquid. Chcete-li rychle přidat novou informaci, můžete to provést několikrát denně.

    Vyskytly se některé nevýhody: není možné zpracovávat protokoly z různých serverů a shromažďovat statistiky na jednom místě: při zpracování protokolu pro jeden den z jiného serveru se existující statistiky pro daný den vymažou.

    Existuje zvláštní omezení: lightquid "vnímá" nekomprimované soubory protokolu i komprimované soubory (gz - přesně), ale ve druhém případě musí být název souboru v tomto formátu: access.log.X.gz, soubory s příponou formát access.log- RRRRMMDD.gz nepřijme.

    Prostřednictvím jednoduchých manipulací překonáme toto omezení a uvidíme, co se stalo.

    podrobně

    Report za měsíc (celkový provoz 3 TB, 110 milionů řádků) zabral na disku 1 GB.

    Na domovské stránce vidíme návštěvnost po dnech za aktuální měsíc.


    Při výběru dne se zobrazí přehled pro daný den pro všechny uživatele:


    Pokud jsou skupiny definovány, zobrazí se v pravém sloupci název skupiny, do které uživatel patří. Uživatelé, kteří nejsou členy žádné skupiny, jsou sdruženi do skupiny 00 no ve skupině (v tomto přehledu jsou označeni otazníkem).

    Když vyberete grp na hlavní stránce pro odpovídající datum, dostaneme se na stránku uživatelské zprávy rozdělené do skupin. Nejprve jsou uvedeny neskupiny a poté skupiny v pořadí.


    Kliknutím na název skupiny v tabulce vpravo přejdeme na místo na stránce, kde začíná zpráva o této skupině:


    Když kliknete na „Přehled nejlepších webů“, zobrazí se vám přehled oblíbených webů za daný den:


    Přehled velkých souborů:


    Přejděme ke stolu vpravo.
    Zde můžete získat seznam top webů za měsíc a za celý rok (vypadají stejně, tedy bez screenshotu), obecné statistiky za rok a za měsíc a také statistiky za rok a za měsíc podle skupiny.

    Měsíční statistiky:


    Kliknutím na ikonu hodin zobrazíme tabulku stránek, času přístupu a provozu spotřebovaného za hodinu:


    Zobrazují se zde statistiky za den, ale za měsíc a za rok to bude vypadat přibližně stejně, hodinové statistiky podle domén se sečtou.

    Kliknutím na ikonu grafu můžeme vidět spotřebu návštěvnosti uživatele v průběhu měsíce:


    Sloupce grafu jsou klikatelné: když kliknete na sloupec, přejdete na statistiky uživatele pro další den.

    Kliknutím na [M] získáme přehled o spotřebě návštěvnosti uživatele v průběhu měsíce s uvedením objemu za každý den a za celý týden.

    Když kliknete na uživatelské jméno, dostaneme seznam stránek navštívených uživatelem v sestupném pořadí návštěvnosti:


    No, zdá se, že je to vše. Vše je jednoduché a stručné. IP adresy lze převést na názvy domén. Pomocí regulárních výrazů lze názvy domén kombinovat do domén 2. úrovně, pro případ, že uvedu regulární výraz:

    $url =~ s/(+://)??(+.)(0,)(+.)(1)(+)(.*)/$3$4/o;

    Díky dovednostem v perlu si jej můžete upravit sami.

    analyzátor olihní

    Program podobný lightsquid a také napsaný v Perlu. Hezčí dekorace. Poslední verze 6.4 vyšla v polovině prosince tohoto roku, došlo k mnoha vylepšením. Webová stránka programu: squidanalyzer.darold.net.

    Squidanalyzer může používat více počítačových procesorů (volba -j), což zrychluje hlášení, ale to platí pouze pro nekomprimované soubory. U zabalených (podporován je formát gz) probíhá zpracování pomocí jednoho procesorového jádra.

    A ještě jedno srovnání s lightsquid: na stejném serveru vznikal stejný report asi den, na disku zabírá 3,7 GB.

    Stejně jako lightsquid, squidanalyzer nebude schopen sloučit dva nebo více souborů protokolu z různých serverů ve stejném období.

    Více

    Hlavní stránka - můžete vybrat rok sestavy.

    Pokud zvolíte jakékoli období (rok, měsíc, týden, den), bude vzhled webových stránek podobný: nahoře je nabídka s následujícími přehledy: MIME typy, Sítě, Uživatelé, Top Denied, Top URLs, Top domény. Těsně pod statistikou proxy za zvolené období: Požadavky (Hit/Miss/Denied), Megabajty (Hit/Miss/Denied), Total (Požadavky/Megabajty/Users/Sites/Domains). Níže je uveden graf počtu požadavků za období a návštěvnosti.

    V pravém horním rohu je kalendář. Když vyberete měsíc, zobrazí se stručné statistiky a plán stahování podle dne:


    Kalendář má možnost vybrat týden. Po výběru se zobrazí podobná statistika:


    Při výběru dne vidíme statistiky po hodinách:


    Přehled typu obsahu:


    Síťová zpráva.


    Uživatelská zpráva.


    Když je uživatel vybrán, získáme jeho statistiky za dané období.



    Zakázané zdroje:


    Zpráva o doménách 2. úrovně.


    Za sebe bych rád poznamenal velmi pomalou práci programu, jak se informace hromadí. S každým novým logem se přepočítávají statistiky za týden, měsíc a rok. Proto bych tento program nedoporučoval pro zpracování logů ze serveru s velkým provozem.

    screensquid

    Tento program má jinou logiku: log se naimportuje do databáze MySQL, následně se z ní data vyžádají při práci ve webovém rozhraní. Databáze s dříve zmíněným zpracovaným desetidenním logem zabírá 1,5 GB.

    Více

    Program nemůže importovat soubory protokolu s libovolným názvem, vázáním pouze na access.log.

    Hlavní strana:


    Stručná statistika:


    Můžete vytvořit aliasy pro IP adresy:


    ... a pak je lze kombinovat do skupin:


    Přejděme k tomu hlavnímu – reportům.

    Levá nabídka s typy přehledů:

    Dopravní přihlášení uživatelů
    provoz uživatele IP adresy
    Návštěvnost webu
    Nejlepší stránky
    Nejlepší uživatelé
    Nejlepší IP adresy
    Podle denní doby
    Pokročilá přihlášení k provozu uživatelů
    Provoz uživatele IP adresy rozšířen
    Vyřešen provoz IP adres
    Oblíbené stránky
    Kdo stahoval velké soubory
    Provoz podle období (dny)
    Návštěvnost podle období (název dne)
    Návštěvnost podle období (měsíce)
    stavy HTTP
    Přihlašovací IP adresy
    Přihlášení z IP adres

    Příklady zpráv.

    Provoz IP adresy uživatele:


    Návštěvnost webu:


    Nejlepší stránky:


    ... dále, abych byl upřímný, neměl jsem trpělivost zkoumat možnosti, protože stránky se začaly generovat za 3-5 minut. Sestava "podle denní doby" pro den, jehož protokol nebyl vůbec importován, byl vytvořen déle než 30 sekund. Za den s provozem – 4 minuty:


    To je vše. Doufám, že tento materiál bude pro někoho užitečný. Děkuji vám všem za pozornost.

    Dobrý čas, milí čtenáři a hosté! Tímto článkem začnu s popisem díla Proxy pro ukládání do mezipaměti SQUID. Tento článek bude většinou úvodní teoretický.

    Co je proxy server a co je chobotnice

    Začnu od základů. oliheň je caching proxy serveru pro HTTP, FTP a další protokoly. Proxy server pro HTTP je program, který odesílá požadavky HTTP jménem klientského programu (ať už jde o prohlížeč nebo jiný software). proxy může být ukládání do mezipaměti nebo neukládání do mezipaměti. ukládání do mezipaměti, podle toho ukládá všechny požadavky do nějakého úložiště pro rychlejší návrat ke klientům a neukládání do mezipaměti- jednoduše překládá HTTP, ftp nebo jiné požadavky. Dříve umožňovalo cachování provozu dosáhnout poměrně výrazných úspor provozu, ale v dnešní době s růstem rychlosti internetu to trochu ztratilo na aktuálnosti. Lze zabudovat proxy serverA hierarchie vyřizovat žádosti. Zároveň proxy servery A vzájemně komunikují prostřednictvím protokol ICP.

    Oliheň navrženy a mohou běžet na většině operačních systémů (jak unix, tak Windows). Licencováno pod GNU GPL. Schopný zpracovávat a ukládat do mezipaměti požadavky HTTP, FTP, gopher, SSL a WAIS (odstraněno ve verzi 2.6) a také DNS. Nejčastější požadavky jsou uloženy v paměti RAM. V tuto chvíli existují 2 stabilní verze chobotnice: 2.7 A 3.1 . Rozdíly najdete v odkazech na konci článku. Všechny závislosti při instalaci z balíčků jsou stejné. Konfigurační soubor verze 2 je kompatibilní s verzí 3, ale verze 3 přidává nové možnosti. V článku budu uvažovat verze squid3. Za zmínku také stojí, že pokud nainstalujete squid3 , zachová si své konfigurační soubory /etc/squid3, stejně jako výchozí protokoly v squid3 jsou v adresáři /var/log/squid3/, ale ne /var/log/chobotnice/, jak mnoho log analyzátorů "rádo počítá".

    Několikrát slovo " ukládání do mezipaměti". A co to vlastně je, tohle - ukládání do mezipaměti? Tento způsob ukládání objektů požadovaných z internetu na serveru, který je blíže k žádajícímu počítači než ten původní. Internetový objekt je soubor, dokument nebo odpověď na volání nějaké služby poskytované na internetu (jako je FTP, HTTP nebo gopher). Klient požaduje internetový objekt z mezipaměti proxy; pokud objekt ještě není v mezipaměti, pak proxy server přijme objekt (buď od hostitele uvedeného na požadované adrese URL, nebo z nadřazené či sousední mezipaměti) a doručí jej klientovi.

    Režimy proxy chobotnice

    Squid proxy může pracovat v následujících třech hlavních režimech:

    transparentní režim

    V tomto režimu HTTP je připojení vytvořené klienty přesměrováno na proxy server bez jejich vědomí nebo explicitní konfigurace. V tomto režimu není vyžadována žádná konfigurace klienta. Nevýhody této metody: Je nutná konfigurace NAT a přesměrování provozu, autentizace klienta nefunguje, požadavky FTP a HTTPS nejsou přesměrovány.

    Režim ověřování

    Pro práci v tomto režimu musí být klienti nakonfigurováni pro práci s proxy serverem (adresa proxy serveru musí být zadána v nastavení připojení). Klienti mohou být autentizováni a autorizováni přes Kerberos, Ldap, NTLM, IP a Radius. Interakci se servery Microsoft Active Directory je možné vybudovat autentizací klientů – členů domény pomocí protokolu Kerberos a následně autorizací členů doménové skupiny pomocí LDAP v transparentním režimu (uživatel zadává své heslo až při registraci v doméně). Pro autorizované skupiny je možné použít různá nastavení pro řízení přístupu a QoS (zpožděné fondy).

    Reverzní proxy

    Proxy server ukládá odchozí data do mezipaměti. Reverzní proxy Squid přijímá data ze serveru HTTP jménem klienta a odesílá je zpět klientovi (například do Internetu). Tento režim vám umožňuje:

    • Použití ukládání do mezipaměti, které snižuje zatížení serveru HTTP;
    • Vyrovnávání zátěže mezi servery HTTP;
    • Maskování HTTP serverů a jejich charakteristiky;
    • Prevence webových útoků na servery.

    Schémata provozního režimu SQUID

    transparentní režim

    reverzní režim

    autentizační režim

    Ve výše uvedených diagramech zelené šipky označují toky provozu přes proxy. Pohyb těchto streamů je v Linuxu nejčastěji řízen silami a nastavením prohlížeče. Navíc velmi často funkce routeru a proxy vykonává jeden stroj.

    Instalace SQUID

    Před instalací a konfigurací squid se také musíte ujistit, že počítač, na kterém poběží squid, má přístup k externí síti a klienti, kteří budou používat tento proxy, mají přístup k tomuto počítači. Instalace squid proxy serveru, stejně jako jiného softwaru v Linuxu, je možná různými způsoby, které jsou popsány v článku. Dotknu se způsobu instalace z úložiště v Debianu. Chcete-li tedy nainstalovat squid, musíte nainstalovat balíček squid3, spusťte následující příkaz:

    Gw ~ # aptitude install squid3 Budou nainstalovány následující NOVÉ balíčky: libltdl7(a) squid-langpack(a) squid3 squid3-common(a) 0 balíčků aktualizováno, 4 nové nainstalované, 0 balíčků označených k odstranění a 0 neaktualizovaných balíčků . Potřebujete získat 2 157 kB archivů. Po rozbalení bude využito 10,3 MB. Chceš pokračovat? y Get:1 http://ftp.ru.debian.org/debian/squeeze/main libltdl7 i386 2.2.6b-2 Get:2 http://ftp.ru.debian.org/debian/squeeze/main squid- langpack all 20100628-1 Get:3 http://ftp.ru.debian.org/debian/squeeze/main squid3-common all 3.1.6-1.2+squeeze2 Get:4 http://ftp.ru.debian.org /debian/ squeeze/main squid3 i386 3.1.6-1.2+squeeze2 Mám 2 157 kB za 9 s (238 kB/s) Výběr dříve nevybraného balíčku libltdl7. (Čtení databáze... aktuálně nainstalováno 41133 souborů a adresářů.) Rozbalování balíčku libltdl7 (ze souboru.../libltdl7_2.2.6b-2_i386.deb)... Výběr dříve nevybraného balíčku squid-langpack. Balíček squid-langpack je rozbalen (ze souboru.../squid-langpack_20100628-1_all.deb)... Výběr dříve nevybraného balíčku squid3-common. Balíček squid3-common je rozbalen (ze souboru.../squid3-common_3.1.6-1.2+squeeze2_all.deb)... Výběr dříve nevybraného balíčku squid3. Rozbalování balíčku squid3 (ze souboru.../squid3_3.1.6-1.2+squeeze2_i386.deb)... Zpracování spouštěčů man-db... Nastavení balíčku libltdl7 (2.2.6b-2)... Nastavení squid-langpack package (20100628-1) ... Konfigurace balíčku squid3-common (3.1.6-1.2+squeeze2) ... Konfigurace balíčku squid3 (3.1.6-1.2+squeeze2) ... Vytvoření Squid HTTP proxy 3.x Spool adresářová struktura 2012/02/15 21:29:41| Vytváření swapových adresářů Restartování Squid HTTP Proxy 3.x: squid3Vytvoření Squid HTTP Proxy 3.x struktury cache ... (varování). 15. 2. 2012 21:29:43| Vytváření swapových adresářů .

    Jak vidíte, při instalaci balíčku došlo k pokusu o vytvoření adresář cache, ale protože není nakonfigurován, varování vypadlo. Taky, oliheň přidán do spouštění, spouštění a přijímání připojení na všech rozhraních. Ale od není nakonfigurován, přístup k internetovým stránkám přes server je omezen. Konfigurace chobotnice se nachází v /etc/squid3/squid.conf a skládá se z více než 5,5 tisíce řádků a jeho syntaxe je prakticky stejná jako konfigurace jakékoli jiné služby. Spěchat se změnou některých nastavení v řezu se nevyplatí. Pak nehrabat. Podívejme se na konfiguraci, která se nám standardně nabízí bez komentářů a prázdných řádků:

    Gw ~ # grep -v ^# /etc/squid3/squid.conf | grep -v ^$ acl manager proto cache_object acl localhost src 127.0.0.1/32::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32::1 acl SSL_ports port 443 acl Safe_ports acl Safe_ports 80 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # neregistrované porty acl Safe_ports port 280 # http-mgmt acl Safe_ports acl 588 Safe_ports 1 # filemaker acl Safe_ports port 777 # multiling http acl metoda CONNECT CONNECT http_access povolit správce localhost http_access odepřít správce http_access odepřít !Safe_ports http_access odepřít CONNECT !SSL_ports http_access povolit localhost http_access odepřít vše http_port_port_3128 c hierarchy coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20 % 4320

    Jak vidíte, ve výchozí konfiguraci proxy server funguje a umožňuje přístup pouze z adres 127.0.0.0/8. Měli byste si pečlivě prohlédnout celý seznam a zakomentovat řádky s porty služeb, které nejsou potřebné nebo používané. Úplnější pochopení této konfigurace získáte po přečtení následujících částí. Že. pokud spustíme konzolový prohlížeč lunx ukazující na náš proxy, můžeme vidět danou stránku:

    Gw ~ # # spusťte prohlížeč se zadanou stránkou ya.ru: gw ~ # http_proxy=http://127.0.0.1:3128 lynx ya.ru Při hledání „ya.ru“ první gw ~ # # v protokolu vidíme odkaz na zadanou stránku: gw ~ # cat /var/log/squid3/access.log 1329527823.407 110 127.0.0.1 TCP_MISS/200 9125 GET http://ya.ru/ - DIRECT/93.158.134.203 text/html

    Některé možnosti v konfiguračním souboru squid lze použít vícekrát (např. acl). Některé parametry, zejména ty s jednou hodnotou, lze použít pouze jednou. V tomto případě, při použití tohoto parametru 2 nebo vícekrát, bude použita poslední hodnota. Například:

    Logfile_rotate 10 # Více hodnot - konečný bude 5 logfile_rotate 5

    správa chobotnic

    Parametry, se kterými byla vytvořena squid vaší distribuce, lze zobrazit pomocí příkazu squid3 -v. Například na Debian squeezy je squid vytvořen s níže uvedenými možnostmi:

    Prefix=/usr - předpona pro ostatní klíče: --mandir=$(prefix)/share/man - adresář úložiště manuálové stránky --libexecdir=$(prefix)/lib/squid3 - adresář se spustitelnými moduly (včetně pomocníků) -- sysconfdir=/etc/squid3 - adresář pro ukládání konfigurace --with-logdir=/var/log/squid3 - adresář pro ukládání logů a dalších. jiný...

    Nastavení chobotnice

    Popis nastavení squid3 Začnu s základní nastavení, kterou je žádoucí provést při nastavování jakékoli konfigurace proxy serveru. Konfigurace squid se nachází v /etc/squid3/squid.conf, toto je hlavní konfigurační soubor, který obsahuje všechna nastavení. (V distribucích Debian a RedHat jsou parametry ze spouštěcích konfiguračních souborů také zobrazeny při spuštění /etc/default/squid3 A /etc/sysconfig/squid3, respektive). Také jsem zmínil, že existuje více než 5 tisíc řádků a že nestojí za to okamžitě spěchat s nastavením, aniž byste tomu rozuměli. syntaxe konfigurace squid3 klasika: řádky s # jsou komentáře, parametry jsou řádky " hodnota parametru", můžete použít . Konfigurační soubor je pro pohodlí rozdělen do sekcí, ale je důležité si pamatovat, že parametry jsou analyzovány "shora dolů" v pořadí priority. Také pomocí zahrnout parametr můžete zahrnout externí konfigurační soubory.

    Ve výchozím nastavení se provádí rozlišení názvu hostitele, na kterém běží Squid gethostname(), v závislosti na nastavení DNS někdy nedokáže jednoznačně určit jméno, které se objeví v protokolech a chybových výstupech “ Generováno … serverem.com (chobotnice/3.0.STABLE2)". Pro správné zaznamenání názvu hostitele musíte zadat tento název (FQDN??) do parametru:

    Visible_hostname myproxy

    Ve výchozím nastavení squid přijímá připojení na všech rozhraních. Pokud se náš server dívá do vnějšího světa jedním ze síťových rozhraní, pak je žádoucí omezit připojení pouze na rozhraní LAN (například 10.0.0.10/24). Zodpovědný za to parametr http_port:

    HTTP_port 10.0.0.10:3128

    Jak tyto parametry fungují, můžete vidět v následujícím seznamu:

    Gw ~ # # otestujte démona před jeho nastavením: gw ~ # netstat -antp | grep squ tcp 0 0 0.0.0.0:3128 0.0.0.0:* POSLECHNOUT 25816/(chobotnice) gw ~ # # provedené změny: gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.2 ~ # # znovu načíst upravenou konfiguraci gw ~ # /etc/init.d/squid3 znovu načíst Znovu načíst konfigurační soubory Squid HTTP Proxy 3.x. Hotovo. gw ~ # # zkontrolujte operaci se změněnou konfigurací: gw ~ # netstat -antp | grep squ tcp 0 0 10.0.0.10:3128 0.0.0.0:* LISTEN 25816/(chobotnice)

    Jak vidíte, démon nyní funguje pouze na rozhraní zadané sítě. Za zmínku také stojí, že nové verze chobotnice (<3.1) поддерживают задание нескольких параметров http_port. При этом, у разных параметров могут быть указанны дополнительные ключи такие как intercept, tproxy, accel и др., например:

    Gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.0.0.10:3128 http_port 10.0.0.10:3129 tproxy

    Tyto parametry nastavují provozní režimy proxy serveru. Například tproxy (stará syntaxe je transparentní) určuje . Tyto režimy si zaslouží samostatné články a lze o nich v budoucnu uvažovat.

    Nyní je třeba nastavit klientský počítač a používat internet. Ve výchozím nastavení je však přístup povolen pouze z localhost a při pokusu o přístup na web se uživateli zobrazí chyba „Přístup odepřen“. Protokol /var/log/squid3/access.log bude obsahovat něco takového:

    1329649479.831 0 10.0.1.55 TCP_DENIED/403 3923 GET http://ya.ru/ - NONE/- text/html

    Aby klienti LAN fungovali, musíte konfigurovat oprávnění pomocí seznamů řízení přístupu.

    Nastavení přístupu chobotnice

    Vlastně nastavení přístupu leží v popis objektu přístup přes acl parametr, a pak rozlišení nebo zákaz práce popsaný acl objekt s parametr "http_access".. Nejjednodušší formát konfiguračních dat je následující:

    Acl název_seznamu typ_výběru charakteristika_typ_výběru

    Kde acl- popis parametrů seznam řízení přístupu, jehož název je dán hodnotou název_seznamu. V názvu se rozlišují velká a malá písmena. typ_výběru určuje typ, ke kterému je dáno dále charakteristika typu výběru. Tato charakteristika může nabývat tak často používaných hodnot jako src(ze zdroje) - zdroj požadavku, dst- cílová adresa, arp- MAC adresa, srcdoména A dstdomain- název domény zdroje a cíle, resp. přístav- přístav, proto- protokol, čas- čas a spoustu dalších. V souladu s tím hodnota select_type_characteristics se vytvoří v závislosti na typ_výběru.

    Můžete zadat několik řetězců acl se stejnými názvy a typy_výběru, v takovém případě budou data acl spojena do jednoho seznamu pomocí logické operace OR. Například:

    acl web dstdomain site.com acl web dstdomain site.org # stejné jako: acl web dstdomain site.com site.org

    Slovy to zní takto: přístupový seznam s názvem site vlastní všechny požadavky odeslané na web site.com NEBO site.org. Také escape_names rozlišují malá a velká písmena, což znamená, že web acl a web acl jsou 2 různé přístupové seznamy.

    Jakmile budou vytvořeny přístupové seznamy, použijte parametr http_access povolit nebo zakázat přístup k uvedenému ACL. Obecný formát hovoru je:

    Http_access allow|dey [!]list_name

    Kde, http_access- parametr určující následné pravidlo oprávnění ( dovolit) nebo zákazy ( odmítnout) přístup specifikovaný níže název_seznamu. V tomto případě volitelný vykřičník invertuje hodnotu názvu seznamu. Tedy s vykřičníkem hodnota název_seznamu bude znít jako všichni kromě těch, kteří patří do tohoto seznamu. Kromě toho můžete zadat několik seznamů oddělených mezerou, pak bude přístup povolen, pokud patří do všech uvedených seznamů. V tomto případě musí být všechna povolená pravidla zadána před všemi pravidly pro odepření:

    http_access odepřít vše

    Může vyvstat rozumná otázka: proč nastavovat toto pravidlo, když například povolujeme přístup k chobotnici pouze vybraným aclům? Ostatně zbytek, který do tohoto acl nespadá, tak "projede"... Je to jednoduché. Ve výchozím nastavení používá squid opačné pravidlo povolení/odmítnutí. Například:

    # máme jedno pravidlo povolení pro některého uživatele acl: http_access povolit uživatele # pokud klient není v tomto acl při přístupu k squid, bude na něj aplikována akce odmítnutí. # A pokud máme dvě pravidla http_access povolit uživateli http_access zakázat user2 # a klient není zahrnut ani v acl user ani acl user2, bude na něj aplikováno allow. # To znamená, že opačná akce posledního http_access deny user2

    To, jak se říká - základy základů. Podívejme se na jednoduchý příklad. Předpokládejme, že máme 2 sítě 10.0.1.0/24 a 10.0.0.0/24 a také hostitele 10.0.4.1, kterým je třeba povolit přístup k internetu. Chcete-li povolit přístup, musíte vytvořit popis nového seznamu přístupů v části „ŘÍZENÍ PŘÍSTUPU“ souboru squid.conf:

    acl lan src 10.0.1.0/24 10.0.0.0/24 acl lan src 10.0.4.1

    Pro větší pohodlí můžete tato pravidla nastavit v samostatném souboru s uvedením cesty k němu charakteristika typu výběru. Tady:

    Gw ~ # # vytvořte samostatný adresář pro ukládání přístupových seznamů gw ~ # mkdir /etc/squid3/acls/ gw ~ # # vložte naše podsítě a hostitele do samostatného souboru gw ~ # vim /etc/squid3/acls/lan.acl gw ~ # cat /etc/squid3/acls/lan.acl 10.0.1.0/24 10.0.0.0/24 10.0.4.1 gw ~ # # popište vytvořený soubor v konfiguraci (cesta musí být uzavřena v uvozovkách) gw ~ # grep lan.acl /etc /squid3/squid.conf acl lan src "/etc/squid3/acls/lan.acl"

    Povolte vytvořenému přístupovému seznamu LAN přístup k internetu a řekněte chobotnici, aby si znovu přečetla konfigurační soubor:

    Gw ~ # grep lan /etc/squid3/squid.conf | grep acce http_access allow lan gw ~ # service squid3 reload Reloading Squid HTTP Proxy 3.x konfigurační soubory. Hotovo.

    Abychom tuto část shrnuli, v kostce, acl identifikuje webový požadavek a http_access povolí nebo zamítne identifikovaný požadavek. Nyní naši místní zákazníci rádi používají internet, protože si předtím nakonfigurovali prohlížeč!

    Konfigurace nastavení mezipaměti chobotnice

    Důležitým bodem při nastavování chobotnice je nastavení možností ukládání do mezipaměti v chobotnici. Umístění keše je nastaveno parametr cache_dir v squid.conf. Formát parametru je následující:

    Cache_dir typ cesty velikost L1 L2

    Kde, typ- toto je algoritmus generování mezipaměti, možná: ufs (systém souborů unix), aufs (asynchronní ufs), diskd(externí procesy, aby se zabránilo blokování chobotnice na I/O disku). Doporučuje se používat ufs i když někteří chválí aufs. Cesta- určuje umístění mezipaměti v systému souborů (musí existovat a mít přístup pro zápis pro uživatele, pod kterým běží squid - obvykle proxy). Velikost- nastavuje maximální velikost, po které se cache začne čistit. Pro tento parametr je v síti mnoho holivarů. Ideální velikost mezipaměti je 2 GB až 10 GB v závislosti na počtu klientů. Přibližně 1 GB mezipaměti na každých 100 000 požadavků/den. Zůstávám u 5 GB. V Squidu je každý objekt v mezipaměti umístěn v samostatném souboru, samotné soubory se nevysypávají na jedno místo, ale používá se dvouúrovňová hierarchie adresářů. Počet katalogů 1 a 2 úrovně a určení parametrů L1 a L2. Tyto hodnoty lze ponechat jako výchozí. Ale pro orientaci v situaci budu citovat z bog.pp.ru:

    Experiment ukázal, že při mezipaměti 700 MB se používají pouze 2 adresáře první úrovně. To znamená, že pro standardní adresářovou strukturu cache se do ní „pohodlně“ vejde milion objektů (9 GB), pokud jich je více, pak je třeba zvýšit počet adresářů nejvyšší úrovně

    Můžete použít více cache_dir. To má pozitivní vliv na výkon, zvláště pokud mezipaměť umístíte na různé disky. Cache můžete dále urychlit umístěním cache do tmpfs. Pro každý parametr cache_dir možné v sekce možností definujte možnosti jen pro čtení (pouze pro čtení) a max-size (maximální velikost objektu).

    Maximální velikost objektu v mezipaměti je určena parametrem maximum_object_size, výchozí hodnota je 4 MB. Tuto hodnotu jsem zvýšil na 60 MB, protože. zaměstnanci v místní síti musí často stahovat soubory stejného typu až do zadané velikosti:

    Maximální_velikost_objektu 61440 kB

    Rovněž? mít a parametr minimální_velikost_objektu odpovídá za minimální velikost objektu, ve výchozím nastavení je jeho hodnota „0“, to znamená, že je zakázána. Doporučuji zvýšit hodnotu tohoto parametru na 2-3 KB, což sníží zátěž disku při hledání malých objektů.

    RAM, používaný chobotnicí je zasazen do parametr cache_mem, výchozí hodnota je 256 MB (ve verzi 3.1). Tuto hodnotu jsem nechal jako výchozí. Tuto hodnotu se vyplatí změnit pouze v případě, že se vás na to chobotnice zeptá v protokolech. Po těchto změnách je třeba restartovat squid, tím se vytvoří adresářová struktura:

    Gw ~ # service squid3 start Spuštění Squid HTTP Proxy 3.x: squid3Vytvoření Squid HTTP Proxy 3.x struktury cache ... (varování). 19. 2. 2012 22:58:21| Vytváření swap adresářů 2012/02/19 22:58:21| /var/spool/squid3 existuje 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/00 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/01 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/02 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/03 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/04 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/05 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/06 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/07 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/08 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/09 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/0A 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/0B 2012/02/19 22:58:21| Vytváření adresářů v /var/spool/squid3/0C 2012/02/19 22:58:21| Vytváření adresářů v /var/spool/squid3/0D 2012/02/19 22:58:21| Vytváření adresářů ve /var/spool/squid3/0E 2012/02/19 22:58:21| Vytvoření adresářů v /var/spool/squid3/0F .

    Je popsáno mnoho zajímavých otázek a odpovědí na ně o využití cache a paměti chobotnice, čímž můžeme považovat typické řešení pro nastavení proxy serveru za hotové.

    Příklad konfigurace transparentního proxy serveru squid

    co je transparentní proxy? Toto je režim provozu proxy serveru, když klient nelze konfigurovat pracovat přes proxy a odesílá požadavky do sítě pomocí protokolu HTTP, jako kdyby klient prohlížeče pracoval přímo s webovým serverem. Zároveň jsou silou (v linuxu - ) odchozí HTTP požadavky směrovány na port, na kterém běží proxy. Proxy server zase převádí požadavky HTTP na požadavky protokolu proxy serveru a odesílá odpovědi klientovi jako webový server. Že. klient transparentně komunikuje s proxy serverem.

    Je důležité rozumět a vědět! Tato metoda podporuje pouze protokol HTTP a nepodporuje gopher, FTP nebo jiné proxy. Squid také nemůže pracovat v transparentním režimu a v autentizačním režimu současně.

    Chcete-li nastavit transparentní režim, musíte:

    1. Nastavte transparentní režim v nastavení proxy. To se provádí v parametr http_port, Například:

    Http_port ip:port transparentní

    2. Zabalit uživatele odpovídající pravidlo na požadovaný port pomocí iptables:

    Iptables -t nat -A PREROUTING -i název_příchozího_rozhraní -s LAN_subnet -p tcp --dport 80 -j PŘESMĚROVÁNÍ --to-port squid_port, příklad: iptables -t nat -A PREROUTING -i eth1 -s 10.0.0.0/24 - p tcp --dport 80 -j PŘESMĚROVÁNÍ --to-port 3128

    Všechno. Na našem proxy serveru je možné si užít zabalené a nic netušící uživatele.

    Odstraňování problémů

    Nejdříve, diagnostika provozu chobotnice leží v prohlížení protokolů nacházející se v /var/log/squid3. Většina problémů se řeší tímto způsobem. Pokud to k vyřešení problému nepomohlo, přepněte démona pomocí příkazu do režimu ladění squid3 -k ladění problém bude snazší najít. Co je vlastně chobotnice? Soubory protokolu obsahují různé informace o načítání a výkonu Squid. Kromě přístupových informací zapisuje /pre také protokolování systémových chyb a informací o spotřebě zdrojů, jako je například paměť nebo místo na disku.

    Formát souboru protokolu chobotnice je řetězec hodnot oddělený jednou nebo více mezerami:

    time.ms response_time ip_src Squid_req_status/HTTP_status byte_snd metoda URL uživatele squid_her_status/ip_dst MIME

    • čas- čas ve formátu unix (počet sekund od 00:00 1970.01.01)
    • slečna- milisekundy až 3 číslice
    • Doba odezvy- doba odezvy, milisekundy
    • ip_src- zdrojová IP adresa
    • squid_req_status- stav požadavku squid (například TCP_HIT pro dříve uložené objekty v mezipaměti, TCP_MISS, pokud požadovaný objekt není převzat z místní mezipaměti, UDP_HIT a UDP_MISS stejný pro požadavky sourozenců)
    • HTTP_status- Stav protokolu http (200 pro úspěch, 000 pro požadavky UDP, 403 pro přesměrování, 500 pro chyby)
    • byte_snd- přenášeno, bajty v odpovědi včetně HTTP hlavičky
    • metoda- metoda požadavku GET nebo POST
    • URL- požadovaná adresa URL
    • uživatel- oprávněné uživatelské jméno
    • squid_her_status- stav hierarchie olihní - Výsledek požadavků na sourozenecké/rodičovské cache
    • ip_dst- IP adresa požadovaného uzlu
    • MIM mimického typu

    Podívejme se na příklad:

    1329732295.053 374 10.0.1.55 TCP_MISS/200 1475 ZÍSKAT http://www.youtube.com/live_comments? - DIRECT/173.194.69.91text/xml

    Jak vidíte, požadavek byl učiněn na 1329732295.053, odezva vzdáleného serveru byla 374 ms, hostitel, který stránku požadoval, má IP 10.0.1.55, požadovaný objekt nebyl přenesen z místní mezipaměti (TCP_MISS), server kód odpovědi byl 200, 1475 bajtů bylo odesláno klientovi metodou GET, byla požadována adresa URL http://www.youtube.com/live_comments?, uživatelské jméno nebylo definováno, objekt byl přijat přímo ze serveru s IP 173.194.69.91 byl text přenesen, protože mime-text/xml. Tady.

    Pár závěrečných bodů o chobotnici3

    V článku jsem zkontroloval základní principy proxy serveru a také základní nastavení, která vám umožní implementovat nejjednodušší cachovací server a organizovat provoz chobotnice v transparentním (transparentním) režimu. Squid podporuje několik možností autorizace (přes IP, LDAP, MySQL, NTLM atd.), schopnost omezit šířku pásma kanálu a řídit přístup k internetovým zdrojům. Práci chobotnice s různými způsoby autorizace a příklady řízení dopravy se budu zabývat v následujících článcích.

    Článek je velmi užitečný, srozumitelný a poměrně podrobný
    Převzato pro uchování odtud http://www.opennet.ru/base/net/squid_inst.txt.html

    Klíčová slova: squid proxy acl
    Od: Zabudkin Lev Miroslavovič
    Datum: pá, 14. ledna 2005 15:04:58 +0500 (YEKT)
    Předmět: Nastavení Squid pro začátečníky

    Nastavení Squid pro figuríny
    (verze článku 1.0 z 29.10.2004)

    Zabudkin Lev Miroslavovič,
    Rusko, oblast Tyumen,
    G. Nižněvartovsk,
    vedoucí kodér
    MU "Knihovní a informační systém"
    [e-mail chráněný]
    http://zabudkin.com

    ÚVOD
    ———-

    Mnoho správců čelí problému rozumného použití
    čas a kanál pro přístup k internetu, popřemýšlejte o možnosti
    úspora času a peněz, omezení rychlosti pro určité typy
    soubory nebo osobnosti, nakonec o uložení všeho, co s tím souvisí
    určité aspekty přístupu do globální sítě.

    Já se s pomocí tohoto článku pokusím jasně a srozumitelně vysvětlit o
    nastavení nejběžnějšího proxy serveru - proxy
    Squid servery.

    POČÁTEČNÍ NASTAVENÍ SQUID PRO PŘÍSTUP UŽIVATELŮ
    —————————————————

    Nebudeme se pouštět do procesu nastavení proxy serveru Squid, ale
    Pojďme k jeho nastavení.

    Nejzákladnější věc, kterou bychom měli udělat po instalaci, je
    umožnit přístup uživatelům naší místní sítě. K tomu slouží
    http_port, http_access parametry. Kromě toho získáme acl (seznam
    řízení přístupu) pro naši místní síť.

    A tak potřebujeme http_port, pokud je naším proxy serverem Squid
    by měl sloužit pouze počítačům v naší lokální síti a být
    neviditelné pro vnější svět, aby se vyloučila možnost „špatného
    lidé" externí sítě, aby mohli používat náš kanál nebo provoz, a
    v případě, že jsou v kódu proxy serveru nalezeny "díry".
    Chobotnici, využijte jich.

    Parametr http_access se používá k povolení nebo zamítnutí přístupu
    na určité zdroje, určité adresy nebo z určitých
    adresy, na určité stránky, podle určitých protokolů, portů a
    vše, co je přímo specifikováno pomocí Acl (kontrolní seznamy
    přístup).

    Tabulka N 1. Některé podsítě.

    |Rozsah adres |Dlouhá forma |Krátká forma
    192.168.0.1-192.168.0.254 192.168.0.0/255.255.255.0 192.168.0.0/24
    192.168.20.1-192.168.20.254 192.168.20.0/255.255.255.0 192.168.20.0/24
    192.168.0.1-192.168.254.254 192.168.20.0/255.255.0.0 192.168.20.0/16
    10.0.0.1-10.254.254.254 10.0.0.0/255.0.0.0 10.0.0.0/8

    Předpokládejme, že máte síť s adresami od 192.168.0.1 do 192.168.0.254,
    poté přidejte nový Acl (viz tabulka N1):

    acl LocalNet src 192.168.0.0/24

    Předpokládejme, že máte proxy server Squid umístěný na adrese
    192.168.0.200 na portu 3128, poté zapíšeme do konfiguračního souboru:

    http_port 192.168.0.200:3128

    Naší další akcí bude zakázat používání našeho proxy
    servery jiné než uživatelé naší místní sítě:

    http_access povolit LocalNet
    http_access odepřít vše

    V tomto případě slovo povolit je povolení a slovo odmítnout
    deny, to znamená, že povolíme přístup k proxy serveru Squid pomocí
    adresy naší místní sítě a odepřít přístup všem ostatním.

    Buďte opatrní při zadávání http_access, protože je Squid používá
    ve vámi uvedeném pořadí.

    LEARNING ACL (Seznamy řízení přístupu)
    ————————————-

    Systém řízení přístupu v proxy serveru Squid je velmi flexibilní
    a rozsáhlé. Skládá se z prvků s hodnotami a přístupovými seznamy c
    specifikující povolení (povolení) nebo odepření (zákaz).

    Formát ACL je následující:

    seznam prvků názvu acl

    Formát přístupového seznamu:

    http_access určující acl_name

    Podíváme se na některé prvky, které vám umožňují používat proxy
    Squid server, samozřejmě s příklady:

    * acl name src seznam

    Tímto prvkem (src) udáváme IP adresu zdroje, tzn.
    klienta, ze kterého přišel požadavek na náš proxy server.

    V následujícím příkladu dovolíme Vasyu Pupkinovi a oddělení
    programování (Progs) přístup k našemu proxy serveru a vše
    zbytek bude zakázán:

    acl Progs src 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    http_access povolit programy
    http_access povolit Pupkin
    http_access odepřít vše

    * acl název dst seznam

    Tento prvek (dst) určuje cílovou IP adresu, tedy IP adresu
    server, ke kterému chce klient proxy serveru přistupovat.

    V následujícím příkladu odepřeme Vasyovi přístup k podsíti 194.67.0.0/16 (k
    například obsahuje stejný aport.ru):

    acl Net194 dst 194.67.0.0/16
    http_access odepřít Pupkin Net194

    * seznam názvů domén acl dst

    Tímto prvkem (dstdomain) specifikujeme doménu, přístup do
    kterou chce klient proxy serveru přijímat.

    V následujícím příkladu odepřeme Vasyovi přístup k warez webům nnm.ru a
    kpnemo.ru:

    acl SitesWarez dstdomain .nnm.ru .kpnemo.ru
    http_access deny Pupkin SitesWarez

    Pokud je nutné zadat zdrojovou doménu, použijte
    srcdoména.

    * název acl [-i] seznam srcdom_regex
    * název acl [-i] seznam dstdom_regex

    Tyto prvky se liší od srcdomain a dstdomain pouze tím, že obsahují
    jsou používány regulární výrazy, což v tomto článku nebudeme
    Pojďme se na to podívat, ale zde je příklad:

    Acl SitesRegexSex dstdom_regex sex
    Acl SitesRegexComNet dstdom_regex \.com$ \.net$
    http_access deny Pupkin SitesRegexSex
    http_access deny Pupkin SitesRegexComNet

    V tomto příkladu jsme Vasiliji Pupkinovi odepřeli přístup ke všem doménám,
    obsahující slovo sex a do všech domén v zónách .com a .net.

    Přepínač -i je navržen tak, aby ignoroval velikost písmen v regulárních výrazech.

    * název acl [-i] seznam regulárních_adres URL

    Tímto prvkem (url_regex) určíme pravidelný vzor
    URL výrazy.

    Příklad zadání souborů s příponou avi začínající slovem sex:

    acl NoAviFromSex url_regex -i sex.*\.avi$

    V případě, že chcete zadat vzor pouze pro cestu URL, tzn.
    vyjma protokolu a názvu hostitele (domény), pak použijte urlpath_regex.

    Příklad pro specifikaci hudebních souborů:

    acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$

    * seznam portů acl acl_name

    Označení čísla cílového portu, tedy portu, na který chce
    klient našeho proxy serveru se připojí.

    Jako příklad zakážeme všem používat program Mirc prostřednictvím našeho proxy
    server:

    Port Acl Mirc 6667-6669 7770-7776
    http_access odepřít všechny Mirc

    * seznam protokolů acl acl_name

    Zadejte přenosový protokol.

    Jako příklad zakážeme používání protokolu FTP výše zmíněnému Vasyovi
    přes náš proxy server:

    acl ftpproto proto ftp
    http_access deny Pupkin ftpproto

    * seznam metod acl acl_name

    Určení metody požadavku http klientem (GET, POST).

    Vezměme si situaci, kdy by Vasya Pupkin měl mít zakázáno to prohlížet
    mail na webu mail.ru, ale zároveň vám umožní chodit po webu bez
    zákazy, tedy zakázat Vasyovi vstup do jeho schránky
    přes přihlašovací formulář na webu:

    acl SiteMailRu dstdomain .mail.ru
    acl methodpost metoda POST
    http_access deny Pupkin methodpost SiteMailRu

    OMEZENÍ UŽIVATELŮ
    ————————-

    Poměrně často u nás nastává situace, že přístupový kanál
    globální internetová síť pro všechny uživatele nestačí a je
    touha dát každému maximum, ale zároveň nedat kanál
    "Bent" kvůli milovníkům nahrávání souborů.

    Nástroje Squid proxy umožňují toho dosáhnout několika způsoby:

    - prvním způsobem je optimalizace ukládání objektů do mezipaměti;

    - druhý je časový limit pro určité uživatele, což není
    zcela správně;

    - třetí způsob je omezení rychlosti u určitých typů
    soubory, uživatelé a vše, co je námi definováno prostřednictvím Acl.

    ČASOVÉ LIMITY
    ———————-

    Uživatele můžete časově omezit takto:

    jméno acl čas dny hh:mm-hh:mm

    Kde je den: M - pondělí, T - úterý, W - středa, H - čtvrtek, P -
    pátek, A - sobota, S - neděle.

    V tomto případě musí být hh:mm menší než HH:MM, to znamená, že můžete zadat pomocí
    00:00-23:59, ale nemůžete zadat 20:00-09:00.

    Zakažme stejnému Vasyovi přístup k internetu od 10 do
    15 hodin každý den:

    acl TimePupkin time 10:00-15:00
    http_access deny Pupkin TimePupkin

    Pokud chcete povolit Vasyovi používat program Mirc od 13 do 14
    hodin, píšeme:

    acl TimePupkin time 13:00-14:00
    http_access allow Pupkin TimePupkin Mirc
    http_access odepřít Pupkin Mirc

    A co když potřebujete v určité dny zakázat nebo povolit
    týdnů? Squid vám to také umožňuje, například od 13 do 14 hodin
    pondělí a neděle:

    acl TimePupkin time MS 13:00-14:00

    Jak vidíte, není na tom nic složitého.

    RYCHLOSTNÍ LIMITY
    ————————

    Řízení rychlosti v proxy serveru Squid se provádí pomocí
    bazény. Bazén je druh pivního sudu, ve kterém je neustále pivo
    naplněné po okraj a zákazníci nalévají do svých sklenic nebo jiných nádob
    pro další domácí spotřebu dle potřeby prostřednictvím jejich
    osobní kohoutky.

    Bazény jsou regulovány pomocí tří parametrů: delay_class,
    delay_parameters, delay_access. Počet bazénů se zadává pomocí
    parametr delay_pools.

    Bazény mohou mít tři třídy:

    1. Celý tok piva je omezen na jeden výčep (pro celou síť).

    2. Celý tok piva je omezen na jeden výčep, ale výčep je dělený
    pro jeřáby (pro každou IP).
    3. Celý tok piva je omezen na jeden výčep, ale výčep je rozdělen na
    jeřáby (do podsítí), které se také dělí na minijeřáby (do
    každá IP).

    delay_pools počet_deklarovaných_poolů
    delay_access pool_number akce acl_name

    akci lze povolit (povolit) a odmítnout (zakázat). přičemž
    tento fond platí pro ty, kterým je povolen, a nevztahuje se na ty, kteří
    komu je to zakázáno. V případě, že je zadáno povolit vše a poté Pupkin zamítnout,
    pak tato třída stále ovlivní Pupkina, protože Pupkinova IP adresa
    deklarovaný v acl Pupkin je v seznamu adres acl all. Mít
    v dohledu.

    delay_class pool_number pool_class
    delay_parameters parametry pool_number

    parametry se liší v závislosti na třídě bazénu:

    pro první třídu:

    delay_parameters 1 byte_to_whole_network

    pro druhou třídu:

    delay_parameters 1 per_network per_client

    pro třetí třídu:

    delay_parameters 1 per_whole_network per_subnet per_client

    Například máme kanál 128 Kb (průměrně 15 Kb za sekundu) a my
    přejeme Vasyovi (Pupkinovi), aby dal pouze 4 kB/s (za všechno o všem jeden
    malá sklenička), dejte oddělení programování (Prog) celkem 10
    KB/s a pouze 5 KB/s pro každý (pouze dvě brýle), vše
    omezit zbytek na 2 Kb/s pro každého a 10 Kb/s pro všechny, a
    mp3 soubory (média) limit na 3 kB za sekundu pro všechny (pro celý sud
    pivo takový malý výčep). Pak píšeme:

    acl Prog src 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    acl LocalNet src 192.168.0.0/255.255.255.0
    acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$

    delay_pools 4
    # první limit mp3
    zpoždění_třída 1 1
    parametry_zpoždění 1 3000/3000
    delay_access 1 povolit média
    delay_access 1 zakázat vše
    # limit chudák Vasya
    zpoždění_třída 2 1
    parametry_zpoždění 2 4000/4000
    delay_access 2 povolit Pupkin
    delay_access 2 zakázat vše
    # omezit programovací oddělení
    zpoždění_třída 3 2
    delay_parameters 3 10000/10000 5000/5000
    delay_access 3 povolit Prog
    delay_access 3 zakázat vše
    # a teď omezíme zbytek (druhá třída bazénu)
    zpoždění_třída 4 2
    delay_parameters 4 10000/10000 2000/2000
    delay_access 4 odepřít média
    delay_access 4 deny Pupkin
    delay_access 4 deny Prog
    delay_access 4 povolit LocalNet
    delay_access 4 zakázat vše

    Často vyvstává otázka, jak takový malý nejlépe využít
    kanál tak, aby byl automaticky sdílen mezi všemi, kteří právě jsou
    načítá to něco? Na tuto otázku existuje jednoznačná odpověď -
    není to možné provést pomocí proxy serveru Squid, ale přesto
    něco, co můžete udělat:

    zpoždění_třída 1 2
    parametry_zpoždění 1 -1/-1 5000/15000
    delay_access 1 povolit LocalNet
    delay_access 1 zakázat vše

    Tím alokujeme pro celou naši síť a pro podsítě maximum
    kanál (-1 znamená neomezeně) a pro každého uživatele dáme
    maximální rychlost 5 Kb/s po stažení na maximum
    rychlost prvních 15 KB dokumentu.

    Klient tedy nesní celý kanál, ale rychle přijme
    prvních 15 kB.

    OPTIMALIZACE ukládání do mezipaměti OBJEKTŮ V SQUID
    ——————————————

    Existuje mnoho typů souborů, které nejsou dostatečně aktualizovány
    často proto, aby proxy server mohl odpovídat na hlavičky z
    webové servery, že tento objekt nepodléhá ukládání do mezipaměti nebo že byl
    překvapivě jen změnil. To je celkem běžná situace.

    K vyřešení takových situací použijte parametr refresh_pattern v souboru
    Nastavení proxy chobotnice, ale kompletně se vzorci atd. my ho
    nebudou brány v úvahu.

    refresh_pattern [-i] řetězec MINV procent MAXV parametry

    Tento parametr se používá k určení stáří objektu.
    (čtení souboru) v mezipaměti, zda má být obnoven nebo ne.

    MINV (minimální čas) – čas v minutách, kdy je objekt dostupný
    cache je považována za čerstvou.

    MAXV (maximální čas) - maximální čas v minutách, kdy objekt
    považovány za čerstvé.

    Možnosti jsou jedna nebo více z následujících možností:

    - override-expire - ignorovat informaci o expiraci čerstvosti předmětu
    a použít minv.

    - override-lastmod - ignorovat informace o datu změny souboru a
    použijte MINV.

    - reload-into-ims - namísto požadavku klienta "neukládat do mezipaměti
    dokumenty" (bez mezipaměti) odeslat požadavek "Pokud se změní z".
    (If-Modified-Since)

    - ignore-reload - ignoruje požadavky klientů "neukládat dokumenty do mezipaměti"
    (bez mezipaměti) nebo „znovu načíst dokument“ (znovu načíst).

    A tak se dostáváme k tomu nejdůležitějšímu. Jaké typy souborů jsou méně běžné?
    vše aktualizováno? Zpravidla se jedná o různé hudební soubory a
    obrázky.

    Nastavte čerstvost objektů pro obrázky a hudební soubory
    řekněme například až 30 dní (43200 minut):

    refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.png$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.jpg$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.jpeg$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.pdf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.zip$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.tar$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.gz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.tgz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.exe$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.prz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.ppt$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.inf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.swf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.mid$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.wav$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.mp3$ 43200 100% 43200 override-lastmod override-expire

    Výše uvedená nastavení jsou pouze příkladem pro přehlednost.
    podstata.

    Nyní můžete zkontrolovat účinnost vašeho proxy serveru
    se určitě zvýší.

    ZÁVĚR
    ———-

    Proxy server Squid není jediným běžným proxy serverem
    server, jsou i další. Statistiky ale ukazují, že většina
    používat tento konkrétní proxy server, ale stále mnoho
    Začátečníci mají problémy s nastavením.

    S pomocí tohoto článku jsem se pokusil pro rozsáhlé odhalit alespoň něco málo
    obsahuje některé funkce proxy serveru Squid.

    Publikováno v: ,
    Označeno: , , Nyní dojde k omezení rychlosti stahování pro různé skupiny lidí. No, jste připraveni? :) Jít…

    Start. Vytvořte ACL

    Vytvořte skupiny ACL:
    acl mp3_deny src "/etc/squid/lists/mp3_deny_users"
    acl super_users src "/etc/squid/lists/super_users"
    acl deny_all src "/etc/squid/lists/deny_all_users"

    Vytvořili jsme tedy seznamy, respektive tři skupiny uživatelů, jejichž adresy jsou v souborech obsaženy. Vzhledem k tomu, že IP byly přiděleny přede mnou, a neshodnou se na rozlišení, co stáhnout a co ne, bude jednodušší jejich IP zapsat do souboru než vytvářet rozsahy, ale co chcete :)
    acl mego_super_user src 192.168.0.0-256 # =) jen opatrně s tímto rozsahem
    Příklad obsahu seznamu
    nano "/etc/squid/lists/mp3_deny_users"
    192.168.0.213
    192.168.0.75
    192.168.0.52
    195.168.0.254

    Nyní je čas vytvořit seznam odepřených oprávnění:
    acl mobile urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s)(1 )|$)
    acl multimedia urlpath_regex -i (\.swf|\.mp3|\.m3u|\.flv|\.wav|\.vqf|\.avi|\.wmv|\.mpeg|\.mp|\.asf| \.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|\.qt|\.ram|\.rm|\.iso|\.raw|\. mov)((\#|\&|\?|\s)(1)|$)
    acl archiv urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip| \.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s)(1)|$)
    acl soft urlpath_regex -i (\.exe|\.msi|\.rpm)((\#|\&|\?|\s)(1)|$)
    acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s)(1)|$)

    To je vše, o šestý kbelík je největší zájem:
    každá pumpuje vše rychlostí 10, pokud rychlost překročí v podsíti, začne řezací kanál,
    Pokud stahují i ​​z jiných podsítí a je jich více než dvě, tak i tak se rychlost začne snižovat ...
    Pokud to uděláte na fryaha, pak při stavbě chobotnice nezapomeňte postavit ji s volbou --enable-delay-pools!
    P.S. Snažil jsem se, aby to bylo co nejjasnější. Pokud jsem vám pomohl na to přijít, pak jsem toto téma nenapsal zbytečně. Budu moc ráda. Pokud něco není jasné, ptejte se, určitě odpovím.
    P.S.S. Výchozí konfigurace olihně pomohla toto vše napsat ve snu, pokud to začnete číst, můžete zjistit spoustu nových věcí!
    P.S.S.S Milý KorP, bohužel teď není čas na doménu, tak zatím píšu, co mám v hlavě
    UPD.
    reply_body_max_size 1000 povolit, aby se nestahovaly všechny soubory větší než 1 kilobajt

    SQUID je program, který přijímá HTTP/FTP požadavky od klientů a používá je k přístupu k internetovým zdrojům. Použití proxy serveru (chobotnice) umožňuje používat fiktivní IP adresy ve vnitřní síti (Masquerading - maskování), zvyšuje rychlost zpracování požadavků při opětovném přístupu (cachování) a také poskytuje další zabezpečení.

    Nemá smysl instalovat proxy na váš domácí počítač, protože funkce ukládání do mezipaměti provádí prohlížeč. Proxy server by měl být používán pouze v případě, že jsou ve vaší síti tři nebo čtyři počítače, které potřebují přístup k internetu. V tomto případě je požadavek z prohlížeče na proxy server zpracován rychleji než z prohlížeče na internetové zdroje a tím se zvyšuje výkon. V takovém případě můžete bezpečně nastavit velikost mezipaměti v klientských prohlížečích na nulu.

    SQUID je více než jen proxy server. Jedná se o jakýsi standard pro ukládání informací na internetu do mezipaměti. Vzhledem k všudypřítomnosti SQUID jsem jeho konfiguraci v knize věnoval hodně pozornosti.

    Proxy server Squid je tvořen několika programy, včetně: samotného programu serveru squid a také programu dnsserver, programu pro zpracování dotazů DNS. Když se program squid spustí, nejprve spustí daný počet procesů dnsserver, z nichž každý běží samostatně a může provést pouze jedno vyhledávání DNS. Tím se sníží celkový časový limit odpovědi DNS.

    15.2. Instalace SQUID

    SQUID lze nainstalovat ze zdroje nebo jako RPM balíček. Instalace balíčku SQUID RPM je velmi snadná – vše, co musíte udělat, je zadat příkaz

    rpm –ih squid-2.3.STABLE2-3mdk.i586.rpm

    Používám squid verzi 2.3. Novější verze je k dispozici jako zdrojové kódy. Zdroje lze získat z ftp://ftp.squid.org. Chcete-li rozbalit zdrojové kódy, spusťte následující příkazy:

    gunzip squid-2.3.STABLE2-3-src.tar.gz
    tar xvf squid-2.3.STABLE2-3-src.tar.gz

    Nyní pojďme přímo k instalaci:

    ./configure --prefix=/usr/local/squid

    SQUID se nainstaluje do adresáře určeného klíčem předpony - /usr/local/squid. Kromě prefixu můžete použít klíče uvedené v tabulce. 15.1.

    konfigurace možností skriptu Tabulka 15.1

    15.3. Nastavení SQUID

    Server SQUID používá konfigurační soubor squid.conf, který se obvykle nachází v adresáři /etc/squid (nebo /usr/local/squid/etc v dřívějších verzích). Otevřete jej pomocí libovolného textového editoru, jako je joe/usr/local/squid/etc/squid.conf. Dále proveďte následující posloupnost akcí:

    1. Zadejte proxy poskytovatele:

    V tomto případě se proxy .isp.ru stává naším „sousedem“ (neighbour, peer).

    2. Nastavte velikost paměti dostupné pro chobotnici a adresář mezipaměti:

    cache_dir /usr/local/squid/cache 1024 16 256

    kde: 65536 - množství paměti RAM v bajtech, které lze použít pro mezipaměť;

    1024 - počet megabajtů přidělených na disku v určeném adresáři pro mezipaměť. Tento adresář bude ukládat soubory uložené v mezipaměti. Netřeba dodávat, že pokud máte několik pevných disků, měla by být mezipaměť umístěna na ten nejrychlejší.

    3. Zadejte hostitele, kteří mají povolen přístup k serveru proxy:

    acl povoleni hostitelé src 192.168.1.0/255.255.255.0
    acl localhost src 127.0.0.1/255.255.255.255

    4. Zadejte povolené porty SSL:

    http_access odepřít CONNECT !SSL_ports

    a odepřít přístup všem kromě těch, kteří mohou:

    http_access allow allow_hosts

    6. Určete uživatele, kteří mohou používat squid (v tomto příkladu jsou to den, admin, developer):

    acl allow_users uživatel den admin vývojář
    http_access povolit povoleným_uživatelům

    Tagy maxium_object_size a maxium_object nastavují limity velikosti předávaných objektů.

    Následuje příklad odepření přístupu k jakékoli adrese URL, která odpovídá vzorovým hrám, a povolení přístupu všem ostatním:

    15.4. Běh SQUID

    Nyní, když jste dokončili základní nastavení SQUID, musíte jej spustit: /usr/local/squid/bin/squid –z

    Volba -z je nutná k vytvoření (vynulování) adresáře obsahujícího mezipaměť. Obvykle je tento parametr potřeba pouze při prvním spuštění. Některé další užitečné parametry SQUID jsou uvedeny v tabulce 1. 15.2.

    Parametry SQUID Tabulka 15.2

    Parametr Popis
    - přístav Určuje port pro příchozí požadavky HTTP
    -d Umožňuje výstup ladění na standardní chybu (na stderr)
    -f soubor Určuje konfigurační soubor
    -h Poskytuje informace nápovědy
    -k překonfigurovat Vyšle signál HUP
    -k vypnutí Vypínání proxy serveru
    -k zabít Dokončení bez uzavření protokolů
    -u přístav Určuje port pro příchozí požadavky ICP
    -s Povolit protokolování pomocí syslog
    -proti Poskytuje informace o verzi SQUID
    -D Neprovádějte test DNS při spuštění
    -N Nestaňte se démonem (proces na pozadí)
    -Y Rychlejší zotavení po havárii

    15.5. formát souboru squid.conf

    Soubor squid.conf obsahuje různé možnosti konfigurace proxy serveru. Podívejme se na ně všechny popořadě.

    15.5.1. Nastavení sítě

    Port pro požadavky klientů (viz obrázek 15.1):

    Rýže. 15.1. Nastavení proxy


    Pokud neexistují žádní "sousedé" (peer), nastavte icp_port 0

    Port pro komunikaci se sousedy - ICP - přes TCP. Při použití této možnosti musíte nastavit přepínač --enable-htcp při nastavování htcp_port 4827.

    Další parametr určuje, na kterou adresu se mají přijímat příchozí pakety, pokud má hostitel více rozhraní. Verze 2.3 tuto možnost nemá:

    Při odesílání informací bude jako zdroj použita zadaná adresa:

    Totéž, ale pro ICP:

    (podobně pro ICP)

    Totéž, ale pro ICP (při příjmu):

    Ve výchozím nastavení je tento režim povolen, ale pokud je proxy server za baštou (firewall), musí být parametr pasivní_ftp zakázán:

    15.5.2. Možnosti souseda

    Sousedé jsou popsáni v následujícím formátu:

    cache_peer typ hostitele proxy-port icp-port options

    kde: hostname - jméno souseda;

    typ - soused typ: rodič - senior, sourozenec - stejná úroveň;

    proxy-port - port proxy serveru;

    icp-port - ICP port;

    možnosti - možnosti.

    V tomto případě je každý soused napsán na samostatném řádku.

    Parent - pokud v lokální mezipaměti není žádný požadavek, je přesměrován na nadřazeného; ten, pokud požadavek není ve své mezipaměti, jej přepošle dále atd. Vrátí připravenou odpověď podřízenému. Pokud squid přijme TCP_DENIED od rodiče, bude zdroj zpřístupněn přímo.

    Sourozenec - pokud požadavek není v lokální mezipaměti, je požadavek přesměrován na sourozence; pokud v něm není žádný požadavek, vrátí o něm zprávu, neprovádí se žádná další akce.

    15.5.3. Správa mezipaměti

    Po dosažení této úrovně naplnění mezipaměti (v procentech) začne zrychlený proces mazání starých objektů.

    Po dosažení této úrovně se proces mazání zastaví.

    Maximální velikost objektu, který má být uložen do mezipaměti.

    Menší soubory se neukládají.

    15.5.4. protokolování

    Režimy protokolování SQUID jsou uvedeny níže s příslušnými protokoly. Pokud nepotřebujete nějaký protokol, nastavte místo názvu souboru žádný.

    cache_access_log /usr/local/squid/logs/access.log

    Každý požadavek na SQUID je protokolován. Protokol je /usr/local/squid/logs/access.log.

    cache_log /usr/local/squid/logs/cache.log

    Začátek procesu se zaznamenává. Protokol je /usr/local/squid/logs/cache.log.

    cache_store_log /usr/local/squid/logs/store.log

    Záznamy objektů v mezipaměti jsou protokolovány. Protokol je /usr/local/squid/logs/store.log.

    15.5.5. Možnosti externího programu

    Zde uvedený e-mail bude použit místo hesla pro anonymní přístup k ftp serverům.

    dns_nameservers seznam IP adres

    Hodnota tohoto parametru se používá místo seznamu serverů DNS definovaných v souboru /etc/resolv.conf; výchozí je žádný.

    cache_dns_program /usr/local/squid/bin/dnsserver

    Tento parametr určuje program pro překlad IP adres na jména (DNS server).

    Umožňuje autentizaci klientů, kteří zadávají požadavky. V tomto případě musí být definován proxy_auth ACL.

    authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd

    Tradiční autentizační program. Definováno v ../auth_modules/NCSA.

    15.5.6. ACL

    ACL (Access Control Lists) - seznamy řízení přístupu. Poměrně často vzniká potřeba seskupit parametry stejného typu do jednoho celku pro jejich následné zpracování. K efektivnímu řešení tohoto problému se používají seznamy řízení přístupu (ACL). Například:

    Tento záznam znamená, že je vytvořen seznam SSL_portů typu port. Položky seznamu jsou čísla portů 443 a 563.

    Můžete přidat nový prvek do již existujícího seznamu (přidání parametru) takto:

    Nepotřebný prvek můžete odstranit pomocí parametru del: acl del SSL_ports 999

    Parametr ren (z rename) umožňuje přejmenovat seznam:

    acl ren SSL_ports Povolené_porty

    Možnost vyprázdnit vám umožňuje odstranit všechny seznamy spolu s jejich obsahem:

    Standard ACL vyžaduje, aby názvu seznamu předcházel symbol $. Jinými slovy, všechny výše uvedené příklady by měly být z velké části nesprávné. Chcete-li například vytvořit seznam, musíte použít záznam:

    Většina filtrů, jako je SQUID, však tento požadavek ignoruje a názvy seznamů můžete zadat bez znaku dolaru.

    ACL je tedy definice přístupového seznamu. Má následující formát:

    acl název typ řetězec

    kde: typ je typ objektu;

    řetězec je regulární výraz.

    Můžete použít seznam:

    acl název typ název souboru

    Parametry jsou vyjmenovány jeden parametr na řádek. Typy, které lze použít při kompilaci ACL, jsou uvedeny v tabulce 1. 15.3.

    Tabulka typů ACL 15.3

    Typ Popis typu
    src ip-adresa/maska ​​sítě Určuje IP adresu klientů
    src addr1-addr2/netmask Určuje rozsah adres
    Dst ip-adresa/maska ​​sítě Určuje adresy URL hostitele
    Čas Čas, kde den je jedno písmeno z SMTWHFA
    přístav Seznam portů
    Port port1–port2 Port Range
    Proto Protokol - HTTP nebo FTP
    metoda Metoda - GET nebo POST
    Prohlížeč [-i] regulární výraz Porovná se hlavička User-Agent

    [-i] - velikost písmen se ignoruje.

    15.5.7. Možnosti přístupu

    http_access allow|deny aclname

    Povolit HTTP proxy přístup.

    icp_access povolit | odmítnout aclname

    Povolit přístup k proxy přes ICP.

    miss_access allow | odmítnout aclname

    Dovolte, abychom od vás dostali odpověď MISS.

    cache_peer_access cache-host allow|deny aclname

    Omezit požadavky na tohoto souseda – rozšíření pro doménu cache_peer_domain.

    proxy_auth_realm Squid proxy-caching webový server

    Řetězec textu, který se zobrazí na obrazovce klienta při požadavku na jméno/heslo pro přístup do mezipaměti.

    15.5.8. Možnosti administrace

    Tento parametr určuje e-mailovou adresu, na kterou bude e-mail odeslán, pokud squid přestane fungovat.

    Když spouštíte SQUID jako uživatel root, změňte UID na to, které je zadáno v parametru cache_effective_user.

    Když spouštíte SQUID jako root, změňte GID na to, které je zadáno v parametru cache_effective_group.

    viditelný_název_hostitele název_hostitele

    Tento název bude uveden v chybových zprávách.

    Tento parametr určuje seznam aliasů pro název hostitele.

    15.6. Odhlášení z inzerce. Bannerový filtr

    Nechcete ztrácet čas navíc stahováním reklamních bannerů? Já také. Naštěstí SQUID umožňuje poměrně snadno vyřešit tento problém. Stačí vložit následující řádky do souboru /usr/local /etc/squid/squid.conf:

    acl good_url url_regex "/usr/local/etc/squid/acl/good_url"
    acl bad_urlpath urlpath_regex "/usr/local/etc/squid/acl/bad_urlpath"
    acl bad_url url_regex "/usr/local/etc/squid/acl/bad_url"
    http_access deny bad_urlpath !good_url
    http_access deny bad_url !good_url

    Podle toho bude potřeba vytvořit tři soubory: good_url, bad_url_path a bad_url. Do souboru bad_url byste měli vložit „špatné“ adresy URL, například:

    ^http://.*-ad.flycast.com/server/img/
    ^http://1000-stars-ru/cgi-bin/1000-cgi
    ^ http://1000.stars.ru/cgi-bin/1000.cgi

    A v souboru bad_url_path - "špatná" cesta, například:

    Obvykle taková jména mají bannery.

    Příklady souborů good_url, bad_url_path a bad_url lze nalézt na mé domovské stránce - http://dkws.narod.ru

    15.7. Oddělení kanálů

    Řekněme, že potřebujete nastavit proxy server tak, aby jedna skupina počítačů mohla pracovat jednou rychlostí a druhá jinou. To může být nezbytné například pro rozlišení mezi uživateli, kteří používají kanál pro práci, a uživateli, kteří používají zdroje kanálu pro domácí účely. Přirozeně, šířka pásma kanálu je důležitější pro první než pro druhý. Pomocí SQUID proxy můžete kanál rozdělit.

    Chcete-li začít, zadejte v konfiguračním souboru, kolik fondů, tedy skupin uživatelů, budete mít:

    Poté definujte třídy fondu. Existují celkem tři třídy:

    1. Pro všechny je použit jeden limit šířky pásma kanálu.

    2. Jedno obecné omezení a 255 individuálních pro každý síťový uzel třídy C.

    3. Každá podsíť třídy B bude mít svůj vlastní limit a samostatný limit pro každého hostitele.

    Přidejte následující direktivy do souboru squid.conf:

    delay_class 1 1 # definuje fond první třídy 1 pro domácí uživatele
    delay_class 2 2 # definuje druhý fond třídy 2 pro zaměstnance

    Nyní nastavte uzly, které budou patřit do poolů:

    Poté zadejte limity:

    parametry_zpoždění 1 14400/14400
    delay_parameters 2 33600/33600 16800/33600

    Jak jsem poznamenal výše, pro fond třídy 1 se používá jeden limit pro všechny počítače zahrnuté ve fondu – 14400 bajtů. První číslo udává míru plnění pro celý fond (bajty/sekundu). Druhým je maximální limit.

    Pro fond třídy 2 se limity používají pro celou podsíť a zvlášť pro každého uživatele. Pokud bychom měli definovaný fond třídy 3, pak by omezení pro něj vypadala asi takto:

    delay_parameters 3 128000/128000 64000/128000 12800/64000

    První dvě čísla nastavují míru naplnění a maximální limit pro všechny. Další dvojice čísel definuje míru plnění pro každou podsíť a maximální limit a třetí dvojice určuje míru plnění a maximální limit na jednotlivého uživatele.

    15.8. Software pro účtování provozu

    Chcete-li sledovat provoz SQUID a obecně zohledňovat provoz, můžete použít následující programy:

    sqmgrlog – http://www.ineparnet.com.br/orso/index.html

    mrtg – http://www.switch.ch/misc/leinen/snmp/perl/

    iptraf – http://dkws.narod.ru/linux/soft/iptraf-2.4.0.tar.gz

    bandmin - http://www.bandmin.org

    webalizer (analýza Apache) - http://www.mrunix.net/webalizer/

    K těmto programům je dodávána celkem čtivá dokumentace, nebudu se tedy podrobně zabývat jejich používáním. Program MRTG je popsán v části 8.5.

    15.9. Nastavení klientů

    Nyní, když jste nastavili proxy server, přejděme k nastavení klientů, tedy prohlížečů uživatele. Nepochybuji o tom, že umíte konfigurovat ten či onen prohlížeč, jen připomenu postup konfigurace u některých běžných prohlížečů.

    Internet Explorer 5

    Nabídka Nástroje→ Možnosti Internetu→ karta Připojení→ Nastavení sítě. V okně, které se objeví, nastavte požadované parametry, tj. název proxy serveru a jeho port (viz obr. 15.2).

    Rýže. 15.2. Nastavení aplikace Internet Explorer


    Netscape Communicator

    Menu Upravit→Předvolby→Upřesnit→Proxy→Ruční konfigurace proxy→Zobrazit (viz obrázek 15.3).

    Rýže. 15.3. Konfigurace Netscape Communicator


    Konqueror

    Menu Nastavení→Nastavení→Proxy (viz obr. 15.4).

    Rýže. 15.4. Nastavení Konqueroru