Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Kreiranje servera na Linux squid. Instaliranje Squid - Hosting Encyclopedia

Kreiranje servera na Linux squid. Instaliranje Squid - Hosting Encyclopedia

Postavljanje Squid proxy servera

Vrlo često nam je potreban proxy. Na primjer, imate sivu IP adresu ili ste zadovoljan korisnik satelitski internet. Preuzimanje nečega sa sajtova kao što je Rapidshare je nerealno. Ovdje će nam pomoći lignje.

Za proxy postavke potreban server KVM virtuelizacija. Na drugim virtuelizacijama, hostovanje proxy servera je zabranjeno.

Proširenija verzija mog članka može se naći na web stranici Kursk LUG, gdje sam također razmatrao mogućnost korištenja squida od strane kućnih korisnika, kao i integracije Globax ili Toonel sistema kompresije prometa u kaskadi u squid.

Instaliranje lignje

cd /usr/ports/www/squid && make BATCH=yes install

Postavljanje lignje

Malo o acl-u i pravilima

Srce konfiguracije lignje je acl(lista kontrole pristupa) i pravila.
Prvo morate razumjeti principe kako acl radi. ACL-ovi imaju sljedeći format:

Acl<имя> <тип> <содержание>

Na primjer, ovaj acl opisuje dvije korisničke mašine sa IP adresama (src tip) 192.168.0.1 i 192.168.0.2

Acl comps src 192.168.0.1/32 192.168.0.2/32

Pogledajmo sada pravila.
Pravila imaju sljedeći format:

<тип_правила> <действие>

U ovoj fazi, morate razumjeti da pravila jedan tipovi se prethodno provjeravaju prvo pravilo trčanja. Akcija ovog pravila će se izvršiti i provjera daljnjih pravila ovog tipa će biti zaustavljena. primjer:

Acl all src 0/0 acl vasya src 192.168.1.12/32 http_access dozvoli vasya http_access zabrani sve

Unesite pravila http_access Ovo su pravila koja dozvoljavaju ili odbijaju pristup putem http. Razmotrite radnju gornjeg odlomka. acl sve nas upućuje na sve IP adrese. I acl vasya ukazuje na jedan ip 192.168.1.12
Provjera će ići ovako:
1) http_access dozvoli vasya Ako korisnik sa ove IP adrese koristi proxy, tada ćemo mu dozvoliti pristup. Provjera će biti zaustavljena, četvrti red neće biti ni provjeren.
2) ako proxy koristi korisnik koji nije sa ovog IP-a, tada se pravilo na liniji 3 neće izvršiti i prelazimo na pravilo na liniji 4. Pošto je bilo koja IP adresa pogodna za acl all, ovo pravilo će biti izvršeno i mi ćemo blokirati pristup. dalja pravila neće biti provjerena. Stoga smo zabranili korištenje proksija svima osim Vasyi.

Pogledajmo uobičajenu grešku na osnovu prethodnog primjera:

Acl all src 0/0 acl vasya src 192.168.1.12/32 http_access zabrani sve http_access dozvoli vasya

U ovom slučaju, čak ni Vasya neće moći koristiti proxy. Pošto smo pravilom na liniji 3 blokirali pristup svima, ono je izvršeno, a pravilo na liniji 4 neće se ni provjeravati. Obratite posebnu pažnju na redoslijed pravila istog tipa.

Kreirajte konfiguraciju squid

Počnimo sa pisanjem konfiguracije. Pogledat ću svoju konfiguraciju kao primjer.

Prvo, u folderu /etc/squid, kreirajte folder acls. U njemu sam napravio 3 fajla: banere, nobanners, 1banners
Datoteka banera pohranjuje regularni izraz reklama i banera koji će biti izrezani. nobanners pohranjuje izuzetke, odnosno one stranice i slike koje će biti učitane čak i ako u banerima postoji pravilo pod koje spadaju. Datoteka 1banners pohranjuje regularne izraze koji opisuju one banere koji će biti izrezani prvi. Navest ću sadržaj mojih datoteka za filtriranje oglasa na kraju članka.

Sa root pravima, kreirajte datoteku /etc/squid/squid.conf i počnite da joj dodajete redove:

Naznačimo port na kojem će proxy raditi: (PAŽNJA!! Nikada nemojte postavljati standardne portove kao što su 8080 80 ili 3128 ako ne želite da se vaš proxy lako otkrije)

HTTP_port 1234

Naznačimo naziv čvora na kojem je instaliran squid. Svoje ime možete saznati radeći uname -n

Vidljivo_ime_hosta dimon4eg

Onemogući icp

Icp_port 0

Koristeći acl sa regularnim izrazima, ukazujemo na stranice koje neće biti keširane

Acl donocache urlpath_regex cgi-bin korisnik submit no_cache deny donocache

Kreirajte folder /var/spool/squid i chmod 777 /var/spool/squid
Hajde da opišemo volumen "brze" keš memorije i keš memorije na tvrdom disku. Preporučljivo je podesiti brzi volumen keš memorije na ne više od 32 metra kako biste uštedjeli RAM.

Cache_mem 32 MB cache_dir ufs /var/spool/squid 1000 16 256

Slično, kreiraćemo /var/log/squid foldere i naznačiti gde da skladištimo dnevnike

Cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log

Obradi mime i pid tablicu

Mime_table /etc/squid/mime.conf pid_filename /var/run/squid.pid

FTP postavke putem proxyja

Ftp_user anonymous@ ftp_list_width 32 ftp_passive na ftp_sanitycheck on

Service acl

Acl all src 0/0 acl SMTP port 25

Lista IP adresa sa kojih su dozvoljeni proksiji. Obavezno navedite 127.0.0.1 i adresu samog servera u lokalnom području. Zatim označavamo sve korisnike koji imaju pristup. (PAŽNJA, obavezno onemogućite pristup za sve.)

Acl doallow src 192.128.0.2/32 127.0.0.1/32

Postavimo portove koji su dozvoljeni

Acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 5190 5552 acl Safe_ports port 777

Lokacija fajlova sa pravilima za izrezivanje reklama. Prekidač -i znači da pravila ne razlikuju velika i mala slova

Acl banneri url_regex -i "/etc/squid/acls/banners" acl 1banners url_regex -i "/etc/squid/acls/1banners" acl nobanners url_regex -i "/etc/squid/acls/nobanners"

Hajde da sada opišemo pravila

Http_access deny 1banners http_access deny banners !nobanners http_access deny !Safe_ports http_access deny SMTP http_access dozvoli doallow http_access zabrani sve

Zabrani icp pristup

Icp_access zabrani sve

Prijave

Cijeli tekst mog squid.conf

http_port 1234 visible_hostname dimon4eg icp_port 0 acl donocache urlpath_regex cgi-bin korisnik submit no_cache deny donocache
cache_mem 32 MB cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log
mime_table /etc/squid/mime.conf pid_filename /var/run/squid.pid
ftp_user anonymous@ ftp_list_width 32 ftp_passive na ftp_sanity provjeri na
acl server src 192.168.0.2/32
acl all src 0/0 acl manager proto cache_object acl localhost src 127.0.0.1/32 acl SSL_ports port 443 563 acl SMTP port 25
acl doallow src 192.128.0.2/32 127.0.0.1/32
acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 777 acl CONNECT metoda CONNECT
acl banneri url_regex -i "/etc/squid/acls/banners" acl 1banners url_regex -i "/etc/squid/acls/1banners" acl nobanners url_regex -i "/etc/squid/acls/nobanners"
http_access deny 1banners http_access deny banners !nobanners http_access deny !Safe_ports http_access deny SMTP http_access dozvoli doallow http_access zabrani sve
icp_access zabrani sve
nikad_direktno dozvoli sve

Moja pravila za rezanje reklama

/etc/squid/acls/banners

.?(count(\d|er|\.rbc)|hitbox|advertising|linkexchange|click\d|\dcount|adriver) .*(/ad(s|v)|\.adnet\.ru|banview| banner|adriver|\dcount|bnr|bans\.|/sale|/pagead) .*exaccess\.ru/asp/. .*(spylog|warlog\.info|ipz.ru/cgi-bin/cm\.cgi\?|c\.mystat-in\.net|c\.bigmir\.net|online\.mirabilis|top\ .winrate\.net|vipelita\.ru|cnews\.ru.*/informres).* .*(brs\.trilan\.ru/images|google-analytics\.com|/informer|bantex\.ru| 100-100\.ru).* .?(hotlog|tours|shareactor|&rand=|livejournal\.com/userpic).* ^(www\.)?ad\d?\..* .?images\. rambler\.ru/upl.* .*s1\.adward\.ru/\?r.* .*(bhanvad)\.com.* .*(dosugonline|blogonline|all-web|otvali|loveplanet|ziza| body\.imho|meganame)\.ru.* .?(clx|gold-music)\.ru/.* .*(nnm.ru|rambler|realcoding|kpnemo\.ru/advimg).*\.swf .*/ad?.* .?re(k|c)lama.* .^(www\.)?(1001tur|jmp\.net|kmindex.ru/.*/\?|kreis\.trl\. ru|rot\.goup\.ru/\?|au-au\.ru).* .?r\.mail\.ru/b.*\.swf .?bs\.yandex\.ru/show. * .?br\.gcl\.ru/cgi-bin/br.* .?m1.nedstatbasic.net/basic.js .*\.doubleclick\.net .*an.yandex.ru/* .*/adserver /*

Danas ćemo govoriti o proxy serverima.

Proxy server je stvar koja omogućava pristup nekoliko računara iz jedne mreže u drugu mrežu (ali ne treba se brkati sa ruterima - to su potpuno različite stvari, proxy server radi na nivou aplikacije). Najčešći zadatak proxy servera je da omogući pristup Internetu računarima koji ga nemaju preko jednog računara koji ima pristup globalnoj mreži. Razmotrimo ovaj zadatak u slučaju korištenja Windows računara kao pristupnika za Internet.

Da biste rešili ovaj problem, možete koristiti vlasnička rešenja sa vizuelnim interfejsom - na primer UserGate, ali nisam uspeo da ga nateram da ispravno radi na PC-u sa Windows 7, a plaća se :) Zato mislim da je najbolje rešenje Squid, koji smo naslijedili od *nixa. Ovu kreaciju možete preuzeti na: Squid 2.7 (najnovija verzija u vrijeme pisanja)

Preuzmite i raspakujte, po mogućnosti u korijenu diska. Ne pokušavajte ništa pokrenuti odatle - ovaj program nema GUI- i ne dozvolite da vas to uplaši :)
Zatim otvorite konzolu - Win+R / smd / idite u mapu s instaliranim squidom (dalje ću pisati za instalacijsku stazu c:\squid)

c:\
cd c:\squid\sbin

Sada morate instalirati squid kao Windows servis naredbom:

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

Gdje je Squid27 naziv servisa, koji u principu može biti bilo koji važeći naziv.

Sada trebate urediti datoteku postavki squid.conf koja se nalazi u folderu c:/squid/etc/. Savjetujem vam da napravite rezervnu kopiju originalne datoteke. Zatim izbrišite sav tekst iz ove datoteke i napišite sljedeće:

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 dozvoli lokalnoj mreži
http_access dozvoli lokalnom hostu
http_access zabrani sve

cache_log nema
cache_store_log nema

Gdje

  • http_port 3128 - broj porta na serveru preko kojeg radi SQUI, odnosno u postavkama klijenta ćemo naznačiti adresu servera i ovaj port;
  • acl localnet src 192.168.0.0/255.255.0.0- ova linija označava opseg IP adresa za koje je moguće spojiti se na naš proxy. Maska se može specificirati kao /8, /16, /24 (za 255.0.0.0, 255.255.0.0, 255.255.255.0, respektivno), a localnet je ime. U suštini, ovom linijom deklariramo varijablu s kojom ćemo dalje raditi. sljedeći red na sličan način deklarira varijablu all, gdje su naznačeni svi postojeći ips;
  • http_access dozvoli lokalnoj mreži - ovom linijom dozvoljavamo pristup sa IP-a specificiranog u localnet varijabli do našeg proxyja;
  • http_access zabrani sve - svima ostalima zabranjujemo pristup proxyju. Ove dozvole rade od vrha do dna, tako da se ovaj red mora unijeti posljednji! Inače niko neće doći do proxyja :)
  • cache_log nema - potrebno, like sljedeći red tako da zapisnici ne prerastu u gigabajte)
Također možete unijeti sljedeće parametre:
  • cache_mem 32 MB - određuje veličinu dodatne SQUID keš memorije u RAM-u;
  • cache_dir ufs c:/squid/var/cache 100 16 256- određuje putanju do cache foldera, njegovu veličinu u MB (100) i broj podmapa (zašto ovo drugo - još uvijek ne razumijem :))
Sada morate ukloniti “.default” iz naziva mime.conf fajla u istom folderu ili jednostavno kreirati prazan tekstualni fajl sa istim imenom. Ovo je neophodno za formiranje keša. U konzolu ukucavamo naredbu (dok je u sbin folderu):

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

Dakle, u principu smo spremni da pokrenemo naš proxy. Pišemo komandna linija(ili možete otići na Usluge i pokrenuti ga mišem :)

net start Squid27

zaustaviti:

net stop squid27

Rekonfiguracija:

lignja -n Squid27 -f c:/squid/etc/squid.conf -k ponovno konfigurirati

Također možete dodati puno stvari ovom proxyju, na primjer, postaviti vremensko i brzinsko ograničenje za različite korisnike, zabraniti pristup određenim stranicama, itd, itd. Ali nije svrha ovog članka da opiše sve ovo - npr. materijal je lako pronaći na internetu.

Materijali o izgradnji rutera na bazi Squid-a su neki od najpopularnijih na našoj web stranici. Ovo rešenje omogućava minimalni troškovi(prvenstveno na softverski dio) organizovati i pojednostaviti pristup Internetu u preduzeću. Ali opcije koje smo razmatrali bile su prvenstveno namijenjene da funkcioniraju kao dio radna grupa. Nedostatak integracije sa Aktivni direktorij naglo smanjio upotrebljivost takvog rutera u domenskim mrežama, pa smo odlučili ispraviti ovaj propust.

U pripremi ovog materijala Nismo se planirali posebno zadržavati na pripremi servera, namjeravajući za to koristiti već postojeći materijal: . Međutim, kada je broj pojašnjenja i razlika počeo da prelazi razumne granice, odlučili smo da ovom pitanju posvetimo poseban članak. Istovremeno, pretpostavljamo da je čitatelj upoznat s gornjim materijalom i stoga neće detaljno objašnjavati mnoge postavke koje koristimo i neće se zadržavati na manjim detaljima.

Karakteristike integracije sa Active Directory

Koja je svrha integracije Squid proxyja u Active Directory? Recimo odmah da ako je vaš glavni cilj jednostavno distribuirati Internet svima i bez ograničenja, dobro, možda zatvaranjem društvenim medijima, onda ne morate dalje čitati, konfiguracija koju smo već opisali će u potpunosti zadovoljiti vaše potrebe. Glavna prednost integracije rutera u Active Directory je upotreba jedne tačke autentifikacije i kontrole pristupa Internetu na osnovu naloga i sigurnosnih grupa koje već postoje u domenu.

To dovodi do nekih posebnosti. Dakle, transparentni način rada ne podržava autentifikaciju i morat ćete ga napustiti navođenjem proxy postavki direktno u postavkama pretraživača. Ovaj proces je lako automatizovati korišćenjem DHCP servera i WPAD protokola.

Kao DNS serveri, uključujući i na ruteru, mora biti samo naznačeno domen DNS, po defaultu, svaki kontroler domene je DNS server. Iz tog razloga ruter ne bi trebao imati ulogu DNS servera. Takođe, da bi se osigurala integracija sa AD, treba preneti i ulogu DHCP servera Windows Server, obično na jedan ili više kontrolera domena.

Sada dolazimo do čega je sve ovo počelo. Provjera identiteta domenskog računa vam omogućava da koristite jedna tačka unos ( SSO, jedinstvena prijava), kada korisnik jednom unese login i lozinku - prilikom prijave. To se postiže korištenjem protokola Kerberos, što je zadana metoda AD autentifikacije. Za razliku od autora drugih vodiča, ne vidimo smisao u postavljanju Basic autentifikacije, prvenstveno iz sigurnosnih razloga. Štaviše, Kerberos je podržan od strane svih modernih operativnih sistema.

Sljedeći korak je autorizacija na osnovu postojeće grupe sigurnost, to je posebno tačno kada se krećete iz ForefrontTMG ili ISA Server. Ovo vam omogućava da jednom konfigurišete Linux server, a zatim da izvršite dalju kontrolu pristupa na uobičajen način - preko Active Directory grupa, što vam omogućava da smanjite ulazni prag za administratore.

Pošto Active Directory ima složeniju strukturu i velika količina"glumci", da se ne biste zabunili u adresama i imenima hostova koje koristimo, pripremili smo mali dijagram:


Naši primjeri će koristiti Active Directory domenu sa FQDN imenom interfejs31.lab, za koji su odgovorna dva kontrolora domena SRV-DC01 I SRV-DC02 sa adresama 192.168.31.101 i 102. Oba kontrolera su implementirana u Windows baziran Server 2012 R2.

Ruter je zasnovan na Ubuntu server 14.04 (Debian 7/8) i ima naziv SRV-GW01 sa adresom 192.168.31.100. Postoji i grupa servera na mreži sa statičke adrese 192.168.31.103-105 i klijentski računari na koje se izdaju adrese DHCP server iz raspona 192.168.31.111-199.

Mrežna konfiguracija

Mreža se konfiguriše na tradicionalan način, uređivanjem konfiguracionog fajla /etc/network/interfaces. Prihvatimo to eksternu mrežu odgovara interfejsu eth0, i interni eth1. Kao rezultat podešavanja, trebali bismo dobiti nešto ovako:

Auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
adresa 172.18.0.106
mrežna maska ​​255.255.240.0
gateway 172.18.0.1
dns-search interface31.lab
dns-nameservers 192.168.33.101 192.168.31.102

auto eth1
iface eth1 inet static
adresa 192.168.31.100
mrežna maska ​​255.255.255.0

post-up /etc/nat

Imajte na umu da iako u postavkama eksterni interfejs Koriste se eksterna adresa i gateway, adrese DNS servera su naznačene interno. Postoji i opcija dns-pretraga, koji definira domenu za razlučivanje imena koja nije FQDN. To znači da će svakom kratkom imenu automatski biti pridružena navedena domena, npr. srv-dc01će biti dodan u srv-dc01.interface31.lab.

Ako ste zbunjeni navođenjem internog DNS-a u postavkama vanjske mrežne kartice, možete premjestiti ove redove u odjeljak eth1; to neće utjecati na rad servera.

DNS server ISP-a ili javni DNS treba navesti u odjeljku Forwarders interni DNS server na bilo kom od kontrolera domena.

Ako primite mrežne postavke od provajdera preko DHCP-a, a zatim za korištenje internih servera imena, umjesto DNS-a provajdera, odjeljak eth0 bi trebao izgledati ovako:

Auto eth0
iface eth0 inet dhcp
dns-search interface31.lab
dns-nameservers 192.168.33.101 192.168.31.102

Tako jasno specificirane postavkeće blokirati one primljene automatski od provajdera.

Sačuvajte sadržaj datoteke i ponovo pokrenite sistem. Provjeravamo prisutnost interneta na serveru i rezoluciju imena. Na primjer, pokrenite naredbu:

Nslookup srv-dc02

Prvi specificirani server imena domena, u našem slučaju 192.168.33.101, trebao bi vam odgovoriti i dati vam puno FQDN ime hosta i njegovu IP adresu.

Zatim provjerite rezoluciju vanjskih imena:

Nslookup ya.ru

Također biste trebali dobiti odgovor od interni server. U ovom trenutku, podešavanje mreže se može smatrati završenim.

Konfigurisanje NAT-a i zaštitnog zida

Osnovno podešavanje zaštitnog zida se suštinski ne razlikuje od opcije rutera radne grupe, sa jednim izuzetkom. Pošto je naš proxy neproziran, moguće je izaći direktno preko NAT-a ako iz nekog razloga pretraživač nije konfigurisan da radi sa proxy serverom. Stoga ćemo ograničiti pristup putem HTTP-a (port 80) za sve klijente na lokalnoj mreži, s izuzetkom servera i pojedinačnih hostova koji mogu zahtijevati direktan pristup.

Smatramo da je proxy server potreban prvenstveno za kontrolu korisnika, tako da ne vidimo smisla da ga koristimo za servere i hostove koji korisnicima ne pružaju pristup Internetu.

Kreirajmo i otvorimo datoteku /etc/nat

dodirnite /etc/nat

dodajte mu sljedeće sadržaje:

#Omogući prosljeđivanje paketa
echo 1 > /proc/sys/net/ipv4/ip_forward

#Dozvoli saobraćaj do lo
iptables -A INPUT -i lo -j PRIHVATI

#Dopustiti HTTP serveri
iptables -A NAPRIJED -i eth1 -s 192.168.31.101 -p tcp --dport 80 -j PRIHVATI
...
iptables -A NAPRIJED -i eth1 -s 192.168.31.105 -p tcp --dport 80 -j PRIHVATI

#Zabrani HTTP
iptables -A NAPRIJED -i eth1 -p tcp --dport 80 -j ODBACI

#Dozvoli pristup sa interna mreža spolja
iptables -A NAPRIJED -i eth1 -o eth0 -j PRIHVATI

#Omogući NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.31.0/24 -j MASQUERADE

#Dozvoli odgovore sa vanjske mreže
iptables -A NAPRIJED -i eth0 -m stanje --stanje OSNOVAN, POVEZAN -j PRIHVATI

#Zabranjujemo pristup internoj mreži izvana
iptables -A NAPRIJED -i eth0 -o eth1 -j ODBACI

Odjeljak #Dozvoli HTTP servere podrazumijeva skup identičnih pravila za svaki host kojem dozvoljavamo pristup Internetu, zaobilazeći proxy. U našem slučaju to su adrese od 192.168.31.101 do 192.168.31.105, da ne bismo zatrpavali primjer, napisali smo prvu i posljednju, odvojivši ih trotočkom (koje ne bi trebalo biti u stvarnoj konfiguraciji).

Sačuvajmo fajl i dajmo mu prava na izvršenje:

Chmod +x /etc/nat

Ponovo pokrenimo:

Nakon toga možete provjeriti internet na klijentima, onima koji su uključeni u listu izuzetaka - bit će tu, na drugima neće. Ostali protokoli: mail (SMTP, POP3, IMAP), FTP, HTTPS itd. treba raditi na svim klijentima.

Podešavanje vremenske sinhronizacije

Za uspješan rad sa domain Active Provjera autentičnosti imenika i Kerberos, važno je da sat rutera bude sinkroniziran sa satom kontrolera domene.

Instalirajmo NTP klijenta:

Apt-get install ntp

Zatim otvorite konfiguracionu datoteku /etc/ntp.conf i komentirajte sve redove koji počinju sa server. Zatim ćemo dodati naša dva unosa:

Server srv-dc01.interface31.lab
server srv-dc02.interface31.lab

Kao što ste verovatno već pretpostavili, komentarisali smo postove serveri trećih strana vrijeme i dodani kontroleri domena u ovom svojstvu.

Zatim dodajte dva reda na kraj datoteke koji ograničavaju rad NTP klijenta na interni interfejs:

Interfejs zanemari zamjenski znak
interfejs slušaj eth1

Sačuvajte fajl i ponovo pokrenite servis:

Servis ntp restart

Da biste bili sigurni da NTP radi samo na interni interfejs, uradi:

Ss -l | grep 123

Izlaz naredbe bi trebao sadržavati samo interne adrese i adrese lokalne petlje (localhost):

Sinhronizaciju možete provjeriti naredbom:

U izlazu obratite pažnju na stupce: kada-vrijeme od posljednjeg odgovora servera, bazen- vrijeme anketiranja servera, offset- vremenska razlika u sekundama.

Ako se vaš ruter nalazi u virtuelno okruženje, zatim prilikom učitavanja, dok sistem ne zna s kim da sinhronizuje vrijeme, vrijeme je unutra virtuelna mašina sinkronizirano s vremenom hipervizora. Stoga, ili onemogućite ovu funkciju u postavkama virtuelne mašine, ili sinhronizujte sat hipervizora sa satom domene.

Postavljanje Squid3 proxy servera za keširanje

Pažnja! Ako migrirate server za radnu grupu, onda obavezno izbrišite plasticna kesa dnsmasq ili druge DNS i DHCP servere!

Instalirajte squid3 proxy server naredbom:

Apt-get install squid3

Otvorimo konfiguracijski fajl /etc/squid3/squid.conf i postavite minimalnu konfiguraciju dodavanjem ili uklanjanjem komentara navedenih linija u odgovarajućim odjeljcima.

Odredimo acl element za lokalnu mrežu:

Acl localnet src 192.168.31.0/24

Minimalni set pristupnih lista:

Http_access dozvoljava lokalnu mrežu
http_access dozvoli lokalnom hostu
http_access zabrani sve

Interfejsi, portovi i proxy načini rada:

Http_port 192.168.31.100:3128
http_port 127.0.0.1:3128

Postavke keš memorije:

Cache_mem 1024 MB
maksimalna_veličina_objekta_u_memoriji 512 KB

cache_dir ufs / var /spool/squid3 2048 16 256

maksimalna_veličina_objekta 4 MB

Postavke dnevnika:

Access_log daemon:/var/log/squid3/access.log squid
logfile_rotate 31

Za squid 3.1 i starije, prvi red bi trebao izgledati ovako:

Access_log /var/log/squid3/access.log squid

Sačuvajte i provjerite konfiguraciju:

Squid3 -k provjera

Ako nema grešaka, ponovo pokrenite squid:

Ponovno pokretanje servisa squid3

Obnova keš memorije:

Servis squid3 stop
squid3 -z
servis squid3 start

Na DNS serveru domene dodajte A zapis za naš ruter:

Sada u postavkama pretraživača navedite puno ime FQDN servera i port 3128:

Budući da još uvijek nisu postavljena ograničenja, trebali biste moći pristupiti Internetu.

Mnogi administratori se suočavaju s problemom mudrog korištenja vremena i kanala za pristup Internetu, razmišljaju o mogućnosti uštede vremena i novca, ograničavanja brzine za određene tipove datoteka ili pojedinaca i, u konačnici, čuvanja svega što se odnosi na određene aspekte pristup internetu. globalna mreža.

Uz pomoć ovog članka pokušat ću jasno i jasno objasniti postavke najčešćeg proxy servera - Squid proxy servera.

Početne SQUID postavke za korisnički pristup

Nećemo ulaziti u proces instaliranja Squid proxy servera, već ćemo ići direktno na njegovo postavljanje.

Najosnovnija stvar koju bismo trebali učiniti nakon instalacije je omogućiti pristup korisnicima naše lokalne mreže. Za to se koriste parametri http_port i http_access. Osim toga, kreirat ćemo ACL (listu kontrole pristupa) za našu lokalnu mrežu.

Dakle, potreban nam je http_port utoliko što naš Squid proxy server mora opsluživati ​​samo računare na našoj lokalnoj mreži i biti nevidljiv za vanjski svijet, kako bi se isključila mogućnost da “loši ljudi” na vanjskoj mreži koriste naš kanal ili promet, i ako "rupe" su otkrivene " u kodu proxy servera Squid, koristite ih.

Parametar http_access se koristi da dozvoli ili odbije pristup određenim resursima, određenim adresama ili sa određenih adresa, određenim lokacijama, preko određenih protokola, portova i svega što je direktno specificirano pomoću Acls-a (liste kontrole pristupa).

Tabela N 1. Neke podmreže.

Raspon adresa |Puna forma |Kratki oblik 192.168.0.1-192.168.0.254 192.168.0.0/255.255.255.0 192.168.0.0/24 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-14.0.2.2 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/250.10..

Pretpostavimo da imate mrežu sa adresama od 192.168.0.1 do 192.168.0.254, a zatim dodajte novi Acl (pogledajte tabelu N1):

Acl LocalNet src 192.168.0.0/24

Pretpostavimo da se vaš Squid proxy server nalazi na 192.168.0.200 na portu 3128, a zatim upišite u konfiguracijski fajl:

Http_port 192.168.0.200:3128

Naša sljedeća akcija će biti da zabranimo korištenje našeg proxy servera, osim korisnicima naše lokalne mreže:

Http_access dozvoli LocalNet http_access zabrani sve

IN u ovom slučaju riječ dozvoli je dozvola, a riječ deny je zabrana, odnosno dopuštamo pristup Squid proxy serveru sa adresa naše lokalne mreže i uskraćujemo pristup svima ostalima.

Budite oprezni kada navodite http_access, jer ih Squid koristi redoslijedom koji odredite.

Učenje ACL-ova (Lista kontrole pristupa)

Sistem kontrole pristupa u Squid proxy serveru je vrlo fleksibilan i opsežan. Sastoji se od elemenata sa vrijednostima i listama pristupa koji ukazuju na dopuštenje (dozvoljenje) ili deny (odbijanje).

Format Acl je sljedeći:

Lista elemenata imena ACL

Format pristupne liste:

Http_access indikacija acl_name

Pogledat ćemo neke od elemenata koje vam Squid proxy server dozvoljava da koristite, uz primjere, naravno:

* acl ime src lista

Pomoću ovog elementa (src) ukazujemo na IP adresu izvora, odnosno klijenta sa kojeg je zahtjev stigao na naš proxy server.

IN sljedeći primjer dozvolit ćemo Vasyi Pupkin (Pupkin) i odjelu za programiranje (Progs) pristup našem proxy serveru i zabraniti svima ostalima:

Acl Progs src 192.168.0.1-192.168.0.9 acl Pupkin src 192.168.0.10 http_access dozvoli Progs http_access dozvoli Pupkin http_access deny all

* acl ime dst lista

Ovaj element (dst) specificira odredišnu IP adresu, odnosno IP adresu servera kojem klijent proxy servera želi pristupiti.

U sljedećem primjeru zabranit ćemo Vasyi pristup podmreži 194.67.0.0/16 (na primjer, sadrži isti aport.ru):

Acl Net194 dst 194.67.0.0/16 http_access deny Pupkin Net194

* acl ime dstdomain lista

Koristeći ovaj element (dstdomain) ukazujemo na domenu kojoj klijent proxy servera želi pristupiti.

U sljedećem primjeru zabranit ćemo Vasyi pristup web lokacijama za proizvode nnm.ru i kpnemo.ru:

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

Ako trebate navesti izvornu domenu, koristite srcdomain.

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

Ovi elementi se razlikuju od srcdomain i dstdomain samo po tome što koriste regularne izraze, koje ne razmatramo u ovom članku, ali ćemo ipak dati primjer:

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

IN u ovom primjeru Zabranili smo Vasiliju Pupkinu pristup svim domenima koji sadrže riječ seks i svim domenima u .com i .net zonama.

Prekidač -i je dizajniran da ignoriše velika i mala slova znakova u regularnim izrazima.

* acl ime [-i] url_regex lista

Koristeći ovaj element (url_regex) specificiramo šablon regularni izraz za URL.

Primjer specificiranja datoteka sa ekstenzijom avi počevši od riječi sex:

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

Ako želite da navedete predložak samo za URL putanju, to jest, isključujući naziv protokola i hosta (domene), tada koristite urlpath_regex.

Primjer za ukazivanje muzičke datoteke:

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

* acl ime_acl lista portova

Indikacija broja odredišnog porta, odnosno porta na koji klijent našeg proxy servera želi da se poveže.

Na primjer, zabranit ćemo svima korištenje programa Mirc preko našeg proxy servera:

Acl Mirc port 6667-6669 7770-7776 http_access deny all Mirc

* acl ime_acl proto lista

Određivanje protokola prijenosa

Kao primjer, zabranit ćemo korištenje gore navedenog Vasya FTP protokol preko našeg proxy servera:

Acl ftpproto proto ftp http_access deny Pupkin ftpproto

* lista metoda acl name_acl

Određivanje metode http zahtjeva od strane klijenta (GET, POST)

Uzmimo situaciju u kojoj Vasji Pupkinu treba zabraniti da gleda svoju poštu na web stranici mail.ru, ali u isto vrijeme dozvoliti da se šeta po stranici bez zabrana, odnosno Vasji bi trebalo zabraniti da ulazi u njegovu Mailbox putem obrasca za prijavu na sajtu:

Acl SiteMailRu dstdomain .mail.ru acl methodpost method POST http_access deny Pupkin methodpost SiteMailRu

Korisnička ograničenja

Nerijetko se u našoj zemlji javlja situacija kada nema dovoljno kanala za pristup globalnom internetu za sve korisnike i postoji želja da se svima pruži maksimum, a da se istovremeno ne dozvoli da se kanal „savija“ zbog onih koji voli da preuzima fajlove.

Alati Squid proxy servera vam omogućavaju da to postignete na nekoliko načina:

  • prvi način je optimizacija keširanja objekata;
  • drugo je vremensko ograničenje za određene korisnike, što nije sasvim tačno;
  • treći način je ograničenje brzine za određene tipove datoteka, korisnike i sve ono što definiramo kroz Acl.

Vremenska ograničenja

Možete ograničiti korisnike po vremenu na sljedeći način:

Acl ime vrijeme dani hh:mm-HH:MM

Gdje je dan: M - ponedjeljak, T - utorak, W - srijeda, H - četvrtak, F - petak, A - subota, S - nedjelja.

U ovom slučaju, hh:mm mora biti manje od HH:MM, odnosno možete odrediti od 00:00-23:59, ali ne možete odrediti 20:00-09:00.

Zabranimo istom Vasji da ima pristup internetu od 10 do 15 sati svakog dana:

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

Ako želite dozvoliti Vasyi da koristi program Mirc od 13 do 14 sati, napišite:

Acl TimePupkin time 13:00-14:00 http_access enable Pupkin TimePupkin Mirc http_access deny Pupkin Mirc

Šta učiniti ako trebate zabraniti ili dozvoliti određene dane u sedmici? Squid vam također omogućava da to učinite, na primjer od 13 do 14 sati ponedjeljkom i nedjeljom:

Acl TimePupkin vrijeme MS 13:00-14:00

Kao što vidite, u tome nema ništa komplikovano.

Ograničenja brzine

Podešavanje brzine u Squid proxy serveru vrši se pomoću skupova. Bazen je svojevrsna bure piva u koju se pivo stalno puni do vrha, a kupci ga toče u svoje čaše ili druge posude za dalju internu potrošnju po potrebi preko svojih ličnih slavina.

Pulovi se regulišu pomoću tri parametra: delay_class, delay_parameters, delay_access. Broj skupova je specificiran pomoću parametra delay_pools.

Bazeni mogu biti tri klase:

  1. Cjelokupni protok piva je ograničen na jednu slavinu (za cijelu mrežu).
  2. Cjelokupni protok piva je ograničen na jednu slavinu, ali je slavina podijeljena na slavine (za svaki IP).
  3. Čitav protok piva je ograničen na jednu slavinu, ali je slavina podijeljena na podčesmine (na podmrežama), koje su također podijeljene na mini slavine (za svaki IP).

Delay_pools number of_advertised_pools delay_access pool_number akcija acl_name

Radnja se može dozvoliti ili odbiti. Istovremeno, ovaj bazen utiče na one kojima je dozvoljen i ne utiče na one kojima je zabranjen. Ako se specificira dozvoli sve, a zatim deny Pupkin, onda će ova klasa i dalje imati efekta na Pupkin, jer Pupkinova IP adresa oglašena u Pupkin acl je uključena u listu svih adresa acl. Imajte ovo na umu.

Delay_class pool_number pool_class parameters parameters pool_number

Parametri se razlikuju ovisno o klasi bazena:

za prvu klasu:

Delay_parameters 1 bajt_za_cijelu_mrežu

za drugi razred:

Delay_parameters 1 po_cjelini_mreži po_klijentu

za treći razred:

Delay_parameters 1 po_cjelini_mreži po_podmreži po_klijentu

Na primjer, imamo kanal od 128 Kbita (prosječno 15 Kbajta u sekundi) i želimo Vasji (Pupkin) dati samo 4 Kbyte/sec (jedna mala čaša za sve), a odjelu za programiranje (Prog) dati samo 10 Kbyte-a /sec.s i za svaki samo 5 Kb/sec (samo dve čaše), svi ostali su ograničeni na 2 Kb/sec za svaku i 10 Kb/sec za svakoga, a mp3 (medijski) fajlovi su ograničeni na 3 Kb/sec za svakoga (za cijelo bure piva je tako mala slavina). Zatim pišemo:

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_regex4 \$ma \$ma first. hajde da ograničimo mp3 delay_class 1 1 delay_parameters 1 3000/3000 delay_access 1 dozvoli medija delay_access 1 deny all # ograniči lošu Vasya delay_class 2 1 delay_parameters 2 4000/4000 delay_access 2 dozvoli Pupkin de delay_access 2 dozvoli Pupkin de delay_access odeljenje za kašnjenje 2 delay_access restrikti 2 odeljenje delay_ass 3 10000/10000 5000 /50 00 delay_access 3 dopusti Prog delay_access 3 deny all # sada hajde da ograničimo ostatak (druga klasa bazena) delay_class 4 2 delay_parameters 4 10000/10000 2000/2000 delay_access 4 deny media de delay_access dozvoli delay_access delay4 Lo dozvoli delay_access de calNet delay_access 4 poriču sve

Često se postavlja pitanje koji je najbolji način da se tako mali kanal koristi da se automatski dijeli među svima onima koji ovog trenutka učitava li nešto? Postoji jasan odgovor na ovo pitanje - to nije moguće učiniti pomoću Squid proxy servera, ali ipak možete učiniti nešto:

Delay_class 1 2 delay_parameters 1 -1/-1 5000/15000 delay_access 1 dozvoli LocalNet delay_access 1 zabrani sve

Dakle, dodjeljujemo maksimalan kanal cijeloj našoj mreži i podmrežama (-1 znači neograničeno), a svakom korisniku dajemo maksimalnu brzinu od 5 Kb/sec nakon što preuzme na maksimalna brzina prvih 15 KB dokumenta.

Na ovaj način klijent neće pojesti cijeli kanal, ali će brzo dobiti prvih 15 KB.

Optimiziranje keširanja objekata u SQUID-u

Postoje mnoge vrste datoteka koje se ne ažuriraju dovoljno često da bi se omogućilo proxy serveru da odgovori na zaglavlja s web servera u kojima se navodi da ovaj objekat se ne može keširati ili je iznenađujuće samo promijenjen. Ovo je prilično česta situacija.

Za rješavanje ovakvih situacija namijenjen je parametar refresh_pattern u datoteci postavki proxy servera Squid, ali u potpunosti sa formulama itd. nećemo to razmatrati.

Refresh_pattern [-i] string MINV postotak MAXV parametara

Ovaj parametar koristi se za određivanje starosti objekta (pročitane datoteke) u kešu, da li ga treba ažurirati ili ne.

MINV (minimalno vrijeme) - vrijeme u minutama kada se objekt u kešu smatra svježim.

MAXV ( maksimalno vrijeme) - maksimalno vrijeme u minutama kada se objekt smatra svježim.

Parametri su jedan ili više od sljedećeg:

  • override-expire - zanemariti informacije o isteku objekta i koristiti MINV.
  • override-lastmod - zanemarite informacije o datumu izmjene datoteke i koristite MINV.
  • reload-into-ims - umjesto slanja zahtjeva klijenta "ne keširaj dokumente" (bez keširanja), pošalji zahtjev "Ako-Modified-Since"
  • ignore-reload - ignoriši zahtjeve klijenta “ne keširaj dokumente” (bez keširanja) ili “ponovno učitaj dokument” (ponovno učitaj).

Dakle, dolazimo do najvažnije stvari. Pa, koje vrste datoteka se najmanje često ažuriraju? Po pravilu, to su razne muzičke datoteke i slike.

Postavimo svježinu objekata; u tu svrhu za slike i muzičke fajlove naznačićemo, recimo, čak 30 dana (43200 minuta):

Refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i \.png$ 43200 100% 43200 override-lastmod override-expire refresh_pattern.jpg04%04004 -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 refresh04 \papzitter%04 \pazip. 0 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-expiren%04 \patterz refresh04 \pa20. 00 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_-expiren%04 refresh_pattern%04 refresh04 3200 nadjačavanje- lastmod override-expire refresh_pattern -i \.inf$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i \.swf$ 43200 100% 43200 override-lastmod refresh_pattern -i 0% 43200 nadjačavanje -lastmod override-expire refresh_pattern -i \.wav$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i \.mp3$ 43200 100% 43200 override-expire override

Gore prikazane postavke su samo primjer, tako da je suština jasna. Sada možete provjeriti efikasnost vašeg proxy servera, sigurno će se povećati.

Zaključak

Squid proxy server nije samo jedan uobičajeni proxy server; postoje i drugi. No, kao što statistika pokazuje, većina koristi upravo ovaj proxy server, ali u isto vrijeme, mnogi početnici i dalje imaju problema s postavljanjem.

Uz pomoć ovog članka, pokušao sam bar malo otkriti širokim masama neke od funkcija Squid proxy servera.

Sljedeći korak postavljanja je instaliranje proxy servera kako biste osigurali kontrolisan pristup na Internet.

Koristimo SQUID3 proxy server za ovo.

Instalirajte server naredbom:

sudo apt-get install squid3

Pažnja: U Ununtu Verzije servera manje od 16, adresa foldera squid proxy servera - /etc/squid3, u Ubuntu Serveru 16 adresa foldera squid proxy servera je /etc/squid. Budite oprezni kada navodite staze. Možete vizualno provjeriti ispravnu putanju do mape SQUID koristeći .

Konfiguracijska datoteka SQUID3 nalazi se na /etc/squid3/squid.conf, budući da je ovaj vodič namijenjen početnicima, a konfiguracijski fajl je vrlo velik i sadrži puno komentara, kreirat ćemo novi fajl konfiguraciju i kopirajte originalni pod drugim imenom.

Kada odlučite da se bolje upoznate s mogućim opcijama konfiguracije SQUID3, možete sami vratiti originalnu datoteku.

Preimenujmo originalni fajl squid3.conf na fajl pod nazivom squid3.conf.bac

sudo mv /etc/squid3 /squid.conf /etc/squid3 /squid.conf.bac

Mi stvaramo prazan fajl konfiguracije squid.conf:

sudo touch /etc/squid 3/squid.conf

Otvorite konfiguracijski fajl:

sudo nano /etc/squid3/squid.conf

Zalijepite sljedeći konfiguracijski tekst u datoteku:

acl SSL_ports port 443 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 # neregistrirani portovi acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # višestruko http acl localnet src 192.168.137.0/24 acl CONNECT metoda CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access dozvoljava menadžeru lokalnog hosta http_access deny manager http_access dozvoli lokalnom hostu http_access dozvoli lokalnoj mreži http_access zabrani sve http_port 192.168.137.1:3128 presretanje cache_dir ufs /var/spool/squid3 2048 16 256 maksimalna_veličina_objekta 4 MB maksimalna_veličina_objekta_u_memoriji 512 KB cache_mem 1024 MB access_log daemon:/var/log/squid3 /access.log squid logfile_rotate 31 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 (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320

Ubuntu Server 15: SQUID proxy početna konfiguraciona datoteka

Šta smo promijenili u originalnoj konfiguraciji:

  • acl localnet src 192.168.137.0/24 - naznačio domet naše lokalne mreže;
  • http_port 192.168.137.1:3128 presretanje - otvorio transparentni proxy server na portu 3128, u "transparentnom" režimu nema potrebe da se konfiguriše adresa proxy servera na klijentima;
  • cache_dir ufs /var/spool/squid3 2048 16 256 - specificirane postavke upotrebe keša. Obratite pažnju na putanju do fascikle SQUID u zavisnosti od verzije vašeg servera;
  • max_object_size 4 MB — minimalna veličina keširane datoteke;
  • maksimalna_veličina_objekta_u_memoriji 512 KB — maksimalna veličina keširani objekt u RAM-u;
  • cache_mem 1024 MB - dozvoljena količina memorije za keš memoriju;
  • access_log daemon:/var/log/squid3 /access.log squid - omogući evidentiranje. Obratite pažnju na putanju do fascikle SQUID u zavisnosti od verzije vašeg servera;
  • logfile_rotate 31 — period skladištenja za log fajlove.

Svi ostali parametri ostaju u originalnoj konfiguracionoj datoteci - bez promjena.

Provjerimo konfiguracijski fajl prije ponovnog pokretanja usluge:

sudo squid3 -k provjera

Ako naredba radi bez izlaza, nema grešaka, inače proučavamo izlaz i ispravljamo greške.

Ponovo pokrenimo squid servis da primijenimo promjene:

sudo service squid3 restart

Otvorimo kreirani fajl /etc/nat i odredite preusmjeravanje http prometa preko našeg squid proxy servera:

sudo nano /etc/nat

Dodajte sljedeće na kraj datoteke:

# Pretvorite http u proxy iptables -t nat -A PREUSMIRANJE -i eth1 ! -d 192.168.137.0 /24 -p tcp -m multiport --dport 80.8080 -j DNAT --na 192.168.137.1 :3128

Ubuntu Server: Postavljanje squid-a

Ponovo pokrećemo server.

Squid proxy server je uspješno konfigurisan.

Većina "ne radi" je uzrokovana nepažnjom! Pažljivo provjerite komande i ne dopuštajte nepotrebne znakove u konfiguracijskim datotekama.

Najbolji članci na ovu temu