Muud materjalid Linuxi kategoorias. Anonüümse läbipaistva puhverserveri Squid vahemällu salvestamine

See artikkel annab näite kiire seadistamine puhverserveri Squid vahemällu salvestamine Linux Debian 6. Seadistamise tulemuseks on Interneti-juurdepääsu võimalus see server protokollide kaudu: http, https ja ftp.

Lubage mul teha kohe broneering, et tulemuseks olev server ei ole liigpingekaitse ja on potentsiaalselt haavatav võrgurünnakud.
Server on konfigureeritud operatsioonisüsteemile Linux Debian 6. Kõik allpool toodud käsud tuleb täita superkasutaja (juur)õigustega.

Kohe oluline hoiatus: autoriseerimine ja läbipaistev puhverserver ei ühildu! Peate valima ühe asja. Teine hoiatus: volitamine puhverserveri kaudu piirab Interneti-juurdepääsu ainult HTTP-protokolli kaudu. Muud protokollid: FTP, SMTP, POP3 ja teised jätkavad vaikselt töötamist NAT-i kaudu. Kuigi sisse väikesed organisatsioonid see pole nii kriitiline, enim kasutatud (ja kuritarvitatud) on täpselt nii HTTP protokoll ja üks administraatori ülesandeid on piirata töötajate juurdepääsu Internetile brauseri kaudu.

Kui kasutate Apteture'i ja laadite pakette võrgust alla, soovitan enne installimist värskendada praeguste pakettide loendeid:

# apt-get update

Alustame Squidi installimist:

# apt-get install squid3

Pärast installimise lõpetamist alustame kalmaari konfiguratsioonifaili redigeerimist. Ma ei tea teie kohta, minu arvates on see mugavam, kui konfiguratsioonifailis pole midagi üleliigset, see tähendab, et olemas on ainult konfiguratsiooniparameetrid. Selleks varundame algse kalmaari konfiguratsiooni (et oleks koht, kust otsida kõigi parameetrite kirjeldusi):

cp /etc/squid/squid.conf /etc/squid/squid.conf.original

ja võta algsest konfiguratsioonist välja kõik, mida ei kommenteerita:

kass /etc/squid/squid.conf.original | grep -v "^\(#\|$\)" > /etc/squid/squid.conf

Selle tulemusel saame vaikekonfiguratsiooni ilma millegi väljamõeldud. Kuid siiski soovitan tungivalt vaadata algset konfiguratsiooni ja seda vabal ajal lugeda – seal on palju huvitavat!

Noh, lõpuks alustame toimetamist:

nano /etc/squid/squid.conf

Pärast paigaldamist vajate väike näpunäide. Avage redaktoris Squid konfiguratsioonifail, mis peaks asuma failis /etc/squid/squid.conf. Sellest failist leiame read:

Acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16

Neid ridu tuleb kommenteerida. Ja lisage oma rida oma parameetritega kohalik võrk. See peaks välja nägema selline:

# acl localnet src 10.0.0.0/8
# acl localnet src 172.16.0.0/12
# acl localnet src 192.168.0.0/16
acl localnet src 192.168.1.0/24 # Oma kohtvõrk

Viimasel real peate 192.168.1.0/24 asemel asendama oma võrgu parameetrid.

Vahetult kommentaari all # TAG: http_access peate leidma rea:

Http_access luba kohalikku hosti
või
http_access luba halduri localhost

Vahetult pärast seda rida lisage rida:

Http_access lubab kohalikku võrku
cache_dir ufs /var/cache/squid 2048 16 256
mkdir -p /var/cache/squid
chmod 755 -R /var/cache/squid

See võimaldab juurdepääsu võrgule kõigile kohaliku võrgu arvutitele. Pärast seda salvestage fail squid.conf ja taaskäivitage Squid server:

# /etc/init.d/squid restart

Kui pärast squid'i taaskäivitamist kuvatakse tõrge (HOIATUS cache_mem on suurem kui kogu ketta vahemäluruum!), vähendage lihtsalt parameetri cache_mem väärtust 8 MB, määran selle väärtuseks 32

Kui muutsite konfiguratsioonifaili vigade tõttu, peaks Squid edukalt taaskäivitama. Kui ilmneb tõrge, saate selle põhjuse teada logifailist: /var/log/squid/cache.log
Brauseri konfigureerimine töötama puhverserveri kaudu

IN see valik seaded, ei saa meie server võrgupäringuid automaatselt puhverserveri porti suunata. Seetõttu peavad brauserid meie serveri aadressi selgesõnaliselt määrama.

On oluline, et kohaliku võrgu puhverserveril oleks fikseeritud IP-aadress. Oletame, et teie oma on 192.168.1.1. Näiteks seadistamiseks Internet Explorer Peate avama Tööriistad-Interneti-suvandid-Ühendused-Võrgusätted. Avanevas aknas märkige ruut Kasuta puhverserverit kohalikud ühendused. Märkige ruut Ära kasuta puhverserverit kohalikud aadressid. Sisestage väljale Aadress meie puhverserveri IP-aadress: 192.168.1.1. Sisestage väljale Port Squidi kasutatav vaikeport: 3128.

Pärast neid seadistusi pääseb teie brauser võrku meie uue puhverserveri kaudu. Teistes brauserites on säte sarnane ülaltooduga Microsofti Internet Explorer.

Puhverserveri porti saab oma äranägemise järgi muuta failis /etc/squid/squid.conf. See on antud real:

http_port 3128 läbipaistev

Järeldus
Squidil põhineva vahemällu salvestava puhverserveri installimine ja konfigureerimine on vaid esimene samm produktiivse Interneti-lüüsi loomisel. Veidi hiljem räägin teile, kuidas seadistada "Läbipaistvat puhverserverit", tulemüüri ja kuidas saate pidada kohaliku võrgu kasutajate saidikülastuste statistikat.

Väga oluline on iptables õigesti konfigureerida. Teine variant on veidi madalam, see meeldib mulle rohkem

Selles etapis soovitan teil luua häälestusskripti, kuna see on kasulik universaalse tööriistana.1 # vim ./setiptables.sh

#!/bin/bash
LAN = 1 dollar
WAN = 2 dollarit
IP = 3 dollarit
GW = 4 dollarit
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to $IP:3128
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j REDIRECT --port 3128
iptables -t nat -A POSTROUTING -j MASKERAAD
iptables -A EDASI -i $WAN -o $LAN -s $GW/24 -p tcp -m multiport --dport 443,21,22 -j ACCEPT
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
sysctl -w net.ipv4.ip_forward=1

Oleme märgistanud muutujad (mugavuse huvides), 3 reeglit NAT tabeli jaoks ja 1 FORWARD jaoks.
Puhverserverist möödahiilimiseks kasutame porte 443,21,22.
Pealegi iptablesi seaded, selles skriptis lubame pakettide edastamise.
Käitame seda nii: 1

# sh ./setiptables.sh eth0 eth1 192.168.100.1 192.168.100.0

6) Seadistage iptablesi sätete automaatne laadimine.
Salvestame iptablesi sätted.

# mkdir -p /usr/local/iptables && iptables-save > /usr/local/iptables/session.ipt

Lisage automaatkäivituskäsk faili /etc/rc.local (mulle meeldib Perl, kuid teised võivad erineda).

# perl -i -pe "print "iptables-restore< /usr/local/iptables/session.ipt\n" if $. == 2" /etc/rc.local

Ärge unustage ka pakettide edastamist

# perl -i -pe "print "sysctl -w net.ipv4.ip_forward=1\n", kui $. == 3" /etc/rc.local

Teine võimalus tulemüüri iptablesi seadistamiseks

Lubame süsteemis edastamise. Tühjendage failis /etc/sysctl.conf rea kommentaarid

net.ipv4.ip_forward=1

Nii edasi Sel hetkel oleme tulemüüri seaded (iptables) täielikult lähtestanud.

Kettide lähtestamine:

$ sudo iptables -F
$ sudo iptables -F -t nat
Me keelame igasuguse sissetulemise ja lubame kõik väljaminevad ja edasisaatmised:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P EDASIMINE ACCEPT
Võimaldame teil JUBA loodud ühendusele vastust vastu võtta:
sudo iptables -A SISEND -m riik -- osariik SEOTUD, ASUTATUD -j NÕUSTU
Luba tagasisilmusliiklus:
sudo iptables -A SISEND -i lo -j ACCEPT
Lubame kogu liikluse meie sisevõrk(võtame alamvõrgu 222):
sudo iptables -A SISEND -s 192.168.222.0/24 -i eth1 -j ACCEPT
Ja läbipaistvuse garantii! Suuname kogu väljuva http-liikluse (porti 80) ümber squid porti 3128:
iptables -t nat -A PREROUTING -s 192.168.222.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --portidesse 3128
iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o eth0 -j SNAT --allikasse 192.168.56.39

Kontrollime klienti Internetis. Tuletan meelde, et kui puhverserverit pole vaja määrata, tuleb määrata lüüs!
Kuid pärast esimest taaskäivitamist mõistame, et kõik meie jõupingutused olid asjatud.
Õpetame neile, kuidas ellu jääda!
Niisiis, salvestame kõik, mida me siin tegime:

iptables-save > /etc/firewall.conf

See trikk ei tulnud mulle sudoga välja (kuigi teoreetiliselt peaks...), nii et saate seda teha, logides täielikult sisse root (su) ja käivitades käsu, kuid ilma sudota.
Nüüd loome skripti, mis sunnib ifupdowni tulemüüri taaselustama:

nano /etc/network/if-up.d/00-iptables

Sisestame sellesse järgmised andmed:

#!/bin/sh
iptables-restore< /etc/firewall.conf

Määrame täitmisõigused:

chmod +x /etc/network/if-up.d/00-iptables

Üldiselt on läbipaistva puhverserveri seadistamine lõpetatud, kuid selleks, et logid oleksid loetavad, peame ipv6 toe keelama (kuna ipv6 pole adapteris konfigureeritud, kuvatakse palju hoiatusi) .

Keelake IPv6, kui keegi seda ei kasuta

Soovitan stsenaariumi uuesti teha, et mitte segadusse sattuda.
nano ./ipv6disable.sh

#!/bin/bash
perl -i -pe "print "alias net-pf-10 ipv6 off\n", kui $. == 17" /etc/modprobe.d/aliases.conf
perl -i -pe "print "alias net-pf-10 off\n", kui $. == 18" /etc/modprobe.d/aliases.conf
perl -i -pe "print "alias ipv6 off\n", kui $. == 19" /etc/modprobe.d/aliases.conf
kaja 1 | tee /proc/sys/net/ipv6/conf/all/disable_ipv6
kaja "must nimekiri ipv6" | tee -a /etc/modprobe.d/blacklist.conf
STR=$(cat /boot/grub/grub.cfg | sed -n "67p")
STR=$(STR)" ipv6.disable=1"
sed "67d" /boot/grub/grub.cfg > /boot/grub/grub.cfg.backup
cp /boot/grub/grub.cfg.backup /boot/grub/grub.cfg
sed -i 67i\ "$STR" /boot/grub/grub.cfg

IN üldine ülevaade Mis selles skriptis toimub:
Esiteks keelake kerneli moodulites ipv6 tulekahju.
Järgmisena määrame failis /proc markeri, et mitte kasutada ipv6.
Ja faili /boot/grub/grub.cfg reale 67 lisame parameetri ipv6.disable=1.
See trikk tee ja sed-iga on vajalik seadistuste salvestamiseks faili /boot/grub/grub.cfg, kuna sealseid seadmeid ei määra /dev/sd* ega UUID.
Kuigi kõike saab alati käsitsi lõpetada.
Nüüd peame kalmaari kinnitama
Seega on pool tööst juba tehtud, nüüd jääb üle vaid SquidGuardi pakett installida ja seadistada. Paigaldamiseks kirjuta terminali alt juurkasutaja (juurõigused Debian GNU/Linuxis saab selle kätte käsuga su, Ubuntus kirjutame enne käske sudo):

apt-get install squidguard

Pärast installimist laadige terminalist alla käsk blacklists wget (tähelepanu, faili suurus on 24 MB!):
wget -c my_blacklists.tar.gz

Ja pakkige see lahti kataloogi, kus peaksid asuma SquidGuardi andmebaasid (vajalikud on administraatori õigused):

tar zxvf my_blacklists.tar.gz -C /var/lib/squidguard/db

Lahtipakkimise tulemusena ilmub kataloog /var/lib/squidguard/db/my, mis sisaldab palju erinevate kategooriate alamkatalooge koos domeenide ja soovimatute saitide aadressidega. Koostasime selle loendi kolme musta nimekirja alusel, mis laaditi alla saitidelt http://www.squidguard.org, http://www.shalllist.de ja http://www.urlblacklist.com. Selle tulemusena sisaldab meie loend rohkem kui 3 miljonit saiti.

Nüüd peate konfigureerima Squid ja SquidGuardi kombinatsiooni ning ühendama nendega mustad nimekirjad. Selleks lisage faili squid.conf järgmised read avades faili nanoredaktoris administraatoriõigustega:

nano /etc/squid/squid.conf

Lisage faili lõppu read:

Redirector_bypass sees
redirect_program /usr/bin/squidGuard
ümbersuunamise_lapsed 1

mv /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf_original

Laadige meie veebisaidilt alla konfiguratsioonifail squidGuard.conf, kasutades terminalis käsku wget:
wget -c squidGuard.conf

Kopeerige see vana faili kohta (administraatori õigustega):

cp squidGuard.conf /etc/squid/squidGuard.conf

Pärast konfiguratsioonifaili kopeerimist käivitame teie allalaaditud ja lahtipakkitud teksti mustade nimekirjade teisendamise Berkeley DB andmebaasivormingusse (käsk töötab mõnda aega - peate ootama, kuni see täielikult lõpeb), käivitades käsu administraator:

squidGuard -d -C kõik

Kui kõik on õigesti tehtud, kuvab terminal pärast käsku palju teateid uute andmebaasifailide loomise kohta ja nende seeria lõpus näete midagi sellist:

2012-03-16 12:51:53 squidGuard 1.4 käivitati (1331887787.768)
2012-03-16 12:51:53 db värskendus tehtud
2012-03-16 12:51:53 squidGuard peatus (1331887913.657)

Mida ütleb musta nimekirja andmebaaside loomise edukas lõpuleviimine? Järgmisena määrake Squid-serveri õigused andmebaasifailidele, käivitades administraatoriõigustega käsu:

chown -R puhverserver: puhverserver /var/lib/squidguard/db/

Ja taaskäivitage Squid server, käivitades Debianis administraatorina:

/etc/init.d/squid3 taaskäivitage

Pärast taaskäivitamist oli tulemus koostöö Squid ja SquidGuard suunavad soovimatutelt saitidelt saidile ümber. Saate selle asendada mis tahes muu lehega, muutes aadressi viimane rida konfiguratsioonifail /etc/squid/squidGuard.conf.

Kirjete muutmine domeenide ja URL-i loendites
Näide. Looge faili domains.db kõrval kaustas /var/lib/squiguard/db/direction fail domains.diff. Sisestame sellesse rea või mitu rida, üks iga kirje jaoks:

Veebisait (mis tähendab selle domeeni kustutamist andmebaasist)
või +sysadmin -komi.ru (mis tähendab selle domeeni lisamist andmebaasi)

Anname käsud:

(värskenda db andmebaase diff-failidest. Squidguardi logides näed, kui palju on lisatud/kustutatud.)

$ squid3 -k uuesti seadistada

(Lugege sätteid uuesti ilma taaskäivitamata.)
Pole vaja faili domains.diff kustutada ega sellest kirjeid kustutada. See fail on kasulik ka globaalsete andmebaaside värskendamise ajal. Ja mitme värskenduse korral pole andmebaasis kirjeid dubleeritud.

Saate luua oma ümbersuunamisreegleid, lisades või välistades soovimatute saitide kategooriaid. Kahjuks pole 100% kaitset võimalik saada, sest... Pidevalt ilmub uusi ebameeldiva sisuga saite. Isegi kui uuendate pidevalt musti nimekirju. Kui vajate tugevat kaitset, saab SquidGuardi konfigureerida töötama lubatud saitide valge nimekirjaga, keelates kõik muu - kuid siis on saite väga piiratud hulk.

Ja üks hetk on jäänud! Paneme statistika, kes, mis, kus ja miks, nimega sarg

apt-get install sarg

See tõmbab kaasa terve hulga pakette ja pole ime, sest see vajab tulemuste kuvamiseks veebiserverit.

Kohandame konfiguratsiooni (/etc/squid/sarg.conf) enda jaoks sobivaks. Siin on peamised read, millele tähelepanu pöörata:

Access_log /var/log/squid/access.log
...
väljundi_kataloog /var/www/squid-reports
...
märgistik UTF-8

Looge viimane kataloog, kui seda pole.
Käivitame twilli (hea oleks selle käivitamine cronisse suruda, ma ei hakka seda siin kirjeldama... veel)

Hurraa! Me läheme võrgu seest oma serverisse, imetleme aruandeid aadressil http://IP_SERVER/squid-reports/
Kõik poisid on valmis. Küsimuste korral küsige, aitan kuidas saan.

Hea aeg, kallid lugejad ja külalised! Selle artikliga alustan töö kirjeldamist SQUID vahemällu salvestav puhverserver. See artikkel on enamasti sissejuhatav ja teoreetiline.

Mis on puhverserver ja mis on squid

Alustan põhitõdedest. kalmaar on puhverserveri vahemällu salvestamine HTTP, FTP ja muude protokollide jaoks. HTTP puhverserver on programm, mis teeb klientprogrammi (olgu see siis brauser või muu tarkvara) nimel HTTP päringuid. Vahend ehk puhverserver vahemällu salvestamine või vahemälu mitte salvestamine. Vahemällu salvestamine, vastavalt salvestab kõik päringud mõnda salvestusruumi, et klientidele kiiremini kohale toimetada, ja vahemälu mitte salvestamine- edastab lihtsalt HTTP, ftp või muid päringuid. Kui varem võimaldas liikluse vahemällu salvestamine saavutada üsna märkimisväärset liiklussäästu, siis tänapäeval on see interneti kiiruste kasvuga veidi oma aktuaalsust kaotanud. Puhverservereid saab sisse ehitada hierarhia taotluste töötlemiseks. Samal ajal suhtlevad puhverserverid üksteisega kasutades ICP protokoll.

Kalmaar loodud ja saab töötada enamikul operatsioonisüsteemid(nii unix kui ka windows). Litsentsitud all GNU litsents GPL. Võimaldab töödelda ja vahemällu salvestada HTTP, FTP, gopheri, SSL ja WAIS (eemaldatud versioonis 2.6) päringuid ning DNS-i. Enamik Sagedased päringud kauplustes sisse muutmälu. Praegu on olemas 2 stabiilsed versioonid kalmaar: 2.7 Ja 3.1 . Erinevused leiate artikli lõpus olevatelt linkidelt. Kõik sõltuvused pakettidest installimisel on samad. Konfiguratsioonifail versioon 2 ühildub versiooniga 3, kuid versioon 3 lisab uusi parameetreid. Artiklis kaalun squid3 versioon. Samuti väärib märkimist, et kui installite squid3, säilitab see oma konfiguratsioonifailid /etc/squid3, samuti squid3 vaikelogid on kataloogis /var/log/squid3/, kuid mitte /var/log/squid/, nagu paljudele logianalüsaatoritele meeldib mõelda.

Sõna "maineti mitu korda" vahemällu salvestamine"Ja mis see täpselt on... vahemällu salvestamine? See meetod Internetist küsitud objektide salvestamiseks serveris, mis asub päringu esitanud arvutile lähemal kui algne. Interneti-objekt on fail, dokument või vastus mis tahes Internetis pakutava teenuse (nt FTP, HTTP või gopher) päringule. Klient küsib puhverserveri vahemälust Interneti-objekti; kui objekt ei ole veel vahemällu salvestatud, siis puhverserver võtab objekti vastu (või taotletava määratud võrgusõlmest URL-aadress, kas vanema või naabri vahemälust) ja edastab selle kliendile.

Squid puhverserveri töörežiimid

Squidi puhverserver võib töötada kolmes põhirežiimis:

Läbipaistev režiim

Selles režiimis HTTP ühendus kliendid suunatakse puhverserverisse ilma nende teadmata või selgesõnalise konfiguratsioonita. Selles režiimis pole kliendi seadistamine vajalik. Puudused seda meetodit : Vaja on NAT-i seadistamist ja liikluse ümbersuunamist, kliendi autentimine ei tööta, FTP ja HTTPS-i päringuid ei suunata ümber.

Autentimisrežiim

Selles režiimis töötamiseks peavad kliendid olema konfigureeritud töötama puhverserveriga (puhverserveri aadress tuleb määrata ühenduse seadetes). Kliendi autentimist ja autoriseerimist saab teostada Kerberose, Ldapi, NTLM-i, IP ja Radiuse kaudu. Võimalik on luua suhtlust Microsofti serverid Active Directory domeeniliikmete klientide autentimisega Kerberose protokolli abil ja sellele järgneva domeenigrupi liikmete autoriseerimisega LDAP-i abil läbipaistvas režiimis (kasutaja sisestab oma parooli ainult domeeni registreerimisel). Volitatud gruppidele on võimalik kasutada erinevaid seadeid juurdepääsu kontroll ja QoS (delay pools).

Vastupidine puhverserver

Puhverserver salvestab väljuvad andmed vahemällu. Squid pöördpuhverserver võtab kliendi nimel HTTP-serverist andmeid vastu ja edastab need kliendile tagasi (näiteks Internetti). See režiim võimaldab teil:

  • Vahemälu kasutamine, mis vähendab HTTP-serverite koormust;
  • Koormuse jaotus HTTP-serverite vahel;
  • Varjata HTTP serverid ja nende omadused;
  • Serverite vastu suunatud veebirünnakute vältimine.

SQUIDi töörežiimide diagrammid

läbipaistev režiim

vastupidine režiim

autentimisrežiim

Näidatud diagrammidel näitavad rohelised nooled puhverserveri liiklusvooge. Nende voogude liikumist Linuxis reguleerivad enamasti brauseri jõud ja sätted. Lisaks täidab väga sageli ruuteri ja puhverserveri funktsioone üks masin.

SQUIDi installimine

Enne squid'i installimist ja konfigureerimist peate veenduma, et masinal, millel squid töötab, on juurdepääs välisvõrk ja klientidel, kes seda puhverserverit kasutavad, on juurdepääs sellele masinale. Squid puhverserveri installimine, nagu ka muu Linuxi tarkvara, on võimalik erinevatel viisidel artiklis kirjeldatud. Kirjeldan, kuidas installida Debiani hoidlast. Niisiis, squid installimiseks peate installima paketi squid3, selleks käivitage järgmine käsk:

Gw ~ # aptitude install squid3 Installitakse järgmised UUED paketid: libltdl7(a) squid-langpack(a) squid3 squid3-common(a) 0 paketti on värskendatud, 4 uut installitud, 0 paketti on märgitud eemaldamiseks ja 0 paketti pole värskendatud . Vaja on hankida 2157 kB arhiivi. Pärast lahtipakkimist on 10,3 MB hõivatud. Kas sa tahad jätkata? y Hangi: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 Saabus 2157 kB 9 sekundiga (238 kB/s) Varem valimata paketi libltdl7 valimine. (Andmebaasi lugemine... edasi Sel hetkel Paigaldatud on 41133 faili ja kataloogi.) Pakett libltdl7 on lahti pakitud (failist.../libltdl7_2.2.6b-2_i386.deb)... Varem valimata paketi squid-langpack valimine. Pakett squid-langpack on lahti pakitud (failist.../squid-langpack_20100628-1_all.deb)... Varem valimata paketi squid3-common valimine. Pakitakse lahti pakett squid3-common (failist.../squid3-common_3.1.6-1.2+squeeze2_all.deb)... Varem valimata paketi squid3 valimine. Pakett squid3 on lahti pakitud (failist.../squid3_3.1.6-1.2+squeeze2_i386.deb)... Man-db trigerid on töödeldud... Pakett libltdl7 (2.2.6b-2) on konfigureeritud. . Pakett squid-langpack on konfigureeritud (20100628-1) ... Squid3-tavalise paketi (3.1.6-1.2+squeeze2) seadistamine ... paketi squid3 seadistamine (3.1.6-1.2+squeeze2) ... Squid HTTP puhverserveri 3.x spoolkataloogi struktuuri loomine 2012/02/15 21:29:41| Vahetuskataloogide loomine Squid HTTP Proxy 3.x taaskäivitamine: squid3 Squid HTTP Proxy 3.x vahemälustruktuuri loomine ... (hoiatus). 2012/02/15 21:29:43| Vahetuskataloogide loomine.

Nagu näha, siis paketi paigaldamisel üritati luua vahemälu kataloog, aga sest see pole konfigureeritud, siis kuvatakse hoiatus. Samuti kalmaar lisatakse käivitamisele, käivitatakse ja võetakse vastu ühendusi kõigil liidestel. Aga sest see pole konfigureeritud, juurdepääs Interneti-lehtedele serveri kaudu on piiratud. Kalmaari konfiguratsioon asub aastal /etc/squid3/squid.conf ja koosneb enam kui 5,5 tuhandest reast ja selle süntaks ei erine praktiliselt ühegi teise teenuse konfiguratsioonist. Mõne seadistuse muutmisega ei tasu kiirustada. Siis ei saa te seda riisuda. Vaatame konfiguratsiooni, mida meile vaikimisi ilma kommentaaride ja tühjade ridadeta pakutakse:

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 a port 8 Safe_ports # 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 # registreerimata pordid acl Safe_ports port 280 # http-mgmt acl Safe_ports 9sport 9sport8 # failitegija acl Safe_ports port 777 # mitmekordne http acl CONNECT meetod CONNECT http_access luba haldur localhost http_juurdepääs keelake haldur http_juurdepääsu keelamine !Safe_ports http_access deny CONNECT !SSL_pordid http_juurdepääs luba kohaliku hosti http_juurdepääs keelake kõik c-giybin2 hilistarch31 stop_8? coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 värskendusmuster ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 värskendus._muster 0 20% 4320

Nagu näete, töötab vaikekonfiguratsioonis puhverserver ja lubab päringuid ainult aadressidelt 127.0.0.0/8. Peaksite kogu loendi hoolikalt üle vaatama ja kommenteerima read, mis sisaldavad tarbetute või kasutamata teenuste porte. Selle konfiguratsiooni täielikum mõistmine on pärast järgmiste jaotiste lugemist. See. kui käivitame puhverserverile osutava lunxi konsoolibrauseri, näeme antud lehte:

Gw ~ # # käivitage brauser, määrates ya.ru lehe: gw ~ # http_proxy=http://127.0.0.1:3128 lynx ya.ru Otsides "ya.ru" esimest korda gw ~ # # näeme logis juurdepääs määratud lehele: 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.203

Mõnda squid konfiguratsioonifaili parameetrit saab kasutada mitu korda (nt acl). Mõnda parameetrit, eriti neid, millel on üks väärtus, saab kasutada ainult üks kord. Samal ajal kasutatakse seda parameetrit 2 või enam korda kasutades viimane väärtus. Näiteks:

Logfile_rotate 10 # Mitu väärtust – viimane on 5 logfile_rotate 5

kalmaari majandamine

Parameetreid, millega teie distributsiooni squid kompileeriti, saate vaadata käsu squid3 -v abil. Näiteks Debianis on squeezy squid ehitatud allpool toodud parameetritega:

Prefix=/usr - teiste võtmete eesliide: --mandir=$(eesliide)/share/man - kataloog man-lehtede salvestamiseks --libexecdir=$(eesliide)/lib/squid3 - kataloog käivitatavate moodulitega (kaasa arvatud abilised) - -sysconfdir=/etc/squid3 – seadistuste salvestuskataloog --with-logdir=/var/log/squid3 – logisalvestuskataloog ja palju muud. jne...

Kalmaari seadistamine

Squid3 sätete kirjeldus Alustan sellest põhiseaded, mida on soovitatav teha mis tahes puhverserveri konfiguratsiooni seadistamisel. Kalmaari konfiguratsioon asub /etc/squid3/squid.conf, see on peamine konfiguratsioonifail, mis sisaldab kõiki sätteid. (IN Debiani distributsioonid ja RedHat vaatab käivitamisel ka lähtekonfiguratsioonifailide parameetreid /etc/default/squid3 Ja /etc/sysconfig/squid3 vastavalt). Samuti mainisin, et ridu on üle 5 tuhande ja et ei tasu kiirustada millegi seadistamisega ilma sellest kohe aru saamata. squid3 konfiguratsiooni süntaks klassikaline: read tähega # on kommentaarid, parameetrid read " parameetri väärtus", on võimalik kasutada. Mugavuse huvides on konfiguratsioonifail jagatud osadeks, kuid on oluline meeles pidada, et parameetrid sõelutakse prioriteedi järjekorras "ülevalt alla". Samuti kasutatakse kaasa parameetri saate ühendada väliseid konfiguratsioonifaile.

Vaikimisi lahendatakse Squid töötava hosti nimi kasutades gethostname (), sõltuvalt DNS-i seaded, ei suuda see mõnikord üheselt määrata nime, mis kuvatakse logides ja veaväljundites " Loodud ... serveris.com (squid/3.0.STABLE2)" Hostinime korrektseks salvestamiseks peate parameetrisse sisestama selle nime (FQDN??):

Nähtav_hostinimi minu puhverserver

Vaikimisi aktsepteerib squid kõigi liideste ühendusi. Kui meie server on üks võrguliidesed vaatab sisse välismaailm, siis on soovitav piirata ühendusi ainult kohalikul võrguliidesel (näiteks 10.0.0.10/24). Selle eest vastutav http_port parameeter:

Http_port 10.0.0.10:3128

Kuidas need parameetrid töötavad, näete järgmises loendis:

Gw ~ # # kontrolli deemonit enne seadistamist: gw ~ # netstat -antp | grep squ tcp 0 0 0.0.0.0:3128 0.0.0.0:* KUULAGE 25816/(kalmaar) gw ~ # # tehtud muudatusi: gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.0.2.10w:3.1.10. # # lugege uuesti modifitseeritud gw konfiguratsiooni ~ # /etc/init.d/squid3 reload Squid HTTP Proxy 3.x konfiguratsioonifailide uuesti laadimine. tehtud. gw ~ # # kontrollige tööd muudetud konfiguratsiooniga: gw ~ # netstat -antp | grep squ tcp 0 0 10.0.0.10:3128 0.0.0.0:* KUULAGE 25816/(kalmaar)

Nagu näete, töötab deemon nüüd ainult määratud võrgu liideses. Samuti väärib märkimist, et kalmaari uued versioonid (<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 tpuhver

Need parameetrid määravad puhverserveri töörežiimid. Näiteks tproxy (vana süntaks – läbipaistev) määrab režiimi. Need režiimid väärivad eraldi artikleid ja neid võidakse tulevikus kaaluda.

Nüüd peate konfigureerima klientarvuti ja kasutama Internetti. Kuid vaikimisi on juurdepääs lubatud ainult kohalikult hostilt ja veebile juurdepääsu proovimisel kuvatakse kasutajale tõrketeade "Juurdepääs keelatud". Logi /var/log/squid3/access.log sisaldab midagi sellist:

1329649479.831 0 10.0.1.55 TCP_DENIED/403 3923 HANKI http://ya.ru/ - PUUDUB/- text/html

Selleks, et kohaliku võrgu kliendid töötaksid, on see vajalik konfigureerida õigusi juurdepääsu kontrolli loendite abil.

Kalmaari juurdepääsu seadistamine

Tegelikult juurdepääsu seadetele on objekti kirjeldus juurdepääsu kaudu acl parameeter, ja siis luba või töökeeld kirjeldatud acl-objekti kasutades parameeter "http_access". Nende sätete lihtsaim vorming on järgmine:

Acl-loendi_nimi valiku_tüüp valiku_tüübi omadused

Kus acl- parameetrite kirjeldamine juurdepääsu kontrolli loend, mille nime annab väärtus loendi_nimi. Nimi on tõstutundlik. valiku_tüüp määrab tüübi, millele alljärgnev vastab valiku_tüüp. See omadus võib võtta selliseid tavaliselt kasutatavaid väärtusi nagu src(allikast) – päringu allikas, dst- sihtkoha aadress, arp- MAC-aadress, srcdomain Ja dstdomeen- vastavalt allika ja sihtkoha domeeninimi, sadamasse- sadam, proto- protokoll, aega- aeg ja palju teisi. Vastavalt sellele väärtus valiku_tüübi_omadused moodustatakse sõltuvalt valiku_tüüp.

Saate määrata mitu sama nime ja valiku_tüübiga acl-i rida, sel juhul ühendatakse acl-andmed loogilise VÕI-toiminguga ühte loendisse. Näiteks:

Acl-i sait dstdomain sait.com acl-sait dstdomain sait.org # sarnane kirjega: acl-sait dstdomain sait.com site.org

Sõnades kõlab see järgmiselt: juurdepääsuloend nimega sait omab kõiki saidile site.com VÕI site.org saadetud päringuid. Lisaks on pääste_nimed tõstutundlikud, mis tähendab, et acl-sait ja acl-sait on kaks erinevat juurdepääsuloendit.

Kui juurdepääsuloendid on loodud, kasutage http_access parameeter lubada või keelata juurdepääs määratud ACL-ile. Üldine kõnevorming on:

Http_access luba|keela [!]loendi_nimi

kus, http_juurdepääs- parameeter, mis määrab järgneva loareegli ( lubama) või keelud ( eitama) allpool täpsustatud juurdepääs loendi_nimi. Valikuline hüüumärk muudab aga loendi nime tähenduse ümber. See tähendab, hüüumärgiga tähendus loendi_nimi kõlab nagu kõik peale nende, kes sellesse nimekirja kuuluvad. Lisaks saab määrata mitu tühikuga eraldatud loendit, siis lubatakse juurdepääs, kui see kuulub kõikidesse määratud loenditesse. Sel juhul tuleb kõik lubamisreeglid määrata enne KÕIKI keelavaid reegleid:

Http_access keelab kõik

Võib tekkida mõistlik küsimus: miks seada see reegel, kui näiteks lubame kalmaarile juurdepääsu ainult valitud acl-idele? Ülejäänud, kes sellesse acl-i ei kuulu, lähevad ju "mööda"... See on lihtne. Vaikimisi kasutab squid luba/keela reeglit, mis on viimase vastand. Näiteks:

# meil on teatud kasutaja acl-i jaoks üks lubamisreegel: http_access luba kasutaja # kui klienti squid-ile juurdepääsul sellesse acl-i ei kaasata, rakendatakse sellele keelamistoimingut. # Ja kui meil on kaks reeglit http_access allow user http_access deny user2 # ja klient ei ole ei acl kasutaja ega acl kasutaja2 liige, siis rakendatakse sellele luba. # See tähendab, et vastupidine toiming eelmisele http_access deny user2

See, nagu öeldakse, on põhitõed. Vaatame lihtsat näidet. Oletame, et meil on kaks võrku 10.0.1.0/24 ja 10.0.0.0/24, samuti host 10.0.4.1, millele tuleb võimaldada juurdepääs Internetile. Juurdepääsu lubamiseks peate faili squid.conf jaotises "JUURDEJUURDE JUHTIMINE" looma uue juurdepääsuloendi kirjelduse:

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

Suurema mugavuse huvides saate need reeglid määrata eraldi failis, määrates asukohas selle tee valiku_tüübi_omadused. Siin:

Gw ~ # # loome eraldi kataloogi juurdepääsuloendite salvestamiseks gw ~ # mkdir /etc/squid3/acls/ gw ~ # # paneme meie alamvõrgud ja hostid eraldi faili 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 ~ # # kirjeldage loodud faili konfiguratsioonis (tee peab olema jutumärkides) gw ~ # grep lan.acl /etc /squid3/squid.conf acl lan src "/etc/squid3/acls/lan.acl"

Lubame loodud LAN-i juurdepääsuloendil juurdepääsu Internetti ja laseme kalmaaril konfiguratsioonifail uuesti läbi lugeda:

Gw ~ # grep lan /etc/squid3/squid.conf | grep acce http_access luba lan gw ~ # service squid3 reload Squid HTTP Proxy 3.x konfiguratsioonifailide uuesti laadimine. tehtud.

Selle jaotise lühikokkuvõtteks võime öelda, et acl tuvastab veebipäringu ja http_access lubab või keelab tuvastatud päringu. Nüüd saavad meie kohalikud kliendid pärast brauseri seadistamist Internetti hea meelega kasutada!

Kalmaari vahemälu sätete konfigureerimine

Kalmaari seadistamise oluline punkt on vahemälu parameetrite määramine kalmaaris. Vahemälu asukoht on määratud parameeter cache_dir failis squid.conf. Parameetri vorming on järgmine:

Cache_dir tüüpi tee suurus L1 L2

kus, tüüp- see on vahemälu moodustamise algoritm, võib-olla: ufs (unixi failisüsteem), aufs (async ufs), diskd(välised protsessid, et vältida kalmaari blokeerimist ketta I/O-s). Soovitatav kasutada ufs, kuigi mõned kiidavad aufs. Tee- määrab vahemälu asukoha failisüsteemis (peab eksisteerima ja omama kirjutamisõigusi kasutaja jaoks, kelle all squid töötab - tavaliselt puhverserver). Suurus- määrab maksimaalse suuruse, pärast mida hakatakse vahemälu tühjendama. Internetis on selle parameetri jaoks palju holivar. Ideaalne vahemälu suurus on olenevalt klientide arvust 2–10 GB. Ligikaudu 1 GB vahemälu iga 100 tuhande päringu kohta päevas. Jään 5 GB juurde. Squidis asub iga vahemällu salvestatud objekt eraldi failis, faile endid ühte kohta ei visata, vaid kasutatakse kahetasandilist kataloogihierarhiat. 1. ja 2. taseme kataloogide arv ja määrake parameetrid L1 ja L2. Need väärtused võib jätta vaikeväärtusteks. Kuid et aidata teil olukorras navigeerida, annan teile tsitaadi saidilt bog.pp.ru:

Katse näitas, et 700 MB vahemälu puhul kasutatakse ainult 2 esimese taseme kataloogi. See tähendab, et standardse vahemälu kataloogistruktuuri jaoks mahub miljon objekti (9 GB) "mugavalt" sisse; kui neid on rohkem, peate suurendama tipptaseme kataloogide arvu.

Võite kasutada mitut cache_dir. See mõjutab jõudlust positiivselt, eriti kui vahemälu on paigutatud erinevatele ketastele. Vahemälu saab veelgi kiirendada, kui asetate vahemälu tmpfs-i. Iga parameetri jaoks cache_dir võimalik sisse valikute jaotis defineerige kirjutuskaitstud (kirjutuskaitstud) ja max-size (objekti maksimaalne suurus) parameeter.

Vahemälus oleva objekti maksimaalne suurus määratakse parameetri maximum_object_size järgi, on vaikeväärtus 4 MB. Suurendasin selle väärtuse 60 MB-ni, kuna... Kohalikus võrgus olevad töötajad peavad sageli alla laadima sama tüüpi faile kuni määratud suuruseni:

Objekti maksimaalne_suurus 61440 KB

Samamoodi? on olemas ka parameeter minimaalne_objekti suurus vastutab objekti minimaalse suuruse eest; vaikimisi on selle väärtus "0", st keelatud. Soovitan suurendada selle parameetri väärtust 2-3 KB-ni, mis vähendab väikeste objektide otsimisel ketta koormust.

RAM-i maht, mida kalmaar kasutab, on täpsustatud parameeter cache_mem, vaikeväärtus on 256 MB (versioonis 3.1). Jätsin selle väärtuse vaikeväärtuseks. Peaksite seda väärtust muutma ainult siis, kui kalmaar palub teil seda logides teha. Pärast neid muudatusi peate kalmaari taaskäivitama ja luuakse kataloogistruktuur:

Gw ~ # teenuse squid3 käivitamine Squid HTTP-puhverserveri 3.x käivitamine: squid3Squid HTTP-puhverserveri 3.x vahemälustruktuuri loomine ... (hoiatus). 2012/02/19 22:58:21| Vahetuskataloogide loomine 2012/02/19 22:58:21| /var/spool/squid3 on olemas 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/00 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/01 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/02 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/03 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/04 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/05 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/06 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/07 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/08 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/09 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/0A 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/0B 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/0C 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/0D 2012/02/19 22:58:21| Kataloogide tegemine failis /var/spool/squid3/0E 2012/02/19 22:58:21| Kataloogide loomine failis /var/spool/squid3/0F.

Kirjeldatakse palju huvitavaid küsimusi ja vastuseid neile vahemälu ja mälu kasutamise kohta squid'i poolt, millega saame lugeda puhverserveri seadistamise standardlahenduse lõpetatuks.

Läbipaistva kalmaari puhverserveri seadistamise näide

Mis on läbipaistev puhverserver? See on puhverserveri töörežiim, kui klient pole konfigureeritav töötada puhverserveri kaudu ja saadab päringuid võrku HTTP-protokolli kaudu, nagu töötaks brauseri klient otse veebiserveriga. Samal ajal saadetakse väljaminevad HTTP-päringud porti, millel puhverserver töötab. Puhverserver omakorda teisendab HTTP-päringud puhverserveri protokolli päringuteks ja saadab vastused kliendile, nagu veebiserver. See. Puhverserveriga suhtlemine toimub kliendi jaoks läbipaistvalt.

Oluline on mõista ja teada! See meetod toetab Ainult HTTP-protokoll, ja ei toeta gopheri, FTP-d ega muud puhverserverit. Samuti ei saa Squid korraga töötada läbipaistvas režiimis ja autentimisrežiimis.

Läbipaistva režiimi konfigureerimiseks peate:

1. Määrake läbipaistev režiim puhverserveri seadetes. Seda tehakse sisse http_port parameeter, Näiteks:

Http_port ip:port läbipaistev

2. Wrapi kasutajad vastav reegel soovitud porti kasutades iptablesi:

Iptables -t nat -A PREROUTING -i sissetuleva_liidese_nimi -s local_network_subnet -p tcp --dport 80 -j REDIRECT --port squid_port, näide: iptables -t nat -EELREUTING -i eth1 -s 10.0.0. p tcp --dport 80 -j REDIRECT --porti 3128

Kõik. Seda saavad nautida meie puhverserveri pakitud ja pahaaimamatud kasutajad.

Veaotsing

Esiteks, kalmaari operatsiooni diagnostika on ajakirjade sirvimine asub aastal /var/log/squid3. Enamik probleeme lahendatakse sel viisil. Kui see ei aidanud probleemi lahendada, lülitage deemon käsuga silumisrežiimi squid3 -k silumine probleemi on lihtsam leida. Tegelikult, mis on kalmaari palk? Logifailid sisaldavad erinevat teavet kalmaari koormuse ja jõudluse kohta. Lisaks juurdepääsuteabele kirjutatakse logisse ka süsteemivead ja teave ressursside tarbimise kohta, näiteks mälu või kettaruumi kohta.

Squid logi failivorming on väärtuste jada, mis on eraldatud ühe või mitme tühikuga:

Time.ms vastuseaeg ip_src Squid_req_status/HTTP_status byte_snd meetod URL kasutaja squid_her_status/ip_dst MIME

  • aega- aeg unix-vormingus (sekundite arv alates 00:00 1970.01.01)
  • Prl- millisekundite täpsusega 3 numbrit
  • reaktsiooniaeg- reageerimisaeg, millisekundid
  • ip_src- lähte IP-aadress
  • Squid_req_status- kalmaari päringu olek (näiteks TCP_HIT varem vahemällu salvestatud objektide puhul, TCP_MISS, kui taotletud objekti ei võeta kohalikust vahemälust, UDP_HIT ja UDP_MISS on samad vennaste päringute puhul)
  • HTTP_status- http-protokolli olek (200 edukaks, 000 UDP-päringuteks, 403 ümbersuunamiseks, 500 vigadeks)
  • bait_snd- edastatud, vastuseks bait, sealhulgas HTTP päis
  • meetod- taotlemise meetod GET või POST
  • URL- taotletud URL
  • kasutaja- volitatud kasutaja nimi
  • kalmaari_tema_staatus- kalmaari hierarhia olek - venna/vanema vahemälu päringute tulemus
  • ip_dst- taotletud sõlme IP-aadress
  • MIME- miim-tüüpi

Vaatame näidet:

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

Nagu näete, päring tehti numbril 1329732295.053, kaugserveri vastus oli 374 ms, lehte küsinud hostil on IP 10.0.1.55, taotletud objekti ei edastatud kohalikust vahemälust (TCP_MISS), server vastuse kood oli 200, kliendile kanti GET meetodil 1475 baiti, küsiti URL http://www.youtube.com/live_comments?, kasutajanimi oli määramata, objekt saadi otse serverist IP-ga 173.194.69.91, tekst edastati, sest mime – tekst/xml. Siin.

Mõned viimased punktid kalmaari kohta3

Artiklis vaatasin üle puhverserveri põhiprintsiibid, aga ka põhiseaded, mis võimaldavad teil rakendada lihtsat vahemällu salvestavat serverit, samuti korraldada kalmaari tööd läbipaistvas režiimis. Squid toetab mitmeid autoriseerimisvõimalusi (IP, LDAP, MySQL, NTLM jne kaudu), võimalust piirata kanali ribalaiust ja kontrollida juurdepääsu Interneti-ressurssidele. SQUIDi toimimist erinevate autoriseerimismeetoditega ja liikluskorralduse näidetega käsitlen järgmistes artiklites.

Alustuseks kujutame ette, et meil on tavaline võrk, mis loob Interneti-ühenduse ühe lüüsi kaudu (siia on installitud Squidi puhverserver). Oletame, et lüüsi IP-aadress on 192.168.1.1. Kõik teised võrgus olevad arvutid saavad IP-sätted DHCP kaudu. Võrgus olevad arvutid on erinevad, Windows XP/7, Ubuntu ja kes teab mis. Kõigil ei saa silma peal hoida. Kuid me peame loendama liiklust, kiirendades samal ajal juurdepääsu Internetile, peame kontrollima (vähemalt "lollidelt") juurdepääsu Internetile jne. Squidil on laialdased võimalused logimiseks, juurdepääsu piiramiseks jne. Seetõttu peame kõik võrgu arvutid ei saanud meie Squidi puhverserverist mööda minna. Seetõttu peame klientarvutite päringud igal juhul saatma (sulgema, edastama) ainult Squidi puhverserveri kaudu.

Pordi suunamise seadistamine

Kui kohaliku võrgu kliendid pääsevad juurde välistele saitidele, peab Squid päringu kliendi jaoks läbipaistvalt kinni püüdma ja seda vastavalt oma reeglitele töötlema – otsustama, millist sisu edastada, kas kasutaja tegevust logida ja kas sellel kasutajal on üldse juurdepääs Internetile. Meie ülesanne on veenduda, et kliendil endal pole vaja brauseri seadeid teha. Klient on lihtsalt kohaliku võrguga ühenduse loonud ja töötab juba meie puhverserveri kaudu ja MITTE muul viisil. Need. isegi kui keegi soovib meie puhverserverist mööda minna, ei saa ta seda enam ilma trikkideta teha.

Pordi edastamine FreeBSD-s

Kui meie lüüsi on installitud FreeBSD ja vaiketulemüür on IPFW, siis selle ülesande täitmiseks peame installima lüüsi pordi suunamise:

# Suuna ümber kohalikule puhverserverile
/sbin/ipfw lisab 0170 fwd 127.0.0.1,3128 tcp väärtuselt 192.168.1.0/24 mis tahes 80-le

  • 0170 - reegli number (teie puhul võib see olla ükskõik milline).
  • fwd 127.0.0.1,3128 - kuhu me saadame paketid - meie puhul meie armastatud Squidile, mis töötab lüüsi pordis 3128 - ...
  • alates 192.168.1.0/24 - ... saadetud kohaliku võrgu arvutite poolt...
  • mis tahes 80 - ... mis tahes veebisaidile Internetis

Nüüd tähelepanu! See reegel tuleb lisada ENNE NAT-reegleid(Võrguaadressi tõlge) saab selle päringu. Lubage mul selgitada veidi mitteakadeemiliselt: mida NAT teeb? Meie puhul muudab NAT lähteaadressi (asendab kliendi kohaliku IP lüüsi välise IP-ga ja jätab meelde, milliselt sisekliendilt päring pärineb. Selleks, et Squid saaks kliendi päringu töödelda, ei pea ta millegi teisendamiseks - saab sellega ise hakkama.Seetõttu peab Squid paki algsel kujul vastu võtma ja ise otsustama, mida edasi teha.

Lisaks on NAT ja Squid ikka erinevad asjad ning näiteks 2.3.4.5:80-le adresseeritud pakett ei sisalda infot, kuidas Squidisse (lüüsi pordi 3128) pääseda. Ja paketti töötleb ainult NAT. Kalmaar ei näe pakki kunagi. Seetõttu on meie ülesanne lihtsalt anda Squidile pakett, mille kasutaja brauser saatis. Selgitan, kasutades näitena osa ipfw konfiguratsioonist:

Cmd="ipfw -q add" $skip="skipto 5000" pif="xl1" #väline liides... # Suuna ümber kohalikule puhverserverile $cmd 0170 fwd 127.0.0.1,3128 tcp väärtuselt 192.168.1.0/24 suvalisele 80-le # NAT $cmd 0200 suunab natd ip mis tahes asukohast suvalisse sisse $pif kaudu # Luba oleku säilitamise avaldus. $cmd 0201 check-state # POP3/POP3S $cmd 0325 $Jäta tcp vahele mis tahes 110 väljundist $pif setup keep-state kaudu $cmd 0326 $jäta tcp vahele mis tahes 995 väljundisse $pif setup keep-state # WWW (HTTP/HTTPS/..) $cmd 0350 $vaheta tcp mis tahes 80 väljundisse $pif seadistuse Keep-state kaudu $cmd 0352 $jätke tcp vahele mis tahes 443 väljundisse $pif seadistuse abil keep-state # See on vahelejätmine väljamineva olekuga reeglite asukoht $cmd 5000 suunata natd ip mis tahes väljundilt $pif kaudu ...

Ülaltoodud konfiguratsioonis töödeldakse saidi avamise taotlust esmalt reegliga 0170, mis mähib päringu Squidi. Squid (nagu iga teinegi programm) täidab ka tulemüüri nõuded - ainult selle puhul reegel 0170 ei kehti, aga reegel 0350 lubab Squidil päringu internetti saata. Ilma Squidita Internetti pääsemiseks peate reegli 0170 välja kommenteerima. Sel juhul ei saa Squid midagi ja kõiki kohaliku võrgu brauseri taotlusi töödeldakse reegli 0350 järgi.

Pordi edastamine Linuxis

Kui meie lüüsi on installitud Linux, näeb ülaltoodud käsk välja järgmine:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --port 3128

kus eth0 on sisemine liides.

Muidu on ümbersuunamiste jms tähendus sarnane sellega, kuidas seda ipfw puhul seletati. Ainult ipfw ja iptablesi konfiguratsioonifailide koostamise reeglid erinevad. Uurida saab iptablesi reeglite näidet.

See on lahendatud. Nüüd peame andma Squidile korralduse, et see töötleks pakette, mis polnud talle algselt suunatud. Lülitame sisse kalmaari läbipaistvusrežiimi.

Läbipaistev kalmaar failis squid.conf

Nüüd jääb üle vaid Squid konfigureerida nähtamatus režiimis, st. automaatselt edastatud pakette vastu võtma ja neid töötlema. Squidi erinevates versioonides vastutasid selle eest erinevad meeskonnad. Squidi versiooni 2.6.* seadistamine näeb välja selline:

http_port 127.0.0.1:3128 läbipaistev # Squid töötab läbipaistvas režiimis

Vaadake hoolikalt üle konfiguratsioonifail squid.conf dubleerivate käskkirjade jaoks – kulutasin kaks tundi oma ajast foorumi poole pöördudes abi saamiseks "mittestandardse probleemiga", samas kui ma lihtsalt ei pööranud tähelepanu asjaolule, et esimene rida võimaldas tavaline kalmaari töörežiim:

http_port 3128 # Squid töötab normaalselt

Peaaegu kõik. Taaskäivitage Squid, rakendage tulemüüri reegleid lisatud pordi suunamise käsuga - nüüd ei saa ükski kohaliku võrgu arvuti, mis pääseb Internetti meie lüüsi kaudu, mööda meie Squidist, mis on muutunud kõigile läbipaistvaks. Proovige nüüd mõnes arvutis puhverserverit seadistada - arvutil ei peaks olema Interneti-ühendust. Vaata, see on kõik. Kui teil on küsimusi või nõuandeid, on kommentaarid teretulnud, eriti kui arvestada, et läbipaistva Squid'i ja portide edastamise seadistamine on foorumites üldiselt "haige" teema.

Eelised ja miinused

Üks eeliseid on absoluutne kindlus, et Squid töötleb kõiki pordi 80 (veebi standard) päringuid. Sellest lähtuvalt on olemas logid, ülemuse statistika ja pole vaja ringi joosta ja kõike käsitsi seadistada.

Puuduste hulka kuuluvad:

  • suutmatus (vähemalt lihtsal viisil) lubada kasutajatel Internetti pääseda;
  • Kui Squid ootamatult kokku jookseb, peatatakse juurdepääs saitidele. Seetõttu peab administraator olema kindel, et kõik on korras, või saama kaugjuhtimisega tulemüüri konfiguratsiooni muuta või kirjutama skripti, mis kontrollib automaatselt, kas Squid ripub pordis 3128, ja kui ei, siis käivitab selle.

Squidi konfigureerimine läbipaistvas režiimis on lõpetatud. See on nüüd kõik.

Squid on võimas pakett, mis rakendab seda läbivate päringute puhverserverit ja millel on tohutu hulk võimalusi. Kohalikus võrgus kasutatakse seda kõige sagedamini läbipaistva vahemälu puhverserverina. Seadistame kalmaari 3 peamist omadust järjekorras.

1. Esmalt installige squid (Debian 6 jaoks)

Apt-get install squid3

2. Konfiguratsioonifail squid.conf asub /etc/squid3/. See sisaldab umbes 5,5 tuhat rida. Kuid see pole nii hirmutav; suurem osa sellest failist on sätete üksikasjalikud kommentaarid. Teie otsustada, kuidas on mugavam failis muudatusi teha. Nii saab failis kõigest ebavajalikust lahti saada

# minge kausta squid cd /etc/squid3 # tehke cp-sätete failist squid.conf squid.conf_backup varukoopia # hankige saidilt squid.conf_backup puhas, kommentaarideta fail failis squid.conf cat squid.conf_backup | egrep -v "^#|^$" > squid.conf

ja hankige "alasti" fail järgmise sisuga:

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 port acl Safe_1 port acl port 80 #fefts port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # registreerimata pordid acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 acl acl a5-portmaker # gsfe_portmaker # Safe_portsport 777 # mitmekordne http acl CONNECT meetod CONNECT http_access luba haldur localhost http_juurdepääsu keelamine haldur http_juurdepääsu keelamine !Turvalised_pordid http_juurdepääsu keelamine CONNECT !SSL_pordid http_juurdepääs luba kohaliku hosti http_juurdepääsu keelamine http_port 3128 hierarchy_stoplist cgi-bin? coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 värskendusmuster ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 värskendus._muster 0 20% 4320

Jääb vaid teha ridades vajalikud muudatused. Teine võimalus on redigeerida kogu faili ilma seda puhastamata. Mis on samuti üsna lihtne, kui tead, kuidas vi-redaktoris otsingut kasutada. Sel juhul saate seadete kohta palju kasulikke kommentaare, mis teid aitavad.

Teksti otsimiseks vi-redaktoris vajutage klahvi “/”. Kui olete redigeerimisrežiimis, peate redigeerijale käskude saatmiseks sellest väljuma, vajutades "Esc". Saame järgmise toimingute jada: "/" > "sisestage otsingusõna" > "Sisesta".

Nüüd muudame faili ja teeme põhiseaded. Kui vajalikke ridu pole, lisage need või tühjendage kommentaarid.

Vi /etc/squid3/squid.conf # Luba juurdepääs puhverserverile ainult leitud võrgust acl localnet src 172.16.0.0/24 http_access luba kohalikku võrku http_access enable localhost # Vaikimisi on puhverserveri tööport 3128 # Kuna meie puhverserver on läbipaistev, märgime selle # ja liidese aadressi pordiga, millel puhverserver töötab # päringud iptablesis suunatakse samasse porti http_port 172.16.0.1:3128 läbipaistev

3. Pakume taotluste vahemällu salvestamist

# Vahemälu kataloogi seadistamine ja seadistamine # ufs - meetod failide vahemällu salvestamiseks kettal # /var/spool/squid3 - vahemälu kaust # 5000 - vahemälu suurus megabaitides # 16 - 1. taseme kaustade arv vahemälus # 256 - number vahemälu 2. taseme kaustadest cache_dir ufs /var/spool/squid3 5000 16 256 # piirame vahemällu salvestatud faili minimaalset suurust, et kõvakettal oleks lihtsam # või võite kaotada kogu vahemälu sisu, kui see töötab aeglaselt minimum_object_size 2 KB # piirame ka maksimaalset suurust maximum_object_size 61440 KB

4. Vaikimisi konfigureeritud Squid lisab mitu oma päist http-päringule. Sel juhul sisaldavad kaks esimest päist kliendi IP-d (puhverserveri ahela puhul isegi mitut IP-d). Kui me ei vaja seda näiteks, me ei taha avaldada oma kohaliku piirkonna sisemist IP-d, on kalmaari anonüümseks muutmine väga lihtne

Via off forwarded_for delete

Pärast kõigi sätete täitmist tasub kontrollida taotluste anonüümsust lehel http://checker.samair.ru Kui kõik on õigesti tehtud, kuvatakse tulemuseks teade "Jätka: kasutate kõrge anonüümsust (eliit) puhverserver."

See viib faili muudatuste tegemise lõpule. Lõppkokkuvõttes peaks squid.conf välja nägema selline

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 localnet src 172.16.0.0/24 # RFCLSSport4 võimalik sisemine võrk1918 port4 aclssfe Port 80 # HTTP ACL SAFE_PORTS PORT 21 # FTP ACL SAFE_SORTS PORT 443 # HTTPS ACL SAFE_PORTS PORT 70 # GOPER ACL ACL SAFE_PORTS PORT 210 # WAIS ACL ACL SAFE_PORTS PORT 1025-65535 # Registreerimata ports gss-http acl Safe_ports port 591 # failitegija acl Safe_ports port 777 # mitmekordne http acl CONNECT meetod CONNECT http_access luba haldur localhost http_access keela haldur http_juurdepääsu keelamine !Safe_ports http_access keela http CONNECT !SSL_ports lubab kohalikku võrguühendust http_accesstacces_ 172.16.0.1: 3128 läbipaistev hierarchy_stoplist cgi-bin ? cache_dir ufs /var/spool/squid3 5000 16 256 minimaalne_objekti_suurus 2 KB maksimaalne_objekti_suurus 61440 KB coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% ref40:pattern1 ^1pher_pattern1 40 värskendusmuster - i(/cgi-bin/| \?) 0 0% 0 värskendusmuster . 0 20% 4320 kaudu off forwarded_for delete

Seadete rakendamiseks peatage squid

Teeninduskalmaar3 peatus

Valmistage ette kalmaari vahemälu kataloog

Kalmaar3 -z

Puhverserveri käivitamine

Service squid3 algus

Kui te pole puhverserveri vahemäluga seotud sätteid muutnud, saate käivitada ühe käsu. Seaded aktsepteeritakse automaatselt ilma squid'i taaskäivitamiseta.

Squid3 -k uuesti seadistada

5. Jääb üle vaid puhverserveri läbipaistvus seadistada. See tagab, et kohaliku võrgu kasutajad saavad puhverserveri kaudu märkamatult töötada, s.t. kasutajad ei pea programme puhverserveritega töötamiseks konfigureerima. Läbipaistvuse tagab lihtsalt http-päringute suunamine pordist 80 puhverserveri porti, kasutades iptablesi tulemüüri ja lubades läbipaistva puhverserveri režiimi squidis endas. Muutsime ülaltoodud kalmaari seadeid. Lisage iptablesi reeglitele veel üks rida:

Iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --port 3128

Määrake parameetris kindlasti soovitud liides, millel puhverserver töötab: -i eth0. See säästab teid probleemidest Internetist veebiserverisse pääsemisel, kui aktiivseid liideseid on rohkem kui üks, kui see on selles serveris tulevikus. Ja ka puhverserveri turvalisuse huvides.