Meny
Är gratis
registrering
Hem  /  / Ett exempel på bläckfisk med två konfigurationer. Installera och konfigurera Squid på CentOS

Ett exempel på en bläckfisk med två konfigurationer. Installera och konfigurera Squid på CentOS

Introduktion

Många administratörer står inför problemet med klok användning av tid och kanal för att komma åt Internet, fundera på möjligheten att spara tid och pengar, på att begränsa hastigheten för vissa typer av filer eller individer, i slutändan, på att spara allt som är associerade med vissa aspekter av tillgång till Internet globalt nätverk.

Med hjälp av den här artikeln kommer jag att försöka visuellt och tydligt förklara inställningarna för den vanligaste proxyservern - Squid.

Squid initiala inställningar för användaråtkomst

Vi kommer inte att gå in i processen för att installera Squid-proxyservern, utan går direkt till att konfigurera den.

Det mest elementära som vi bör göra efter installationen är att tillåta åtkomst till användare av vårt lokala nätverk. För att göra detta, använd parametrarna http_port, http_access. Dessutom kommer vi att skapa en acl (access control list) för vårt lokala nätverk.

Och så behöver vi http_port i den mån vår Squid-proxyserver endast måste betjäna datorerna i vårt lokala nätverk och vara osynlig för omvärlden för att utesluta möjligheten att "dåliga människor" på det externa nätverket använder vår kanal eller trafik, och om de hittas "hål" i Squid proxy-koden, dra nytta av dem.

Parametern http_access används för att tillåta eller neka åtkomst till specifika resurser, specifika adresser eller från specifika adresser, till specifika platser, via specifika protokoll, portar och allt som är direkt specificerat med Acl (åtkomstkontrollistor).

Tabell N 1. Vissa undernät.

Adressintervall

Fulla formen

Kort form

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


Anta att du har ett nätverk med adresser från 192.168.0.1 till 192.168.0.254, lägg sedan till en ny ACL (se tabell N1):

Acl LocalNet src 192.168.0.0/24

Anta att du har en Squid-proxyserver placerad på 192.168.0.200 på port 3128, skriv sedan i konfigurationsfilen:

Http_port 192.168.0.200:3128

Vår nästa åtgärd kommer att vara att förbjuda användningen av vår proxyserver, förutom av användare av vårt lokala nätverk:

Http_access tillåter LocalNet
http_access neka alla

I det här fallet är ordet tillåt en tillåtelse, och ordet neka är ett förbud, det vill säga vi tillåter åtkomst till Squid-proxyservern från adresserna till vårt lokala nätverk och nekar åtkomst till alla andra.

Var försiktig när du anger http_access eftersom Squid använder dem i den ordning du anger.

Utforska ACL:er (Access Control Lists)

Squid proxy-åtkomstkontrollsystemet är mycket flexibelt och omfattande. Den består av element med värden och åtkomstlistor som anger tillåt eller neka.

Acl-formatet är som följer:

Acl namn objekt lista

Åtkomstlistas format:

Http_access som anger acl_name

Vi kommer att titta på några av de element som Squid-proxyservern låter dig använda, med exempel såklart:

* acl namn src lista

Med hjälp av detta element (src) anger vi källans IP-adress, det vill säga klienten från vilken begäran kom till vår proxyserver.

I följande exempel kommer vi att tillåta Vasya Pupkin (Pupkin) och programmeringsavdelningen (Progs) att komma åt vår proxyserver och neka alla andra:

Acl Progs src 192.168.0.1-192.168.0.9
acl Pupkin src 192.168.0.10
http_access tillåter Progs
http_access tillåter Pupkin
http_access neka alla

* acl namn dst lista

Detta element (dst) anger destinations-IP-adressen, det vill säga IP-adressen för servern som proxyserverklienten vill komma åt.

I följande exempel kommer vi att neka Vasya åtkomst till undernätet 194.67.0.0/16 (det innehåller till exempel samma aport.ru):

Acl Net194 dst 194.67.0.0/16
http_access neka Pupkin Net194

* acl namn dstdomain lista

Med hjälp av detta element (dstdomain) anger vi den domän som proxyserverklienten vill komma åt.

I följande exempel kommer vi att neka Vasya åtkomst till sajterna nnm.ru och kpnemo.ru warez:

Acl SitesWarez dstdomain .nnm.ru .kpnemo.ru
http_access neka Pupkin SitesWarez

Om du behöver ange källdomänen, använd sedan srcdomain.

* acl namn [-i] srcdom_regex lista
* acl namn [-i] dstdom_regex lista

Dessa element skiljer sig från srcdomain och dstdomain endast genom att de använder reguljära uttryck, som vi inte kommer att överväga i den här artikeln, men vi kommer fortfarande att ge ett exempel:

Acl SitesRegexSex dstdom_regex sex
Acl SitesRegexComNet dstdom_regex .com $ .net $
http_access neka Pupkin SitesRegexSex
http_access neka Pupkin SitesRegexComNet

I det här exemplet har vi nekat Vasily Pupkin åtkomst till alla domäner som innehåller ordet sex och till alla domäner i.com och.net-zonerna.

Switchen -i är utformad för att ignorera skiftlägen för tecken i reguljära uttryck.

* acl namn [-i] url_regex lista

Med detta element (url_regex) anger vi regexmönstret för URL:en.

Ett exempel på att specificera filer med avi-tillägget som börjar med ordet sex:

Acl NoAviFromSex url_regex -i sex. *. Avi $

Om du bara vill ange ett mönster för URL-sökvägen, det vill säga exkludera protokollet och värdnamnet (domännamn), använd sedan urlpath_regex.

Ett exempel för att specificera musikfiler:

* acl acl_name portlista

Ange destinationsportnumret, det vill säga porten som klienten på vår proxyserver vill ansluta till.

Som ett exempel kommer vi att förbjuda alla från att använda Mirc-programmet via vår proxyserver:

Acl Mirc-port 6667-6669 7770-7776
http_access neka alla Mirc

* acl acl_name protolista

Specificering av överföringsprotokoll.

Som ett exempel, låt oss förbjuda ovannämnda Vasya från att använda FTP-protokollet via vår proxyserver:

Acl ftpproto proto ftp
http_access neka Pupkin ftpproto

* acl acl_name metodlista

Ange metoden för http-begäran av klienten (GET, POST).

Låt oss ta en situation när Vasya Pupkin borde förbjudas att se sin post på mail.ru-webbplatsen, men samtidigt borde han få gå runt på webbplatsen utan förbud, det vill säga att neka Vasya möjligheten att komma in i din brevlåda genom inloggningsformuläret på sajten:

Acl SiteMailRu dstdomain .mail.ru
acl metodpost metod POST
http_access neka Pupkin metodpost SiteMailRu

Användarbegränsningar

Ganska ofta i vårt land uppstår en situation att det inte finns tillräckligt med åtkomstkanal till det globala internet för alla användare och det finns en önskan att ge alla maximalt, men samtidigt att inte låta kanalen "böja sig" på grund av de som gillar att ladda ner filer.

Squids proxyverktyg låter dig göra detta på flera sätt:

    det första sättet är att optimera objektcachelagring;

    den andra är tidsgränsen för vissa användare, vilket inte är helt korrekt;

    det tredje sättet är att begränsa hastigheten för vissa typer av filer, användare och allt som vi definierar genom Acl.

Tidsbegränsningar

Du kan begränsa användarna efter tid enligt följande:

Acl namn tid dagar hh: mm-hh: mm

Var dag: M - Måndag, T - Tisdag, V - Onsdag, H - Torsdag, F - Fredag, A - Lördag, S - Söndag.

I det här fallet måste hh: mm vara mindre än HH: MM, det vill säga du kan ange från 00: 00-23: 59, men du kan inte ange 20: 00-09: 00.

Låt oss förbjuda alla samma Vasya att ha tillgång till Internet från klockan 10 till 15 varje dag:

Acl TimePupkin tid 10:00-15:00
http_access neka Pupkin TimePupkin

Om du vill tillåta Vasya att använda Mirc-programmet från 13.00 till 14.00, skriv då:

Acl TimePupkin tid 13:00-14:00
http_access tillåter Pupkin TimePupkin Mirc
http_access neka Pupkin Mirc

Men vad händer om du behöver förbjuda eller tillåta vissa dagar i veckan? Squid låter dig också göra detta, till exempel från 13:00 till 14:00 på måndag och söndag:

Acl TimePupkin tid MS 13:00-14:00

Som du kan se är det inget komplicerat med det.

Hastighetsgränser

Squid proxyserver hastighetskontroll utförs med hjälp av pooler. En pool är ett slags fat med öl, i vilken öl ständigt hälls upp till brädden och kunderna häller upp det i sina glas eller andra behållare för ytterligare intern konsumtion efter behov genom sina personliga kranar.

Pooler regleras med tre parametrar: delay_class, delay_parameters, delay_access. Antalet pooler anges med parametern delay_pools.

Pooler kan vara av tre klasser:

    Hela ölflödet är begränsat till en kran (för hela nätverket).

    Hela ölflödet är begränsat till en kran, men kranen är uppdelad i kranar (per IP).

    Hela ölflödet är begränsat till en kran, men kranen är uppdelad i kranar (per subnät), som också är uppdelade i minikranar (per IP).

Format:

Delay_pools antal_declared_pools
delay_access pool_number action acl_name

Åtgärden kan vara tillåt eller neka. Samtidigt agerar denna pool på dem som det är tillåtet för och påverkar inte dem för vilka det är förbjudet. Om tillåt allt anges, och sedan neka Pupkin, kommer denna klass fortfarande att påverka Pupkin, eftersom Pupkins IP-adress som deklareras i acl Pupkin ingår i acl all-adresslistan. Vänligen ha detta i åtanke.

Delay_class pool_number pool_class
delay_parameters pool_number parametrar

Alternativen varierar beroende på poolklass:

för första klass:

Delay_parameters 1 byte_per_all_network

för andra klassen:

Delay_parameters 1 per_All_net per_client

för tredje klassen:

Delay_parameters 1 per_all_net per_subnet per_client

Till exempel har vi en kanal på 128 Kbit (i genomsnitt 15 Kbyte per sekund) och vi önskar att Vasya (Pupkin) bara ger 4 Kbyte/sek (ett litet glas för allt om allt), till programmeringsavdelningen (Prog) för att ge endast 10 Kb/sek och för varje endast 5 Kb/sek (endast två glas), begränsa alla andra till 2 KB/sek för varje och 10 Kb/sek för alla, och begränsa mp3-filer (media) till 3 KB/sek för allt (för hela fatet öl är en så liten kran). Då skriver vi:

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
# första gränsen mp3
delay_class 1 1
delay_parameters 1 3000/3000
delay_access 1 tillåt media
delay_access 1 neka alla
# begränsa stackars Vasya
delay_class 2 1
delay_parameters 2 4000/4000
delay_access 2 tillåter Pupkin
delay_access 2 neka alla
# begränsa programmeringsavdelningen
delay_class 3 2
delay_parameters 3 10000/10000 5000/5000
delay_access 3 tillåt Prog
delay_access 3 neka alla
# och nu begränsar vi resten (andra klass av poolen)
delay_class 4 2
delay_parameters 4 10000/10000 2000/2000
delay_access 4 neka media
delay_access 4 neka Pupkin
delay_access 4 neka Prog
delay_access 4 tillåt LocalNet
delay_access 4 neka alla

Frågan dyker ofta upp, vad är det bästa sättet att använda en så liten kanal så att den automatiskt delas upp på alla de som just nu laddar ner något? Det finns ett entydigt svar på denna fråga - det är inte möjligt att göra detta med Squid-proxyservern, men ändå kan du göra något:

Delay_class 1 2
delay_parameters 1 -1 / -1 5000/15000
delay_access 1 tillåt LocalNet
delay_access 1 neka alla

Således tilldelar vi den maximala kanalen för hela vårt nätverk och på undernäten (-1 betyder obegränsat), och varje användare får en maximal hastighet på 5 Kb/s efter att han laddat ner de första 15 KB av ett dokument med maximal hastighet.

Således kommer klienten inte att äta upp hela kanalen, utan snarare snabbt ta emot de första 15 KB.

Optimera Squid Object Caching

Det finns många typer av filer som inte uppdateras tillräckligt ofta för att proxyn ska kunna svara på rubriker från webbservrar att objektet inte är cachebart eller överraskande nog just har ändrats. Detta är en ganska vanlig situation.

För att lösa sådana situationer är parametern refresh_pattern i Squid-proxyserverns inställningsfil avsedd, men helt med formler etc. vi kommer inte att överväga det.

Refresh_pattern [-i] sträng MINV procent MAXW parametrar

Denna parameter används för att bestämma åldern på objektet (läs filen) i cachen, om det ska uppdateras eller inte.

MINV (minimumtid) - tiden i minuter när ett objekt i cachen anses vara färskt.

MAXV (maximal time) - maximal tid i minuter, när objektet anses vara färskt.

Parametrar är en eller flera av följande parametrar:

    override-expire - Ignorera information om objektets uppdateringsdatum och använd MINV.

    override-lastmod - ignorera information om filändringsdatum använd MINV.

    reload-into-ims - istället för att begära en klientbegäran "cache inte dokument" (ingen cache) skicka en begäran "Om ändrad från" (If-Modified-Since)

    ignore-reload - ignorera klientförfrågningar "cache inte dokument" (ingen cache) eller "ladda om dokument" (ladda om).


Och så kommer vi till det viktigaste. Tja, vilka är de minst ofta uppdaterade filtyperna? Som regel är det olika musikfiler och bilder.

Låt oss ställa in objektens fräschör, för detta, för bilder och musikfiler, kommer vi att ange, låt oss säga till exempel, så mycket som 30 dagar (43 200 minuter):

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

Inställningarna som visas ovan är bara ett exempel, för att förstå essensen.

Nu kan du kontrollera effektiviteten på din proxyserver, den kommer säkert att öka.

Slutsats

Squid Proxy är inte bara en vanlig proxy, det finns andra. Men som statistiken visar använder de flesta just denna proxyserver, men samtidigt har många nybörjare fortfarande problem med konfigurationen.

Idag ska vi prata om proxyservrar.

En proxyserver är en sådan sak som ger åtkomst för flera datorer från ett nätverk till ett annat nätverk (men inte att förväxla med routrar - det är helt olika saker, en proxyserver fungerar på applikationsnivå). Den vanligaste uppgiften för en proxyserver är att tillhandahålla Internetåtkomst för datorer som inte har det via en dator som har tillgång till det globala nätverket. Låt oss överväga detta problem när vi använder en Windows-dator som en gateway till Internet.

För att lösa detta problem kan du använda proprietära lösningar med ett visuellt gränssnitt - till exempel UserGate. Men jag kunde inte få det att fungera korrekt på en PC med Windows 7 och det är betalt :) Därför tycker jag att den bästa lösningen är Bläckfisk fick vi från * nix. Du kan ladda ner den här skapelsen på: Squid 2.7 (den senaste versionen när detta skrivs)

Ladda ner och packa upp, helst till roten på disken. Försök inte köra något därifrån - det här programmet har inget GUI - och låt dig inte skrämmas av det :)
Öppna sedan konsolen - Win + R / сmd / gå till mappen med den installerade bläckfisken (vidare kommer jag att skriva för installationssökvägen c: \ squid)

c: \
cd c: \ squid \ sbin

Nu måste du installera bläckfisken som en Windows-tjänst med kommandot:

squid -i -f c: /squid/etc/squid.conf -n Squid27

Där Squid27 är namnet på tjänsten, som i princip kan vara vilken som helst giltig.

Nu måste du redigera inställningsfilen squid.conf, som finns i mappen c: / squid / etc /, jag råder dig att säkerhetskopiera originalfilen. Därefter tar vi bort all text från den här filen och skriver följande:

http_port 3128
acl localnet src 192.168.3.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
http_access tillåt lokalnät
http_access tillåt lokalvärd
http_access neka alla

cache_log ingen
cache_store_log ingen

var

  • http_port 3128 - portnumret på servern som bläckfisken arbetar genom. Det vill säga i klientinställningarna kommer vi att ange serveradressen och denna port;
  • acl localnet src 192.168.0.0/255.255.0.0- den här raden indikerar intervallet av ip-adresser för vilka det är möjligt att ansluta till vår proxy. Masken kan anges som / 8, / 16, / 24 (för 255.0.0.0, 255.255.0.0, 255.255.255.0, respektive), och localnet är namnet. Faktum är att med denna rad deklarerar vi en variabel som vi kommer att arbeta vidare med. nästa rad deklarerar på samma sätt variabeln all, där alla befintliga ip indikeras;
  • http_access tillåt lokalnät - med den här raden tillåter vi åtkomst från den ip som anges i localnet-variabeln till vår proxy;
  • http_access neka alla - vi förbjuder alla andra att komma åt proxyn. Dessa behörigheter fungerar från topp till botten, så den här raden måste listas sist! Annars kommer ingen att nå proxyn :)
  • cache_log ingen - krävs, som nästa rad, så att loggarna inte växer till gigabyte)
Du kan också lägga till följande parametrar:
  • cache_mem 32 MB - bestämmer storleken på bläckfiskens extra cache i RAM;
  • cache_dir ufs c: / squid / var / cache 100 16 256- bestämmer sökvägen till cachemappen, dess storlek i MB (100) och antalet undermappar (varför det senare - jag förstår fortfarande inte :))
Nu måste du ta bort ".default" i namnet på filen mime.conf i samma mapp, eller bara skapa en tom textfil med det namnet. Detta behövs för att skapa cachen. I konsolen skriver vi kommandot (finns i sbin-mappen):

squid -z -f c: \ squid \ etc \ squid.conf

Så i princip är vi redo att lansera vår proxy. Vi skriver i kommandoraden (eller så kan du gå till Services och köra med musen :)

nettostart Squid27

Sluta:

netto stoppa bläckfisk27

Omkonfigurering:

squid -n Squid27 -f med: /squid/etc/squid.conf -k reconfigure

Du kan fortfarande göra många saker i den här proxyn, till exempel ställa in begränsningar för olika användare i tid, i hastighet, förbjuda åtkomst till vissa webbplatser, etc., etc. Men den här artikeln innehåller inte en beskrivning av allt detta - t.ex. material är lätt att hitta på Internet.

Vi uppdaterar systemet:

Lägg till en regel i brandväggen:

brandvägg-cmd --permanent --add-port = 3128 / tcp

* var 3128 - porten som vår proxyserver kommer att konfigureras på.

och starta om brandväggen:

brandvägg-cmd -- ladda om

Installera och konfigurera Squid

Installera proxyservern med följande kommando:

yum installera bläckfisk

Och öppna konfigurationsfilen för redigering:

vi /etc/squid/squid.conf

Om nätverket av klientdatorer skiljer sig från standarden (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), måste du lägga till det i acl, till exempel:

acl localnet src 217.66.157.0/24

eller via en fil:

acl localnet src "/ etc / squid / acl_localnet"

* offerter krävs
** efter att du behöver skapa en fil / etc / squid / acl_localnet och lista de tillåtna IP-adresserna på varje rad.

För att tillåta all trafik, lägg till följande rad:

http_access tillåter alla

* det är viktigt att det är högre än det oöverkomliga - http_access neka alla

Skapa en katalog för cachen:

cache_dir ufs / var / spool / squid 4096 32 256

* var ufs- filsystem (ufs för SQUID är det mest lämpliga); / var / spole / bläckfisk- cachelagringskatalog; 4096 - mängden utrymme i megabyte som kommer att tilldelas för cachen; 32 - Antalet kataloger på första nivån som kommer att skapas för cachetilldelningen; 256 - antalet kataloger på andra nivån som kommer att skapas för cachetilldelningen.

Nu skapar vi en mappstruktur för cachen med följande kommando:

Och du kan redan börja med bläckfisk:

systemctl starta bläckfisk

Glöm inte att aktivera dess autostart:

systemctl aktivera bläckfisk

Undersökning

Vi går in i webbläsarinställningarna och konfigurerar användningen av en proxyserver. Till exempel, i Mozilla Firefox bör inställningarna ställas in enligt följande:

* var 192.168.163.166 - IP-adressen till min proxyserver.

Nu öppnar vi webbplatsen 2ip.ru. Efter att ha laddat den kommer vi att se den externa IP-adressen - den måste motsvara nätverket från vilket den konfigurerade SQUID körs.

Transparent proxy

Transparent proxy låter dig använda en proxyserver automatiskt utan att behöva konfigurera din dators webbläsare. Användare kanske inte ens vet att trafiken går genom bläckfisk.

vi /etc/squid/squid.conf

Vi hittar raden:

Och vi tar det till följande form:

http_port 3128 transparent

Och starta om bläckfisk:

systemctl starta om squid

Squid + HTTPS

Jag behövde inte speciellt konfigurera https för bläckfisk i CentOS 7 - allt fungerade som standard.

Inloggning och lösenordsauktorisering

Öppna konfigurationsfilen:

vi /etc/squid/squid.conf

Klistra in följande:

auth_param grundläggande program / usr / lib64 / squid / basic_ncsa_auth / etc / squid / auth_users
auth_param grundläggande barn 25
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 3 timmar
acl auth_users proxy_auth KRÄVS

* var / usr / lib64 / squid / basic_ncsa_auth- platsen för ncsa_auth (beroende på systemet kan det finnas i en annan katalog); / etc / squid / auth_users- fil med inloggningar och lösenord; barn 25 tillåter 25 samtidiga anslutningar; SQUID PROXY- en godtycklig hälsningsfras; credentialsttl 3 timmar kommer att hålla sessionen i 3 timmar, varefter du måste ange ditt användarnamn och lösenord igen.

http_access neka! Safe_ports

Lägg till:

http_access tillåter auth_users

Skapa en fil med användare och skapa det första paret användarnamn och lösenord:

htpasswd -c / etc / squid / auth_users användare1

* om systemet returnerar felet " bash: htpasswd: kommandot hittades inte»Installera htpasswd med kommandot yum installera httpd-tools

Skapa en andra användare:

htpasswd / etc / squid / auth_users användare2

Och starta om bläckfisk:

systemctl starta om squid

Utgående nätverksgränssnitt

Vår server kan ha flera externa IP-adresser. Som standard kommer alla utgående förfrågningar att fungera via gränssnittet med standardgatewayen. För att kunna arbeta med bläckfisk genom olika gränssnitt lägger vi till i konfigurationen.

Squid är en populär proxyserver som främst används för att cachelagra ofta efterfrågat webbinnehåll för att förbättra sidans svarstider, samt filtrera nätverkstrafik. Den stöder många olika protokoll som HTTP, FTP, TLS, SSL, Internet Gopher och HTTPS. Det kan också vara mycket användbart på långsamma internetanslutningar. Squid utvecklades ursprungligen som en Unix-demon, men flera portar släpptes för Windows. Squid är licensierad under GNU General Public License.

Denna handledning visar dig hur du installerar Squid på Ubuntu 16.04. Följ bara dessa instruktioner i tur och ordning så kommer installationen av bläckfisk ubuntu inte att orsaka några problem. Squid är ett ganska multifunktionellt program och vi kommer inte att kunna täcka alla dess funktioner i den här artikeln, men vi kommer att försöka täcka de viktigaste så att du helt kan anpassa och använda den. Låt oss börja med installationen.

Det finns flera sätt att installera Squid på Ubuntu, ett av de vanligaste är från de officiella arkiven med hjälp av apt-verktyget.

Öppna först en terminal med kortkommandot Ctrl + Alt + T och uppdatera paketindexet:

Efter att ha uppdaterat paketlistan kan du fortsätta med att installera proxyservern, bara kör kommandot:

sudo apt installera bläckfisk

Då kommer verktyget att fråga om du behöver fortsätta med installationen, skriv in Y och vänta tills nedladdningen och installationen är klar:

Sedan kan du gå vidare till inställningen.

Konfigurera Squid

Serverkonfigurationsfilen finns i katalogen / etc / squid. Beroende på versionen av Squid kan namnet på mappen och själva filen skilja sig, till exempel /etc/squid3/squid.conf eller /etc/squid/squid.conf. Alla inställningar finns i den här filen. Låt oss ta en titt på det.

vim /etc/squid3/squid.conf

När filen öppnas ser du något liknande:

Filen innehåller flera konfigurationsalternativ, samt en hel del dokumentation om deras användning. Vi kommer inte att röra många av dem, men vi kommer att överväga de viktigaste.

Åtkomstkontroll

Först måste vi konfigurera reglerna för klientåtkomst till vår proxyserver. Squid designades för att vara ett organisationsprogram och även om du använder det hemma måste squid 3-installationen också göras.

Acl-listan används för detta. det här är en vanlig lista med objekt, nu betyder det ingenting alls. Dessa kan vara ip-adresser, portar etc. Sedan kommer vi att berätta för programmet vad det ska göra med den här listan, tillåta eller neka åtkomst. Syntaxen för att skapa en acl-lista är följande:

acl list_name list_type list_item

Det kan finnas flera sådana strängar med samma namn och typ, och en lista erhålls från dem. Namnet på listan kan vara godtyckligt, vi kommer att använda det senare. Listtypen är mycket mer intressant. Kan vara en av:

  • src- IP-adress där anslutningen kommer från, klientadress;
  • dst- IP-adress för anslutningsdestinationen, adressen till servern som klienten vill få åtkomst till;
  • dstdomän- anslutningsdestinationsdomän;
  • srcdomain- klientens domän;
  • arp- MAC-adress för klientens nätverkskort;
  • tid- tidpunkten när anslutningen görs;
  • hamn- porten som klienten försöker komma åt;
  • proto- protokollet som används för att upprätta anslutningen;
  • metod- dataöverföringsmetod, till exempel GET - HTTP-dataöverföring, POST - formulärdataöverföring i HTTP, CONNECT - serveranslutningsbegäran;
  • http_status- serversvar;
  • webbläsare- klientwebbläsare;
  • url_regex- URL-adress som de försöker komma åt.

Det här är inte alla typer av listor, men tillräckligt för en början, och mer detaljerad information finns i samma konfigurationsfil.

Lägg till en lista för att komma åt servern från det lokala nätverket:

acl localnet src 192.168.0.0/16

Låt oss skapa en Safe_ports-lista för att tillåta trafik till portarna för huvudnätverkstjänsterna, såväl som oregistrerade portar över 1024:

acl Safe_ports port 80 # http
acl Safe_ports port 21 # 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 # oregistrerade portar
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filskapare
acl Safe_ports port 777 # multiling http

Låt oss skapa ytterligare två listor - SSL_ports and connect, för att tillåta användningen av anslutningsmetoden endast för ssl-anslutningar. Detta kommer att hindra kunden från att använda andra proxyservrar utöver våra:

acl SSL_ports port 443

acl anslutningsmetod CONNECT

Som jag sa, dessa listor i sig betyder ingenting och påverkar inte driften av servern på något sätt. För att tillämpa listan måste du använda http_access-direktivet. Dess syntax är:

http_access action list_name

Åtgärden kan vara tillåt eller neka. neka nu åtkomst till alla portar förutom de som anges i Safe_ports:

http_access neka Connect! SSL_ports

Låt oss nu tillåta åtkomst från den här datorn (localhos acl-listan är fördefinierad):

http_access tillåt lokalvärd

Låt oss tillåta åtkomst från det lokala nätverket:

http_access tillåt lokalnät

Och vi kommer att förbjuda allt annat:

http_access neka alla

Andra inställningar

Åtkomstkontroll är en av de viktigaste komponenterna, men installationen av bläckfisk ubuntu är inte komplett här. Det finns många fler intressanta parametrar, vi kommer bara att täcka några av dem:

http_port- ställer in IP-adressen och porten som programmet ska köras på. Du kan endast köra en proxy på den här datorn med följande konstruktion:

http_port localhost: 3218

Eller på det lokala nätverket:

https_port- ställer in ip-adressen och porten på vilken https-anslutningar kommer att accepteras. Vi kommer inte att täcka arbetet med https i den här artikeln.

cache_mem- mängden minne som tilldelas för objektcachelagring.

cache_dir - låter dig ställa in mappen för lagring av cachen. Som standard lagras hela cachen i RAM. Syntax:

cache_dir filsystem mapp size_v_mb L1 L2

L1 och L2 - antalet undermappar på första och andra nivån. Filsystemet bestämmer hur data skrivs till disken. Till exempel:

cache_dir aufs / var / spool / squid 100 16 256

coredump_dir- katalog där minnesdumpen kommer att sparas i händelse av ett fel.

refresh_patternär en mycket intressant parameter som låter dig förlänga livslängden för objekt i cachen. Syntaxen är:

refresh_pattern -i vanligt uttryck minimum_tid procent max_tid alternativ

  • vanligt uttryck- anger de objekt som parametern ska tillämpas på;
  • minimum_tid- tid i minuter medan objektet anses vara färskt;
  • max_tid- maximal tid i minuter medan objektet är färskt;

parametrar kan vara följande:

  • åsidosätta-förfalla- ignorera utgångshuvudet;
  • override-lastmod- ignorera det senaste ändringsdatumet för filen;
  • ladda om-i-ims- istället för att inte cache, skicka en If-Modified-Since-förfrågan;
  • ignorera-ladda om- ignorera klientförfrågningar cache inte.

Till exempel:

refresh_pattern -i \ .gif $ 43200 100% 43200 override-lastmod override-expire

Du kan behöva andra inställningar efter att squid ubuntu-installationen är klar. Men de ligger utanför ramen för denna artikel. Spara nu dina ändringar, stäng filen och ladda om Squid:

sudo service squid3 omstart

Om det här kommandot returnerar ett fel, försök med ett annat:

sudo service squid omstart

Det återstår att kontrollera driften av vår proxyserver. Detta kan göras med vilken webbläsare som helst. Öppna dina webbläsarinställningar och konfigurera proxyn. Jag ska visa dig hur du gör detta i Mozilla Firefox. Om du har en annan webbläsare, till exempel Google Chrome, tror jag att du kan ta reda på hur proxyn är konfigurerad där.

Installation på klientsidan

Öppna din webbläsare, gå till Anpassning --> Dessutom --> Nätverk... Tryck sedan på inställningar I kapitel Förbindelse och välj konfigurera proxy manuellt:

I fält Http proxy ange IP-adressen för maskinen som Squid-servern installerades på, och i portfältet - portnumret 3128. Denna port används som standard i Squid, men du kan ändra portnumret med /etc/squid/squid. konf