Ricerca nel sito web

Come controllare il traffico Web utilizzando Squid Cache e router Cisco in Linux


Un compito importante in una rete è controllare e gestire i traffici di navigazione web del personale, ci sono molte soluzioni in grado di gestire questo problema, una delle soluzioni migliori è utilizzare la cache Squid su una macchina Linux. Squid può ispezionare, limitare e memorizzare nella cache il flusso del traffico web da una rete a un'altra rete, ad esempio da una LAN a Internet.

Esistono alcuni modi per reindirizzare le richieste web del client alla macchina Squid, in questo articolo ti mostreremo come reindirizzare il traffico web da un router CISCO a una macchina Squid Cache utilizzando il protocollo WCCP.

L'immagine seguente è un esempio di uno scenario di base.

Come puoi vedere nell'immagine sopra, tutto il traffico web del client va prima al router Cisco (che è il loro gateway predefinito), quindi il router reindirizza silenziosamente i pacchetti alla macchina Squid, ora Squid può svolgere i suoi ruoli, il ruolo principale è caching dei contenuti web, limitazione dell'accesso in base a domini, intervalli di tempo, indirizzi ip, dimensione dei file, ecc.

Esamineremo la configurazione di questo scenario in due passaggi principali, per prima cosa dovremmo installare e configurare Squid e Linux, quindi configurare il router per reindirizzare i pacchetti di traffico web in Squid utilizzando il protocollo WCCP.

Ambiente di test

In questo scenario utilizzo CENTOS 6.5 come server LINUX e Cisco 2691 come sistema router.

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

Passaggio 1: installazione di Squid Cache

Squid è disponibile nel repository predefinito di CENTOS, lo installiamo prima utilizzando il comando beautiful yum, quindi avviamo i loro servizi e infine impostiamo l'avvio automatico del servizio Squid.

yum -y install squid
service squid start
chkconfig squid on

Passaggio 2: preparare la cache dei calamari

Ora dobbiamo modificare alcuni comportamenti predefiniti del sistema operativo Centos, dobbiamo abilitare l'inoltro dei pacchetti e disabilitare il filtro del percorso inverso (RPF), abilitiamo l'inoltro dei pacchetti per consentire a Centos di agire come un forwarder trasparente (come un router).

Lasciatemi spiegare più in dettaglio, quando i traffici arrivano in centos hanno i loro indirizzi di origine e di destinazione, ad esempio quando un cliente inserisce www.example.com sul suo browser viene generato un pacchetto di richiesta http e avere l'indirizzo IP di origine del computer client (come 192.168.1.20) e l'indirizzo IP di destinazione del server example.com (come 2.2.2.2).

Quindi, quando il pacchetto ricevuto da centos viene rilevato come pacchetto sbagliato perché l'indirizzo IP di centos non è come indirizzo di destinazione del pacchetto, per motivi di sicurezza centos rilascia il pacchetto, ma vogliamo che Squid agisca in modalità trasparente. Diciamo questa situazione a centos abilitando la pozione di inoltro dei pacchetti.

Successivamente dovremmo disabilitare il filtro del percorso inverso per consentire ai cento di accettare pacchetti non accessibili dalla macchina Squid o pacchetti che non hanno un indirizzo IP nella stessa sottorete della macchina 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

Successivamente dobbiamo creare un'interfaccia GRE sulla macchina CENTOS, per cosa?? Lasciami spiegare meglio, il protocollo WCCP funziona attraverso un tunnel GRE, ciò significa che il linguaggio tra router e Squid è GRE, quindi i cento devono avere un'interfaccia GRE per De- incapsulare i pacchetti GRE.

Dovremmo creare il file di configurazione per l'interfaccia GRE nel percorso "/etc/sysconfig/network-script/ifcfg-gre0".

Inserisci i codici seguenti nel file di configurazione 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

Dopo aver creato un'interfaccia GRE dobbiamo riavviare il servizio di rete.

service network restart

Passaggio 3: configurazione della cache Squid

Dobbiamo dire a Squid di accettare i pacchetti WCCP dal router. Inserisci i codici seguenti nel file /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

Salva il file di configurazione e riavvia il servizio Squid.

service squid restart

Squid ascolta i pacchetti nella porta 3128, ma il numero della porta di destinazione del nostro pacchetto è 80, quindi cambiamo la porta di destinazione da 80 a 3128<, dobbiamo creare una regola NAT sul firewall integrato CENTOS (chiamato iptable).

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

Passaggio 4: configurazioni del router Cisco

Per prima cosa dovremmo abilitare WCCP sul 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

Successivamente definiamo un'altra lista di accesso per due scopi diversi: prima dovremmo escludere i traffici SQUID dal reindirizzamento tramite il protocollo WCCP (altrimenti cadiamo in un ciclo infinito!!) poi definiamo quali traffici LAN vogliamo far passare attraverso WCCP e 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

Dopo aver creato la nostra lista di accesso dobbiamo configurare il protocollo WCCP sul router.

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

Tutto è pronto per il passaggio finale, dobbiamo dire al router in quale/i interfaccia/interfacce deve reindirizzare i traffici utilizzando la loro configurazione WCCP.

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

Riepilogo

È tempo di riassumere tutti i comandi e i testi in poche righe per una migliore comprensione, a seconda dello scenario reindirizziamo i pacchetti di navigazione web dello staff (che è sulla porta TCP 80) dal ROUTER (che è il gateway predefinito di i client) verso la macchina Squid Cache utilizzando il protocollo WCCP.

Tutti questi processi sono avvenuti in modo silenzioso e non vi è alcuna configurazione aggiuntiva sul lato client. Quindi possiamo controllare e impostare politiche sui traffici web nella LAN. Ad esempio, possiamo ottenere l'accesso alla navigazione web solo in un tempo limitato, limitare la dimensione massima del download, definire la nostra lista nera e bianca personalizzata, generare report completi sull'utilizzo dell'attività Internet e così via.

uno dei fatti interessanti in questo scenario è che quando la macchina Squid non funziona, il router rileva questo problema e interrompe il reindirizzamento dei pacchetti verso di esso, così puoi goderti tempi di inattività pari a zero nella tua rete.

Se hai domande relative a questo articolo, lascia una risposta tramite la casella dei commenti qui sotto.