Vyhledávání na webu

Jak řídit webový provoz pomocí Squid Cache a Cisco Router v Linuxu


Jedním z důležitých úkolů v síti je kontrola a správa provozu při surfování po webu, existuje mnoho řešení, která tento problém zvládnou, jedním z nejlepších řešení je použití squid cache na linuxovém stroji. Squid může kontrolovat, omezovat a ukládat do mezipaměti tok webového provozu z jedné sítě do druhé sítě, například z LAN do internetu.

Existuje několik způsobů, jak přesměrovat webové požadavky klienta na stroj squid, v tomto článku vám ukážeme, jak přesměrovat webový provoz z routeru CISCO na stroj Squid Cache pomocí protokolu WCCP.

Níže uvedený obrázek je příkladem základního scénáře.

Jak vidíte na obrázku výše, veškerý webový provoz klienta nejprve směřuje do Cisco Routeru (to je jejich výchozí brána), pak router tiše přesměrovává pakety na stroj squid, nyní může squid hrát své role, hlavní role je ukládání webového obsahu do mezipaměti, omezení přístupu na základě domén, časových intervalů, IP adres, velikosti souborů atd.

Zkontrolujeme konfiguraci tohoto scénáře ve dvou hlavních krocích, nejprve bychom měli nainstalovat a nakonfigurovat squid a Linux, poté nakonfigurovat router tak, aby přesměroval pakety webového provozu do squid pomocí protokolu WCCP.

Testovací prostředí

V tomto scénáři používám CENTOS 6.5 jako svůj LINUX server a Cisco 2691 jako systém směrovače.

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

Krok 1: Instalace Squid Cache

Squid je dostupný na výchozím repozitáři CENTOS, nejprve jej nainstalujeme pomocí příkazu lovely yum a poté spustíme jejich služby a nakonec nastavíme automatické spouštění služby squid.

yum -y install squid
service squid start
chkconfig squid on

Krok 2: Příprava Squid Cache

Nyní musíme změnit některé výchozí chování operačního systému centos, musíme povolit předávání paketů a deaktivovat filtr zpětné cesty (RPF), povolit předávání paketů, aby centos mohl fungovat jako transparentní přeposílání (jako např. směrovač).

Dovolte mi vysvětlit podrobněji, když se provoz dostane v centos, má své zdrojové a cílové adresy, například když klient zadá do svého prohlížeče www.example.com, vygeneruje se paket požadavku http a ten mít zdrojovou IP adresu klientského počítače (jako 192.168.1.20) a cílovou IP adresu serveru example.com (jako 2.2.2.2).

Takže, když paket přijme centos, detekuje se jako špatný paket, protože centos ip adresa není jako cílová adresa paketu, z bezpečnostních důvodů centos paket zahodí, ale chceme, aby squid jednal v transparentním režimu. Tuto situaci informujeme centos tím, že povolíme lektvar pro předávání paketů.

Dále bychom měli deaktivovat Reverse path Filtering, aby centos mohl přijímat pakety, které nejsou přístupné stroji squid nebo jeho pakety, které nemají ip adresu ve stejné podsíti stroje 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

Dále musíme vytvořit rozhraní GRE na stroji CENTOS, k čemu?? Dovolte mi vysvětlit více, protokol WCCP funguje prostřednictvím tunelu GRE, což znamená, že jazyk mezi routerem a Squid je GRE, takže centos musí mít rozhraní GRE pro De- zapouzdřit GRE pakety.

Měli bychom vytvořit konfigurační soubor pro rozhraní GRE v cestě „/etc/sysconfig/network-script/ifcfg-gre0“.

Zadejte níže uvedené kódy do konfiguračního souboru 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

Po vytvoření rozhraní GRE musíme restartovat síťovou službu.

service network restart

Krok 3: Konfigurace mezipaměti Squid

Musíme říct olihně, že přijímá pakety WCCP z routeru. Zadejte níže uvedené kódy do souboru /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

Uložte konfigurační soubor a restartujte službu squid.

service squid restart

Squid naslouchá paketům na portu 3128, ale číslo cílového portu našeho paketu je 80, takže pro změnu cílového portu 80 na 3128<, musíme vytvořit pravidlo NAT na integrovaném firewallu CENTOS (s názvem iptable).

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

Krok 4: Konfigurace směrovače Cisco

Nejprve bychom měli povolit WCCP na routeru 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

Dále definujeme další přístupový seznam pro dva různé účely, nejprve bychom měli vyjma provozů SQUID z přesměrování protokolem WCCP (pokud ne, spadneme do nekonečné smyčky!!), poté definujeme které LAN provozy chceme procházet přes WCCP a 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

Po vytvoření našeho přístupového seznamu musíme nakonfigurovat protokol WCCP na routeru.

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

Vše je připraveno na poslední krok, musíme routeru sdělit, že ve kterém rozhraní/rozhraní musí přesměrovat provoz pomocí jejich konfigurace WCCP.

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

souhrn

Je čas shrnout všechny příkazy a texty do několika řádků pro lepší pochopení, podle scénáře přesměrováváme pakety pro surfování po webu (to je na TCP portu 80) z ROUTERU (to je výchozí brána klienti) směrem k vyrovnávací paměti squid pomocí protokolu WCCP.

Všechny tyto procesy proběhly tiše a na straně klienta není žádná další konfigurace. Můžeme tedy řídit a nastavovat zásady pro webový provoz v LAN. Můžeme například získat přístup k surfování po webu jen v omezeném čase, omezit maximální velikost stahování, definovat naši vlastní černou a bílou listinu, generovat úplné zprávy o používání internetové aktivity atd.

jedním ze zajímavých faktů v tomto scénáři je, že když stroj squid selže, router detekuje tento problém a přestane na něj přesměrovávat pakety, takže si můžete užívat nulové prostoje ve vaší síti.

Máte-li jakékoli dotazy týkající se tohoto článku, zanechte odpověď prostřednictvím pole níže.