Hvordan kontrollere netttrafikk ved å bruke Squid Cache og Cisco Router i Linux


En viktig oppgave i et nettverk er å kontrollere og administrere stabers nettsurfingtrafikk, det er mange løsninger som kan håndtere dette problemet, en av de beste løsningene er å bruke blekksprut-cache på en Linux-maskin. Squid kan inspisere, begrense og cache nettrafikkstrøm fra ett nettverk til et annet nettverk, for eksempel fra et LAN til Internett.

Det er noen måter å omdirigere klientens nettforespørsler til blekksprutmaskin, i denne artikkelen vil vi vise deg hvordan du omdirigerer nettrafikk fra en CISCO-ruter til en Squid Cache-maskin ved hjelp av WCCP-protokollen.

Bildet nedenfor er et eksempel på et grunnleggende scenario.

Som du ser på bildet ovenfor, går all klientens netttrafikk først til Cisco Router (det er deres standard gateway), deretter omdirigerer ruteren pakker stille til squid-maskinen, nå kan blekksprut spille sine roller, hovedrollene er bufring av webinnhold, begrense tilgang basert på domener, tidsintervaller, ip-adresser, størrelse på filer osv.

Vi gjennomgår konfigurasjonen av dette scenariet i to hovedtrinn, først bør vi installere og konfigurere blekksprut og Linux, deretter konfigurere ruteren til å omdirigere nettrafikkpakker til blekksprut ved hjelp av WCCP-protokollen.

I dette scenariet bruker jeg CENTOS 6.5 som min LINUX-server og Cisco 2691 som mitt rutersystem.

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

Trinn 1: Installere Squid Cache

Squid er tilgjengelig på standardlageret til CENTOS, vi installerer det først ved hjelp av nydelig yum-kommando og starter deretter tjenestene deres og til slutt setter vi automatisk start av blekkspruttjenesten.

# yum -y install squid
# service squid start
# chkconfig squid on

Trinn 2: Forbereder Squid Cache

Nå må vi endre noen standardoppførsel for centos-operativsystemet, vi må aktivere pakkevideresending og deaktivere reverse Path-filter (RPF), vi aktiverer pakkevideresending for å la centos fungere som en gjennomsiktig videresending (som en ruter).

La meg forklare mer detaljert, når trafikk kommer i centos har den kilde- og destinasjonsadressene, for eksempel når en klient skriver inn www.example.com i nettleseren hans/hennes en http-forespørselspakke genererer og den har kilde-ip-adressen til klientmaskinen (som 192.168.1.20) og destinasjons-ip-adressen til example.com-serveren (som 2.2.2.2).

Så når pakken mottas av centos, oppdager den som en feil pakke fordi centos ip-adresse ikke er som destinasjonsadresse for pakken, av sikkerhetsgrunner dropper centos pakken, men vi ønsker at blekksprut skal opptre i transparent modus. Vi forteller denne situasjonen til centos ved å aktivere pakkevideresending.

Deretter bør vi deaktivere Reverse path Filtering for å la centos akseptere pakker som ikke er tilgjengelige for squid-maskinen, eller pakker som ikke har ip-adresse i samme undernett av squid-maskinen.

# 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

Deretter må vi lage et GRE-grensesnitt på CENTOS-maskinen, for hva?? La meg forklare mer, WCCP-protokollen fungerer gjennom en GRE-tunnel, det betyr at språket mellom ruteren og Squid er GRE, så centos må ha et GRE-grensesnitt for De-encapsulate GRE-pakker.

Vi bør lage konfigurasjonsfilen for GRE-grensesnittet i \/etc/sysconfig/network-script/ifcfg-gre0 banen.

Skriv inn kodene nedenfor i ifcfg-gre0 konfigurasjonsfil.

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

Etter å ha opprettet et GRE-grensesnitt, må vi starte nettverkstjenesten på nytt.

# service network restart

Trinn 3: Konfigurere Squid Cache

Vi må fortelle blekksprut som aksepterer WCCP-pakker fra ruteren. Skriv inn kodene nedenfor i filen /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

Lagre konfigurasjonsfilen og start blekkspruttjenesten på nytt.

# service squid restart

Squid lytter etter pakker i 3128-porten, men pakkens destinasjonsportnummer er 80, så for å endre destinasjonsport 80 til 3128, må vi lage en NAT-regel på CENTOS integrert brannmur (som heter iptable).

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

Trinn 4: Cisco Router Configurations

Først bør vi aktivere WCCP på cisco-ruteren.

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

Deretter definerer vi en annen tilgangsliste for to forskjellige formål, først skal vi unnta SQUID-trafikk fra å omdirigere med WCCP-protokoll (hvis ikke faller vi inn i en uendelig sløyfe!!), deretter definerer vi hvilke LAN-trafikker vi ønsker å passere gjennom WCCP og 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

Etter å ha opprettet tilgangslisten vår må vi konfigurere WCCP-protokollen på ruteren.

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

Alle ting er klare for siste trinn, vi må fortelle ruteren at i hvilket grensesnitt/grensesnitt den må omdirigere trafikk ved å bruke deres WCCP-konfigurasjon.

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

Sammendrag

Det er på tide å oppsummere alle kommandoer og tekster på noen få linjer for bedre forståelse, i henhold til scenariet omdirigerer vi ansattes nettsurfingspakker (det vil si på TCP-port 80) fra ROUTEREN (som er standard gateway for klientene) mot blekksprutbufferen maskin som bruker WCCP-protokollen.

Alle disse prosessene skjedde stille og det er ingen ekstra konfigurasjon på klientsiden. Så vi kan kontrollere og angi retningslinjer for nettrafikk i LAN. For eksempel kan vi få tilgang til nettsurfing bare på en begrenset tid, begrense maksimal nedlastingsstørrelse, definere vår egendefinerte svarteliste og hviteliste, generere fullstendige rapporter om bruk av internettaktivitet og etc.

en av de interessante fakta i dette scenariet er når squid-maskinen går ned, oppdager ruteren dette problemet og slutter å omdirigere pakker mot det, slik at du kan nyte fra null nedetid i nettverket ditt.

Hvis du har spørsmål angående denne artikkelen, vennligst legg igjen et svar gjennom kommentarfeltet nedenfor.