Kako kontrolirati web promet koristeći Squid Cache i Cisco usmjerivač u Linuxu


Jedan važan zadatak u mreži je kontrola i upravljanje prometom surfanja webom osoblja, postoje mnoga rješenja koja mogu riješiti ovaj problem, jedno od najboljih rješenja je korištenje predmemorije squid na Linux stroju. Squid može pregledavati, ograničavati i keširati mrežni promet koji teče s jedne mreže na drugu mrežu, na primjer s LAN-a na Internet.

Postoji nekoliko načina za preusmjeravanje klijentovih web zahtjeva na squid stroj, u ovom članku ćemo vam pokazati kako preusmjeriti web promet sa CISCO usmjerivača na Squid Cache stroj pomoću WCCP protokola.

Slika ispod je primjer osnovnog scenarija.

Kao što vidite na gornjoj slici, sav klijentov web promet prvo ide na Cisco usmjerivač (To je njihov zadani pristupnik), zatim usmjerivač tiho preusmjerava pakete na squid stroj, sada squid može igrati svoje uloge, glavna uloga je predmemoriranje web sadržaja, ograničavanje pristupa na temelju domena, vremenskih intervala, ip adresa, veličine datoteka itd.

Pregledavamo konfiguraciju ovog scenarija u dva glavna koraka, prvo bismo trebali instalirati i konfigurirati squid i Linux, zatim konfigurirati usmjerivač za preusmjeravanje paketa web prometa u squid koristeći WCCP protokol.

Okruženje za testiranje

U ovom scenariju koristim CENTOS 6.5 kao svoj LINUX poslužitelj i Cisco 2691 kao svoj sustav usmjerivača.

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

Korak 1: Instalacija Squid Cachea

Squid je dostupan u zadanom repozitoriju CENTOS-a, prvo ga instaliramo pomoću lijepe naredbe yum, a zatim pokrećemo njihove usluge i na kraju postavljamo automatsko pokretanje usluge squid.

yum -y install squid
service squid start
chkconfig squid on

Korak 2: Priprema Squid Cachea

Sada moramo promijeniti neka zadana ponašanja operativnog sustava centos, moramo omogućiti prosljeđivanje paketa i onemogućiti filtar obrnutog puta (RPF), omogućujemo prosljeđivanje paketa kako bi centos djelovao kao transparentni prosljeđivač (poput usmjerivač).

Dopustite mi da detaljnije objasnim, kada promet dođe u centos, on ima svoje izvorne i odredišne adrese, na primjer, kada klijent unese www.example.com u svom pregledniku, generira se paket http zahtjeva i imaju izvornu IP adresu klijentskog računala (kao 192.168.1.20) i odredišnu IP adresu poslužitelja example.com (kao 2.2.2.2).

Dakle, kada paket primi centos, detektira ga kao pogrešan paket jer centos ip adresa nije odredišna adresa paketa, iz sigurnosnih razloga centos odbacuje paket, ali mi želimo da squid djeluje u transparentnom načinu. Ovu situaciju javljamo centosima tako što omogućujemo napitak za prosljeđivanje paketa.

Zatim bismo trebali onemogućiti filtriranje obrnutog puta kako bismo centosima omogućili prihvaćanje paketa kojima squid stroj ne može pristupiti ili pakete koji nemaju IP adresu u istoj podmreži squid stroja.

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

Zatim moramo stvoriti GRE sučelje na CENTOS stroju, za što?? Dopustite mi da objasnim više, WCCP protokol radi kroz GRE tunel, to znači da je jezik između routera i Squida GRE, tako da centos mora imati GRE sučelje za De- enkapsulirati GRE pakete.

Trebali bismo kreirati konfiguracijsku datoteku za GRE sučelje na putu “/etc/sysconfig/network-script/ifcfg-gre0”.

Unesite donje kodove u konfiguracijsku datoteku ifcfg-gre0.

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

Nakon izrade GRE sučelja moramo ponovno pokrenuti mrežnu uslugu.

service network restart

Korak 3: Konfiguriranje Squid Cachea

Moramo reći lignji da prihvaća WCCP pakete od routera. Unesite donje kodove u datoteku /etc/squid/squid.conf.

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

Spremite konfiguracijsku datoteku i ponovno pokrenite squid servis.

service squid restart

Squid sluša pakete u portu 3128, ali broj odredišnog porta našeg paketa je 80, tako da za promjenu odredišnog porta 80 u 3128<, moramo stvoriti pravilo NAT na CENTOS integriranom vatrozidu (koji se zove iptable).

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

Korak 4: Konfiguracije Cisco usmjerivača

Prvo bismo trebali omogućiti WCCP na Cisco usmjerivaču.

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

Zatim definiramo drugu pristupnu listu za dvije različite svrhe. Prvo trebamo izuzeti SQUID promet iz preusmjeravanja WCCP protokola (ako ne upadamo u beskonačnu petlju!!) drugo definiramo koji LAN promet želimo propuštati kroz WCCP i 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

Nakon kreiranja naše pristupne liste moramo konfigurirati WCCP protokol na ruteru.

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

Sve je spremno za posljednji korak, moramo usmjerivaču reći u koje sučelje/sučelja mora preusmjeriti promet koristeći njihovu WCCP konfiguraciju.

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

Sažetak

Vrijeme je da sažmemo sve naredbe i tekstove u nekoliko redaka radi boljeg razumijevanja, prema scenariju preusmjeravamo pakete osoblja za surfanje webom (to je na TCP priključku 80) s RUTERA (koji je zadani pristupnik klijenti) prema stroju squid cache koristeći WCCP protokol.

Svi ovi procesi dogodili su se tiho i nema dodatne konfiguracije na strani klijenta. Tako možemo kontrolirati i postavljati pravila o web prometu u LAN-u. Na primjer, možemo dobiti pristup surfanju webom samo u ograničenom vremenu, ograničiti maksimalnu veličinu preuzimanja, definirati našu prilagođenu crnu listu i listu dopuštenih, generirati potpuna izvješća o korištenju internetske aktivnosti itd.

jedna od zanimljivih činjenica u ovom scenariju je kada squid stroj padne usmjerivač otkrije ovaj problem i prestane preusmjeravati pakete prema njemu, tako da možete uživati u nultom vremenu zastoja u vašoj mreži.

Ako imate pitanja u vezi s ovim člankom, ostavite odgovor u polju za komentare ispod.