Weboldal keresés

A webes forgalom szabályozása a Squid Cache és a Cisco Router használatával Linux alatt


A hálózatban az egyik fontos feladat a webes forgalom vezérlése és kezelése, számos megoldás létezik, amely képes kezelni ezt a problémát, az egyik legjobb megoldás a squid cache használata Linux gépen. A Squid képes ellenőrizni, korlátozni és gyorsítótárazni az egyik hálózatból a másik hálózatba áramló webforgalmat, például a LAN-ról az internetre.

Van néhány módja az ügyfelek webes kérelmeinek a squid gépre való átirányításának. Ebben a cikkben bemutatjuk, hogyan irányíthatja át a webes forgalmat egy CISCO útválasztóról egy Squid Cache gépre a WCCP protokoll használatával.

Az alábbi kép egy példa egy alapforgatókönyvre.

Ahogy a fenti képen is látható, az összes kliens webes forgalma először a Cisco Routerhez megy (ez az alapértelmezett átjáró), majd a router csendben átirányítja a csomagokat a squid gépre, most már a squid is betöltheti a szerepét, a főbb szerepek pedig webes tartalmak gyorsítótárazása, hozzáférés korlátozása tartományok, időintervallumok, IP-címek, fájlok mérete stb. alapján.

Ennek a forgatókönyvnek a konfigurációját két fő lépésben tekintjük át: először telepítenünk és konfigurálnunk kell a squid-et és a Linuxot, majd a routert úgy konfigurálnunk, hogy a webes forgalmi csomagokat a WCCP protokoll segítségével irányítsa át a squid-be.

Tesztkörnyezet

Ebben a forgatókönyvben a CENTOS 6.5 rendszert használom LINUX szerverként, és a Cisco 2691 rendszert routerrendszerként.

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

1. lépés: A Squid Cache telepítése

A Squid elérhető a CENTOS alapértelmezett tárolójában, először telepítjük a lovely yum paranccsal, majd elindítjuk a szolgáltatásaikat, végül pedig beállítjuk a squid szolgáltatás automatikus indítását.

yum -y install squid
service squid start
chkconfig squid on

2. lépés: A Squid Cache előkészítése

Most meg kell változtatnunk a centos operációs rendszer néhány alapértelmezett viselkedését, engedélyeznünk kell a csomagtovábbítást és le kell tiltanunk a fordított útvonalszűrőt (RPF), engedélyeznünk kell a csomagtovábbítást, hogy a centos transzparens továbbítóként működjön (például router).

Hadd magyarázzam el részletesebben, hogy amikor a forgalom centos-ban érkezik, annak megvan a forrás- és célcíme, például amikor az ügyfél beírja a böngészőjében a www.example.com címet, egy http kéréscsomag generálódik, és rendelkeznie kell az ügyfélgép forrás IP-címével (például 192.168.1.20) és az example.com szerver cél IP-címével (például 2.2.2.2).

Tehát a centos által fogadott csomag hibás csomagot észlel, mivel a centos ip cím nem a csomag célcíme, biztonsági okokból a centos eldobja a csomagot, de azt szeretnénk, hogy a squid transzparens módban működjön. Ezt a helyzetet elmondjuk a centosnak a csomagtovábbítási ital engedélyezésével.

Ezután le kell tiltanunk a Reverse path Filtering funkciót, hogy a centos elfogadhassa azokat a csomagokat, amelyekhez nem fér hozzá a squid gép, vagy olyan csomagokat, amelyeknek nincs IP-címe a squid gép ugyanazon alhálózatában.

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

Ezután létre kell hoznunk egy GRE felületet a CENTOS gépen, minek?? Hadd magyarázzam el bővebben, a WCCP protokoll egy GRE alagúton keresztül működik, ami azt jelenti, hogy a router és a Squid közötti nyelv GRE, tehát a centosnak GRE interfésszel kell rendelkeznie a de- beágyazza a GRE csomagokat.

Létre kell hoznunk a GRE interfész konfigurációs fájlját az „/etc/sysconfig/network-script/ifcfg-gre0” elérési úton.

Írja be az alábbi kódokat az ifcfg-gre0 konfigurációs fájlba.

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

A GRE interfész létrehozása után újra kell indítanunk a hálózati szolgáltatást.

service network restart

3. lépés: A Squid Cache konfigurálása

Meg kell mondanunk a squid-nek, amely elfogadja a WCCP csomagokat a routertől. Írja be az alábbi kódokat az /etc/squid/squid.conf fájlba.

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

Mentse el a konfigurációs fájlt, és indítsa újra a squid szolgáltatást.

service squid restart

A Squid a 3128-as porton figyeli a csomagokat, de a csomagunk célportjának száma 80, tehát a 80 célport 3128<-ra váltása esetén, létre kell hoznunk egy NAT szabályt a CENTOS integrált tűzfalán (amelynek a neve iptable).

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

4. lépés: A Cisco Router konfigurációi

Először is engedélyeznünk kell a WCCP funkciót a cisco routeren.

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

Ezután definiálunk egy másik hozzáférési listát két különböző célra, először ki kell zárnunk a SQUID forgalmat a WCCP protokollon keresztüli átirányítástól (ha nem, akkor végtelen hurokba esünk!!), majd definiáljuk mely LAN forgalmat szeretnénk áthaladni a WCCP és SQUID segítségével.

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

A hozzáférési listánk létrehozása után be kell állítani a WCCP protokollt az útválasztón.

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

Minden készen áll az utolsó lépésre, meg kell mondanunk a routernek, hogy melyik interfészen/interfészeken kell átirányítania a forgalmat a WCCP konfigurációjával.

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

Összegzés

Ideje néhány sorban összefoglalni az összes parancsot és szöveget a jobb megértés érdekében. A forgatókönyv szerint átirányítjuk a személyzet webböngészési csomagjait (azaz a 80-as TCP-porton) a ROUTER-ről (ez az alapértelmezett átjáró a kliensek) a WCCP protokollt használó squid cache gép felé.

Mindezek a folyamatok csendben zajlottak, és nincs további konfiguráció az ügyféloldalon. Így szabályozhatjuk és beállíthatjuk a webes forgalom házirendjét a LAN-ban. Például korlátozott időn belül elérhetjük a webböngészést, korlátozhatjuk a maximális letöltési méretet, meghatározhatjuk egyéni fekete- és fehérlistánkat, teljes jelentéseket készíthetünk az internetes tevékenység használatáról stb.

Az egyik érdekes tény ebben a forgatókönyvben az, hogy amikor a squid gép leáll, a router észleli ezt a problémát, és leállítja a csomagok átirányítását, így élvezheti a nulla állásidőt a hálózaton.

Ha bármilyen kérdése van ezzel a cikkel kapcsolatban, kérjük, válaszoljon az alábbi megjegyzés mezőben.