网络中的一个重要任务是控制和管理员工上网流量,有许多解决方案可以处理这个问题,最好的解决方案之一是在Linux机器上使用squid缓存。 squid可以检查,限制和缓存从一个网络到另一个网络的web业务流,例如从LAN到因特网。
在CentOS中使用squid和Cisco路由器的流量控制
有重定向客户端的Web请求Squid丝机,本文在几个方面,我们将告诉你如何网络流量从CISCO路由器使用WCCP协议的Squid缓存的机器重定向。
下面的图片是一个基本场景的例子。
使用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,因此改变目标端口80到3128,我们需要创建一个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贩卖我们希望通过WCCP和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
创建我们的访问列表后,我们必须在路由器上配置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机下来路由器检测到这个问题,并停止重定向数据包,朝向它,所以你可以享受从零宕机在你的网络。
如果您对本文有任何问题,请通过下面的评论框留下回复。