Zoeken op website

Hoe u webverkeer kunt controleren met Squid Cache en Cisco Router in Linux


Een belangrijke taak in een netwerk is het controleren en beheren van het websurfverkeer van het personeel. Er zijn veel oplossingen die dit probleem kunnen oplossen, een van de beste oplossingen is het gebruik van inktviscache op een Linux-machine. Squid kan het webverkeer van het ene netwerk naar het andere netwerk inspecteren, beperken en cachen, bijvoorbeeld van een LAN naar internet.

Er zijn een paar manieren om webverzoeken van klanten om te leiden naar de squid-machine. In dit artikel laten we u zien hoe u webverkeer van een CISCO-router naar een Squid Cache-machine kunt omleiden met behulp van het WCCP-protocol.

De onderstaande afbeelding is een voorbeeld van een basisscenario.

Zoals u in de bovenstaande afbeelding ziet, gaat al het webverkeer van de klant eerst naar Cisco Router (dat is hun standaardgateway), waarna de router pakketten stilletjes doorstuurt naar de inktvismachine. Nu kan inktvis zijn rol spelen, de hoofdrollen zijn webinhoud in de cache opslaan, toegang beperken op basis van domeinen, tijdsintervallen, IP-adressen, bestandsgrootte, enz.

We bekijken de configuratie van dit scenario in twee belangrijke stappen. Eerst moeten we squid en Linux installeren en configureren, en vervolgens de router configureren om webverkeerpakketten om te leiden naar squid met behulp van het WCCP-protocol.

Omgeving testen

In dit scenario gebruik ik CENTOS 6.5 als mijn LINUX-server en Cisco 2691 als mijn routersysteem.

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

Stap 1: Inktviscache installeren

Squid is beschikbaar in de standaardrepository van CENTOS. We installeren het eerst met het mooie yum-commando en starten vervolgens hun services en stellen ten slotte het automatisch starten van de squid-service in.

yum -y install squid
service squid start
chkconfig squid on

Stap 2: Inktviscache voorbereiden

Nu moeten we een aantal standaardgedragingen van het Centos-besturingssysteem veranderen, we moeten het doorsturen van pakketten inschakelen en het Reverse Path-filter (RPF) uitschakelen. We moeten het doorsturen van pakketten inschakelen om de Centos te laten fungeren als een transparante doorstuurserver (zoals een router).

Laat me het in meer detail uitleggen: wanneer verkeer in centos komt, heeft het zijn bron- en bestemmingsadres, bijvoorbeeld wanneer een klant www.example.com in zijn/haar browser invoert, wordt er een http-verzoekpakket gegenereerd en het het bron-IP-adres van de clientcomputer (zoals 192.168.1.20) en het bestemmings-IP-adres van de example.com-server (zoals 2.2.2.2) hebben.

Dus wanneer een pakket door centos wordt ontvangen, wordt het gedetecteerd als een verkeerd pakket, omdat het centos-ip-adres niet het bestemmingsadres van het pakket is. Om veiligheidsredenen laat centos het pakket vallen, maar we willen dat inktvis in de transparante modus handelt. We vertellen deze situatie aan centos door pakketdoorstuurdrank in te schakelen.

Vervolgens moeten we Reverse Path Filtering uitschakelen om de centos pakketten te laten accepteren die niet toegankelijk zijn voor de inktvismachine of pakketten die geen IP-adres hebben in hetzelfde subnet van de inktvismachine.

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

Vervolgens moeten we een GRE interface op de CENTOS-machine maken, waarvoor? Laat me meer uitleggen, het WCCP-protocol werkt via een GRE-tunnel, het betekent dat de taal tussen router en Squid GRE is, dus cento's moeten een GRE-interface hebben voor De- GRE-pakketten inkapselen.

We moeten het configuratiebestand voor de GRE-interface maken in het pad “/etc/sysconfig/network-script/ifcfg-gre0”.

Voer onderstaande codes in het ifcfg-gre0 configuratiebestand in.

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

Na het maken van een GRE interface moeten we de netwerkservice opnieuw opstarten.

service network restart

Stap 3: Inktviscache configureren

We moeten de inktvis vertellen dat hij WCCP pakketten van de router accepteert. Voer onderstaande codes in het bestand /etc/squid/squid.conf in.

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

Sla het configuratiebestand op en start de squid-service opnieuw.

service squid restart

Inktvis luistert naar pakketten in de 3128 poort, maar het bestemmingspoortnummer van ons pakket is 80, dus voor het wijzigen van de bestemmingspoort 80 naar 3128< moeten we een NAT-regel maken op de geïntegreerde firewall van CENTOS (met de naam iptable).

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

Stap 4: Cisco Router-configuraties

Eerst moeten we WCCP inschakelen op de cisco-router.

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

Vervolgens definiëren we een andere toegangslijst voor twee verschillende doeleinden. Eerst moeten we ervoor zorgen dat SQUID-verkeer niet wordt omgeleid via het WCCP-protocol (anders komen we in een oneindige lus terecht!!) Ten tweede definiëren we welk LAN verkeer we willen doorgeven via WCCP en 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

Na het aanmaken van onze toegangslijst moeten we het WCCP-protocol op de router configureren.

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

Alles is klaar voor de laatste stap, we moeten de router vertellen in welke interface/interfaces hij verkeer moet omleiden met behulp van hun WCCP-configuratie.

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

Samenvatting

Het is tijd om alle opdrachten en teksten in een paar regels samen te vatten voor een beter begrip. Volgens het scenario sturen we de websurfpakketten van het personeel (dat zich op TCP-poort 80 bevindt) om vanaf de ROUTER (dat is de standaardgateway van de clients) naar de inktviscachemachine met behulp van het WCCP-protocol.

Al deze processen vonden stil plaats en er is geen extra configuratie aan de clientzijde. We kunnen dus het webverkeer in het LAN controleren en instellen. We kunnen bijvoorbeeld binnen een beperkte tijd toegang krijgen tot internet, de maximale downloadgrootte beperken, onze aangepaste zwarte lijst en witte lijst definiëren, volledige rapporten genereren over het gebruik van internetactiviteiten, enzovoort.

Een van de interessante feiten in dit scenario is wanneer de inktvismachine uitvalt. De router detecteert dit probleem en stopt met het omleiden van pakketten ernaartoe, zodat u kunt genieten van nul downtime in uw netwerk.

Als u vragen heeft over dit artikel, kunt u een antwoord achterlaten via het onderstaande opmerkingenveld.