Kaip valdyti žiniatinklio srautą naudojant „Squid Cache“ ir „Cisco Router“ sistemoje „Linux“.


Viena iš svarbių užduočių tinkle yra valdyti ir valdyti darbuotojų, naršančių internete, srautus. Yra daug sprendimų, galinčių išspręsti šią problemą, vienas geriausių sprendimų yra naudoti kalmarų talpyklą Linux kompiuteryje. Squid gali tikrinti, apriboti ir talpykloje saugoti žiniatinklio srautą iš vieno tinklo į kitą tinklą, pavyzdžiui, iš LAN į internetą.

Yra keletas būdų, kaip nukreipti kliento žiniatinklio užklausas į squid mašiną. Šiame straipsnyje parodysime, kaip nukreipti žiniatinklio srautą iš CISCO maršrutizatoriaus į Squid Cache įrenginį naudojant WCCP protokolą.

Toliau pateiktame paveikslėlyje yra pagrindinio scenarijaus pavyzdys.

Kaip matote aukščiau esančiame paveikslėlyje, visas kliento žiniatinklio srautas pirmiausia nukreipiamas į Cisco Router (tai yra jų numatytasis šliuzas), tada maršrutizatorius tyliai peradresuoja paketus į squid mašiną, dabar squid gali atlikti savo vaidmenis, pagrindiniai vaidmenys yra talpykloje saugoti žiniatinklio turinį, apriboti prieigą pagal domenus, laiko intervalus, IP adresus, failų dydį ir kt.

Šio scenarijaus konfigūraciją peržiūrime dviem pagrindiniais žingsniais: pirmiausia turėtume įdiegti ir sukonfigūruoti squid ir Linux, tada sukonfigūruoti maršrutizatorių, kad žiniatinklio srauto paketai būtų nukreipti į squid naudodami WCCP protokolą.

Testavimo aplinka

Pagal šį scenarijų naudoju CENTOS 6.5 kaip LINUX serverį ir Cisco 2691 kaip maršrutizatoriaus sistemą.

Operating System: CENTOS 6.5
Application: Squid
Router: Cisco 2691

1 veiksmas: įdiekite „Squid Cache“.

„Squid“ pasiekiama numatytojoje CENTOS saugykloje. Pirmiausia ją įdiegiame naudodami komandą lovely yum, tada paleidžiame jų paslaugas ir galiausiai nustatome automatinį squid paslaugos paleidimą.

yum -y install squid
service squid start
chkconfig squid on

2 veiksmas: Squid Cache paruošimas

Dabar turime pakeisti kai kuriuos numatytuosius centos operacinės sistemos veiksmus, turime įjungti paketų persiuntimą ir išjungti atvirkštinio kelio filtrą (RPF), įgalinti paketų persiuntimą, kad centos veiktų kaip skaidrus peradresatorius (pvz. maršrutizatorius).

Leiskite man paaiškinti išsamiau, kai srautas gaunamas centais, jis turi savo šaltinio ir paskirties adresus, pavyzdžiui, kai klientas savo naršyklėje įveda www.example.com, sugeneruoja http užklausos paketą ir jis turėti kliento įrenginio šaltinio IP adresą (pvz., 192.168.1.20) ir example.com serverio paskirties IP adresą (pvz., 2.2.2.2).

Taigi, kai paketą gauna centos, jis aptinka kaip neteisingą paketą, nes centos ip adresas nėra kaip paketo paskirties adresas, saugumo sumetimais centos paketą atmeta, bet norime, kad squid veiktų skaidriu režimu. Mes pranešame apie šią situaciją „centos“ įjungdami paketų persiuntimo gėrimą.

Tada turėtume išjungti atvirkštinio kelio filtravimą, kad centos galėtų priimti paketus, kurių nepasiekia squid mašina, arba paketus, kurie neturi IP adreso tame pačiame squid mašinos potinklyje.

nano /etc/sysctl.conf
net.ipv4.ip_forward = 1 #set to 1 for enable the packet forwarding feature
net.ipv4.conf.default.rp_filter = 0 # set to 0 for disable the reverse path filter behavior

Toliau turime sukurti GRE sąsają CENTOS įrenginyje, kam? Leiskite paaiškinti plačiau, WCCP protokolas veikia per GRE tunelį, tai reiškia, kad kalba tarp maršrutizatoriaus ir Squid yra GRE, todėl centos turi turėti GRE sąsają inkapsuliuoti GRE paketus.

Turėtume sukurti GRE sąsajos konfigūracijos failą kelyje /etc/sysconfig/network-script/ifcfg-gre0.

Įveskite toliau nurodytus kodus į ifcfg-gre0 konfigūracijos failą.

DEVICE=gre0
BOOTPROTO=static
IPADDR=10.0.0.2         #unused ip address in your network
NETMASK=255.255.255.252
ONBOOT=yes
IPV6INIT=no

Sukūrę GRE sąsają, turime iš naujo paleisti tinklo paslaugą.

service network restart

3 veiksmas: „Squid“ talpyklos konfigūravimas

Turime pasakyti, kad kalmarai priima WCCP paketus iš maršrutizatoriaus. Įveskite toliau nurodytus kodus /etc/squid/squid.conf faile.

http_port 3128 intercept                 # Define SQUID listening port
wccp2_router 192.168.1.254          #ip address of the router
wccp2_forwarding_method gre
wccp2_return_method gre
wccp2_service standard 0

Išsaugokite konfigūracijos failą ir iš naujo paleiskite squid paslaugą.

service squid restart

Squid klauso paketų per 3128 prievadą, bet mūsų paketo paskirties prievado numeris yra 80, todėl norint pakeisti paskirties prievadą 80 į 3128<, turime sukurti NAT taisyklę CENTOS integruotoje užkardoje (kurios pavadinimas yra iptable).

iptables -t nat -A PREROUTING -i gre0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -j MASQUERADE

4 veiksmas: „Cisco Router“ konfigūracijos

Pirmiausia turėtume įjungti WCCP cisco maršrutizatoriuje.

R1(config)# ip wccp version 2
Then we must use an ACL for introducing SQUID cache machine to router
R1(config)# ip access-list standard SQUID-MACHINE
R1(config-std-nacl)# permit host 192.168.1.10

Tada apibrėžiame kitą prieigos sąrašą dviem skirtingais tikslais, pirmiausia, išskyrus SQUID srautų peradresavimą naudojant WCCP protokolą (jei ne, mes patenkame į begalinį kilpą!!), o tada apibrėžiame kurį LAN srautą norime perduoti per WCCP ir SQUID.

R1(config)#ip access-list LAN-TRAFFICS
R1(config-ext-nacl)#deny ip host 192.168.1.10 any                            #Prevent SQUID to get in loop
R1(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 any equal www           #define LAN Traffics

Sukūrę prieigos sąrašą, maršrutizatoriuje turime sukonfigūruoti WCCP protokolą.

R1(config)# ip wccp web-cache redirect-list LAN-TRAFFIC group-list SQUID-MACHINE

Visi dalykai yra paruošti paskutiniam žingsniui, turime pasakyti maršrutizatoriui, kurioje sąsajoje/sąsajose jis turi nukreipti srautą naudodamas WCCP konfigūraciją.

R1(config)#interface fastEthernet 0/0
R1((config-if)# ip wccp web-cache redirect in

Santrauka

Atėjo laikas apibendrinti visas komandas ir tekstus keliomis eilutėmis, kad būtų geriau suprasti. Pagal scenarijų mes peradresuojame štabų naršymo žiniatinklyje paketus (tai yra TCP 80 prievade) iš ROUTER (tai yra numatytasis tinklo šliuzas). klientai) link kalmarų talpyklos mašinos, naudojant WCCP protokolą.

Visi šie procesai vyko tyliai ir kliento pusėje nėra jokios papildomos konfigūracijos. Taigi galime valdyti ir nustatyti žiniatinklio srautų LAN tinkle politiką. Pavyzdžiui, galime gauti prieigą prie interneto naršymo tik per ribotą laiką, apriboti maksimalų atsisiuntimo dydį, apibrėžti savo pasirinktinį juodąjį ir baltąjį sąrašą, generuoti visas ataskaitas apie naudojimąsi internetu ir pan.

Vienas iš įdomių šio scenarijaus faktų yra tai, kad kalmarų mašina sugenda maršrutizatorius aptinka šią problemą ir nustoja nukreipti į ją paketus, kad galėtumėte mėgautis savo tinkle be prastovų.

Jei turite klausimų dėl šio straipsnio, palikite atsakymą per žemiau esantį komentarų laukelį.