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.