如何在Linux中使用Squid缓存和Cisco路由器控制Web流量

在本文中,我们将向您介绍如何使用WCCP协议将HTTP Web流量从CISCO路由器重定向到CentOS系统中的Squid Cache机器。

网络中的一个重要任务是控制和管理员工上网流量,有许多解决方案可以处理这个问题,最好的解决方案之一是在Linux机器上使用squid缓存。 squid可以检查,限制和缓存从一个网络到另一个网络的web业务流,例如从LAN到因特网。

在CentOS中使用squid和Cisco路由器的流量控制

在CentOS中使用squid和Cisco路由器的流量控制

有重定向客户端的Web请求Squid丝机,本文在几个方面,我们将告诉你如何网络流量从CISCO路由器使用WCCP协议的Squid缓存的机器重定向。

下面的图片是一个基本场景的例子。

使用squid Cisco路由器控制Web流量

使用squid Cisco路由器控制Web流量

正如你在上面的图片中看到所有客户的网络贩卖首先进入Cisco路由器 (这是他们的默认网关),则路由器默默重定向报文,以Squid丝机,现在Squid可以发挥它的作用,其主要作用是缓存网页内容,限制进入的基础域,时间间隔,IP地址,文件大小等。

我们主要有两步审查此方案的配置,首先要安装并配置Squid和Linux,然后配置路由器重定向网络流量的数据包到使用WCCP协议Squid。

测试环境

在这种情况下我使用CENTOS 6.5作为我的Linux服务器和Cisco 2691作为我的路由器系统。

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

第1步:安装Squid缓存

Squid可在CentOS的默认存储库,我们首先用可爱安装yum的命令 ,然后开始他们的服务,并最终设定Squid服务的自动启动。

# yum -y install squid
# service squid start
# chkconfig squid on

第2步:准备Squid缓存

现在,我们必须改变的CentOS操作系统的一些默认的行为,我们需要启用数据包转发和禁用反向路径过滤器(RPF),我们启用包转发,让作为一个透明转发器(如路由器 )CentOS的。

让我更详细地解释,当流量在CentOS的得到它有自己的源地址和目的地址,例如,当一个客户端进入www.example.com他/她的浏览器中的http请求数据包生成,并有客户机的源IP地址(如192.168.1.20)example.com服务器(如2.2.2.2)的目标IP地址。

因此,当centos收到的数据包检测为错误的数据包,因为centos ip地址不是数据包的目的地址,出于安全原因centos丢弃数据包,但我们希望从squid在透明模式下行动。 我们通过启用包转发部分来告诉这种情况。

接下来,我们应该禁用反向路径过滤,让centos接受squid机器不能访问的数据包或没有ip地址的数据包在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

接下来,我们需要创建CENTOS机器上的GRE接口,为了什么? 让我解释越多,WCCP协议的运作通过GRE隧道,这意味着路由器和Squid之间的语言是GRE,所以CentOS的需要为解封装GRE报文中的GRE接口。

我们应该 “/ etc / sysconfig / network中脚本/的ifcfg-gre0”路径创建GRE接口的配置文件。

的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

创建GRE界面后,我们需要重新启动网络服务。

# service network restart

第3步:配置Squid缓存

我们需要告诉Squid接受WCCP包从路由器。 /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

保存配置文件并重新启动squid服务。

# service squid restart

Squid监听的3128端口的数据包,但我们的数据包的目的端口号为80,因此改变目标端口803128,我们需要创建一个NAT规则CentOS上集成的防火墙(即命名的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步:Cisco路由器配置

首先,我们应该cisco路由器上启用WCCP。

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

接下来,我们定义了两个不同的目的,另一个访问列表首先,我们应该从WCCP协议重定向除外SQUID流量(如果没有我们陷入一个死循环!)第二,我们定义其LAN贩卖我们希望通过WCCPSquid

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

创建我们的访问列表后,我们必须在路由器上配置WCCP协议。

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

每一件事情都准备好最后一步,我们必须告诉路由器在哪个接口/接口它必须重定向使用他们的WCCP配置的流量。

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

概要

现在是时候总结的几行更好地了解所有命令和文本,根据我们重定向情景员工网上冲浪的数据包(即TCP端口80),从路由器 (即客户端的默认网关)朝着Squid缓存机器使用WCCP协议。

所有这些进程静默发生,客户端没有其他配置。 因此,我们可以控制和设置LAN中的Web流量策略。 例如,我们可以在有限的时间内获取网络访问权限,限制最大下载大小,定义自定义黑名单和白名单,生成完整的互联网活动使用情况报告等。

在这种情况下有趣的事实之一是当Squid机下来路由器检测到这个问题,并停止重定向数据包,朝向它,所以你可以享受从零宕机在你的网络。

如果您对本文有任何问题,请通过下面的评论框留下回复。