Com controlar el trànsit web mitjançant Squid Cache i Cisco Router a Linux


Una tasca important en una xarxa és controlar i gestionar els tràfics de navegació web del personal, hi ha moltes solucions que poden solucionar aquest problema, una de les millors solucions és utilitzar la memòria cau de calamars en una màquina Linux. Squid pot inspeccionar, limitar i emmagatzemar a la memòria cau el flux de trànsit web d'una xarxa a una altra xarxa, per exemple, d'una LAN a Internet.

Hi ha algunes maneres de redirigir les sol·licituds web del client a la màquina squid, en aquest article us mostrarem com redirigir el trànsit web des d'un encaminador CISCO a una màquina Squid Cache mitjançant el protocol WCCP.

La imatge següent és un exemple d'un escenari bàsic.

Com veieu a la imatge de dalt, tots els tràfics web del client van primer a Cisco Router (aquesta és la seva passarel·la predeterminada), després l'encaminador redirigeix els paquets en silenci a la màquina squid, ara squid pot jugar els seus papers, els rols principals són la memòria cau de contingut web, limitar l'accés basat en sobre dominis, intervals de temps, adreces IP, mida dels fitxers, etc.

Revisem la configuració d'aquest escenari en dos passos principals, primer hauríem d'instal·lar i configurar squid i Linux, després configurar l'encaminador per redirigir els paquets de trànsit web a squid mitjançant el protocol WCCP.

En aquest escenari faig servir CENTOS 6.5 com a servidor LINUX i Cisco 2691 com a sistema d'encaminador.

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

Pas 1: instal·lació de Squid Cache

Squid està disponible al dipòsit predeterminat de CENTOS, primer l'instal·lem utilitzant l'ordre encantador yum i després iniciem els seus serveis i, finalment, configurem l'inici automàtic del servei Squid.

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

Pas 2: preparació de la memòria cau de calamars

Ara hem de canviar alguns comportaments predeterminats del sistema operatiu centos, hem d'habilitar el reenviament de paquets i desactivar el filtre de ruta inversa (RPF), habilitem el reenviament de paquets perquè els centos actuïn com un reenviador transparent (com un encaminador).

Permeteu-me explicar amb més detall, quan el trànsit arriba a centos té les seves adreces d'origen i de destinació, per exemple, quan un client introdueix www.example.com al seu navegador, es genera un paquet de sol·licitud http i té l'adreça IP d'origen de la màquina client. (com 192.168.1.20) i l'adreça IP de destinació del servidor example.com (com 2.2.2.2).

Per tant, quan el paquet rep el centos, es detecta com un paquet incorrecte perquè l'adreça IP del centos no és l'adreça de destinació del paquet, per motius de seguretat, centos deixa el paquet, però volem que el calamar actuï en mode transparent. Expliquem aquesta situació a centos habilitant la poció de reenviament de paquets.

A continuació, hauríem de desactivar el filtratge de ruta inversa per permetre que els centos acceptin paquets que no són accessibles per la màquina squid o paquets que no tenen adreça IP a la mateixa subxarxa de la màquina squid.

# 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

A continuació, hem de crear una interfície GRE a la màquina CENTOS, per a què? Permeteu-me explicar-me més, el protocol WCCP funciona a través d'un túnel GRE, vol dir que l'idioma entre l'encaminador i Squid és GRE, de manera que els centos han de tenir una interfície GRE per desencapsular paquets GRE.

Hauríem de crear el fitxer de configuració per a la interfície GRE al camí \/etc/sysconfig/network-script/ifcfg-gre0.

Introduïu els codis següents al fitxer de configuració 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

Després de crear una interfície GRE, hem de reiniciar el servei de xarxa.

# service network restart

Pas 3: Configuració de Squid Cache

Hem de dir-li a Squid que accepta paquets WCCP des del router. Introduïu els codis següents al fitxer /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

Deseu el fitxer de configuració i reinicieu el servei squid.

# service squid restart

Squid escolta paquets al port 3128, però el número de port de destinació del nostre paquet és 80, de manera que per canviar el port de destinació 80 a 3128, hem de crear una regla NAT al tallafoc integrat de CENTOS (que s'anomena iptable).

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

Pas 4: configuracions del router Cisco

Primer hauríem d'habilitar WCCP al router Cisco.

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

A continuació, definim una altra llista d'accés per a dos propòsits diferents, primer hauríem d'exceptuar els tràfics SQUID de la redirecció mitjançant el protocol WCCP (si no caiem en un bucle infinit!!) En segon lloc, definim quins trànsits LAN volem passar per 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

Després de crear la nostra llista d'accés, hem de configurar el protocol WCCP al router.

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

Totes les coses estan a punt per al pas final, hem de dir a l'encaminador que en quina interfície/interfícies ha de redirigir els tràfics mitjançant la seva configuració WCCP.

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

Resum

És hora de resumir totes les ordres i textos en unes poques línies per a una millor comprensió, segons l'escenari redirigim els paquets de navegació web del personal (és a dir, al port TCP 80) des del ROUTER (que és la passarel·la per defecte dels clients) cap a la memòria cau de calamars. màquina utilitzant el protocol WCCP.

Tots aquests processos es van produir en silenci i no hi ha cap configuració addicional al costat del client. Així podem controlar i establir polítiques sobre els tràfics web a la LAN. Per exemple, podem obtenir accés a la navegació web només en un temps limitat, limitar la mida màxima de descàrrega, definir la nostra llista negra i blanca personalitzada, generar informes complets sobre l'ús de l'activitat d'Internet, etc.

Un dels fets interessants en aquest escenari és quan la màquina de calamar baixa, l'encaminador detecta aquest problema i deixa de redirigir els paquets cap a ell, de manera que puguis gaudir d'un temps d'inactivitat zero a la teva xarxa.

Si teniu cap pregunta sobre aquest article, deixeu una resposta a través del quadre de comentaris a continuació.